-- Tags: no-fasttest -- Tag no-fasttest: needs s2 DROP TABLE IF EXISTS s2_indexes; CREATE TABLE s2_indexes (s2_index UInt64, longitude Float64, latitude Float64) ENGINE = Memory; -- Random geo coordinates were generated using S2Testing::RandomPoint() method from s2 API. INSERT INTO s2_indexes VALUES (3814912406305146967, 125.938503, 25.519362); INSERT INTO s2_indexes VALUES (10654167528317613967, -64.364998, -13.206226); INSERT INTO s2_indexes VALUES (1913723177026859705, 8.774109, -3.271374); INSERT INTO s2_indexes VALUES (13606307743304496111, -89.810962, -57.013984); INSERT INTO s2_indexes VALUES (8094352344009072761,-170.423649, -10.102188); INSERT INTO s2_indexes VALUES (2414200527355011659, 54.724353, -19.210608); INSERT INTO s2_indexes VALUES (4590287096029015693, 51.390374, 29.368252); INSERT INTO s2_indexes VALUES (10173921221664598133, 5.161979, -46.718242); INSERT INTO s2_indexes VALUES (525948609053546189, -41.564128, -16.777073); INSERT INTO s2_indexes VALUES (2446780491369950853, 49.94229, -18.633856); INSERT INTO s2_indexes VALUES (1723620528513492581, 40.768274, 2.853563); INSERT INTO s2_indexes VALUES (8295275405228383207, -168.258979, -38.271170); INSERT INTO s2_indexes VALUES (7280210779810727639, 170.145748, 7.606449); INSERT INTO s2_indexes VALUES (10670400906708524495, -61.761938, -24.969589); INSERT INTO s2_indexes VALUES (10868726821406046149, -79.245460, -22.940849); INSERT INTO s2_indexes VALUES (13202270384266773545, 10.610774, -64.184103); INSERT INTO s2_indexes VALUES (145638248314527629, -19.826140, -41.192912); INSERT INTO s2_indexes VALUES (12793606480989360601, 74.006104, -68.321240); INSERT INTO s2_indexes VALUES (6317132534461540391, -165.907973, 54.205178); INSERT INTO s2_indexes VALUES (6944470717485986643, 140.428834, 28.399755); SELECT 'Checking s2 index generation.'; SELECT s2ToGeo(s2_index), geoToS2(longitude, latitude) FROM s2_indexes ORDER BY s2_index; SELECT first, second, result FROM ( SELECT s2ToGeo(geoToS2(longitude, latitude)) AS output_geo, tuple(roundBankers(longitude, 5), roundBankers(latitude, 5)) AS first, tuple(roundBankers(output_geo.1, 5), roundBankers(output_geo.2, 5)) AS second, if(first = second, 'ok', 'fail') AS result FROM s2_indexes ORDER BY s2_index ); SELECT s2ToGeo(toUInt64(-1)); -- { serverError 36 } SELECT s2ToGeo(nan); -- { serverError 43 } SELECT geoToS2(toFloat64(toUInt64(-1)), toFloat64(toUInt64(-1))); -- { serverError BAD_ARGUMENTS } SELECT geoToS2(nan, nan); -- { serverError 43 } SELECT geoToS2(-inf, 1.1754943508222875e-38); -- { serverError 43 } DROP TABLE IF EXISTS s2_indexes;