public void Test_CellUnionTarget_UpdateMinDistanceToEdgeWhenEqual() { var target = new S2MinDistanceCellUnionTarget(new S2CellUnion( new List <S2CellId> { new S2CellId(MakePointOrDie("0:1")) })); var dist = S1ChordAngle.Infinity; var edge = ParsePointsOrDie("0:-1, 0:1"); Assert.True(target.UpdateMinDistance(edge[0], edge[1], ref dist)); Assert.False(target.UpdateMinDistance(edge[0], edge[1], ref dist)); }
public void Test_CellUnionTarget_UpdateMinDistanceToCellWhenEqual() { var target = new S2MinDistanceCellUnionTarget(new S2CellUnion( new List <S2CellId> { new S2CellId(MakePointOrDie("0:1")) })); var dist = S1ChordAngle.Infinity; var cell = new S2Cell(new S2CellId(MakePointOrDie("0:0"))); Assert.True(target.UpdateMinDistance(cell, ref dist)); Assert.False(target.UpdateMinDistance(cell, ref dist)); }
public void Test_CellUnionTarget_VisitContainingShapes() { var index = MakeIndexOrDie( "1:1 # 1:1, 2:2 # 0:0, 0:3, 3:0 | 6:6, 6:9, 9:6 | -1:-1, -1:5, 5:-1"); // Shapes 2 and 4 contain the leaf cell near 1:1, while shape 3 contains the // leaf cell near 7:7. var cellid1 = new S2CellId(MakePointOrDie("1:1")); var cellid2 = new S2CellId(MakePointOrDie("7:7")); var target1 = new S2MinDistanceCellUnionTarget(new S2CellUnion( new List <S2CellId> { cellid1, cellid2 })); Assert.True(IsSubsetOfSize(GetContainingShapes(target1, index, 1), new int[] { 2, 3, 4 }, 1)); Assert.Equal((new int[] { 2, 3, 4 }), GetContainingShapes(target1, index, 5)); }