def test_encode_decode(bpc, prec): for _i in range(100): lng, lat = rand_lng(), rand_lat() code = hilbert.encode(lng, lat, precision=prec, bits_per_char=bpc) lng_code, lat_code, lng_err, lat_err = hilbert.decode_exactly(code, bits_per_char=bpc) assert lng == pytest.approx(lng_code, abs=lng_err) assert lat == pytest.approx(lat_code, abs=lat_err) assert (lng_code, lat_code) == hilbert.decode(code, bits_per_char=bpc)
def test_bench_decode(benchmark, bpc): prec = 60 // bpc lng, lat = rand_lng(), rand_lat() code = hilbert.encode(lng, lat, precision=prec, bits_per_char=bpc) benchmark(hilbert.decode_exactly, code, bits_per_char=bpc)