public void Test_S2LatLngRect_AddPoint() { S2LatLngRect p = S2LatLngRect.Empty; p = p.AddPoint(S2LatLng.FromDegrees(0, 0)); Assert.True(p.IsPoint()); p = p.AddPoint(S2LatLng.FromRadians(0, -S2.M_PI_2)); Assert.False(p.IsPoint()); p = p.AddPoint(S2LatLng.FromRadians(S2.M_PI_4, -Math.PI)); p = p.AddPoint(new S2Point(0, 0, 1)); Assert.Equal(p, RectFromDegrees(0, -180, 90, 0)); }
public void testIntervalOps(S2LatLngRect x, S2LatLngRect y, String expectedRelation, S2LatLngRect expectedUnion, S2LatLngRect expectedIntersection) { // Test all of the interval operations on the given pair of intervals. // "expected_relation" is a sequence of "T" and "F" characters corresponding // to the expected results of Contains(), InteriorContains(), Intersects(), // and InteriorIntersects() respectively. assertEquals(x.Contains(y), expectedRelation[0] == 'T'); assertEquals(x.InteriorContains(y), expectedRelation[1] == 'T'); assertEquals(x.Intersects(y), expectedRelation[2] == 'T'); assertEquals(x.InteriorIntersects(y), expectedRelation[3] == 'T'); assertEquals(x.Contains(y), x.Union(y).Equals(x)); assertEquals(x.Intersects(y), !x.Intersection(y).IsEmpty); assertTrue(x.Union(y).Equals(expectedUnion)); assertTrue(x.Intersection(y).Equals(expectedIntersection)); if (y.Size == S2LatLng.FromRadians(0, 0)) { var r = x.AddPoint(y.Lo); assertTrue(r == expectedUnion); } }
private static void TestIntervalOps(S2LatLngRect x, S2LatLngRect y, string expected_relation, S2LatLngRect expected_union, S2LatLngRect expected_intersection) { // Test all of the interval operations on the given pair of intervals. // "expected_relation" is a sequence of "T" and "F" characters corresponding // to the expected results of Contains(), InteriorContains(), Intersects(), // and InteriorIntersects() respectively. Assert.Equal(x.Contains(y), expected_relation[0] == 'T'); Assert.Equal(x.InteriorContains(y), expected_relation[1] == 'T'); Assert.Equal(x.Intersects(y), expected_relation[2] == 'T'); Assert.Equal(x.InteriorIntersects(y), expected_relation[3] == 'T'); Assert.Equal(x.Contains(y), x.Union(y) == x); Assert.Equal(x.Intersects(y), !x.Intersection(y).IsEmpty()); Assert.Equal(x.Union(y), expected_union); Assert.Equal(x.Intersection(y), expected_intersection); if (y.Size() == S2LatLng.FromRadians(0, 0)) { S2LatLngRect r = x; r.AddPoint(y.Lo()); Assert.Equal(r, expected_union); } }