public void Test_E7() { ExpectMaxDigits(S2LatLng.FromDegrees(0, 0), 7); for (var i = 0; i < kIters; i++) { var ll = S2LatLng.FromPoint(S2Testing.RandomPoint()); var ll_e7 = S2LatLng.FromE7(ll.Lat().E7(), ll.Lng().E7()); ExpectMaxDigits(ll_e7, 7); } }
public void Test_IntLatLngSnapFunction_SnapPoint() { for (int iter = 0; iter < 1000; ++iter) { // Test that IntLatLngSnapFunction does not modify points that were // generated using the S2LatLng.From{E5,E6,E7} methods. This ensures // that both functions are using bitwise-compatible conversion methods. S2Point p = S2Testing.RandomPoint(); S2LatLng ll = new(p); S2Point p5 = S2LatLng.FromE5(ll.Lat().E5(), ll.Lng().E5()).ToPoint(); Assert.Equal(p5, new IntLatLngSnapFunction(5).SnapPoint(p5)); S2Point p6 = S2LatLng.FromE6(ll.Lat().E6(), ll.Lng().E6()).ToPoint(); Assert.Equal(p6, new IntLatLngSnapFunction(6).SnapPoint(p6)); S2Point p7 = S2LatLng.FromE7(ll.Lat().E7(), ll.Lng().E7()).ToPoint(); Assert.Equal(p7, new IntLatLngSnapFunction(7).SnapPoint(p7)); // Make sure that we're not snapping using some lower exponent. S2Point p7not6 = S2LatLng.FromE7(10 * ll.Lat().E6() + 1, 10 * ll.Lng().E6() + 1).ToPoint(); Assert.NotEqual(p7not6, new IntLatLngSnapFunction(6).SnapPoint(p7not6)); } }