public void testUnionSloppySuccess() { var polygons = new List <S2Polygon>(); polygons.Add(adj0); polygons.Add(adj1); var union = S2Polygon.DestructiveUnionSloppy(polygons, S1Angle.FromDegrees(0.1)); assertEquals(1, union.NumLoops); if (union.NumLoops != 1) { return; } var s2Loop = union.Loop(0); assertEquals(8, s2Loop.NumVertices); if (s2Loop.NumVertices != 8) { return; } assertPointApproximatelyEquals(s2Loop, 0, 2.0, 0.0, 0.01); assertPointApproximatelyEquals(s2Loop, 1, 1.0, 0.0, 0.01); assertPointApproximatelyEquals(s2Loop, 2, 0.0, 0.0, 0.01); assertPointApproximatelyEquals(s2Loop, 3, 0.0, 1.0, 0.01); assertPointApproximatelyEquals(s2Loop, 4, 0.0, 2.0, 0.01); assertPointApproximatelyEquals(s2Loop, 5, 1.0, 2.0, 0.01); assertPointApproximatelyEquals(s2Loop, 6, 2.0, 2.0, 0.01); assertPointApproximatelyEquals(s2Loop, 7, 2.0, 1.0, 0.01); }
public void testUnionSloppyFailure() { var polygons = new List <S2Polygon>(); polygons.Add(adj0); polygons.Add(unAdj); // The polygons are sufficiently far apart that this angle will not // bring them together: var union = S2Polygon.DestructiveUnionSloppy(polygons, S1Angle.FromDegrees(0.1)); assertEquals(2, union.NumLoops); }