Beispiel #1
0
 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));
            }
        }