public void TestAdd() { var sites = new[] { new Site { Point = new Point { X = 1, Y = 2 } }, new Site { Point = new Point { X = 1, Y = 1 } }, new Site { Point = new Point { X = 3, Y = 2 } } }; var map = new VoronoiMap(); map.Add(sites[0]); map.Add(sites[1]); map.Add(sites[2]); Assert.AreEqual(sites.Count(), map.Count()); }
public void TestAddVertex() { var left = new HalfEdge(new Point { X = 74, Y = 139 }, new Point { X = 170, Y = 140 }, new Point { X = 130, Y = 160 }); var center = new HalfEdge(new Point { X = 61, Y = 139 }, new Point { X = 170, Y = 140 }, new Point { X = 110, Y = 150 }); var right = new HalfEdge(new Point { X = 49, Y = 149 }, new Point { X = 130, Y = 160 }, new Point { X = 110, Y = 150 }); var vertex = new Vertex { Point = new Point { X = 136, Y = 121 }, }; vertex.HalfEdges.Add(left); left.End = vertex; vertex.HalfEdges.Add(center); center.Start = vertex; vertex.HalfEdges.Add(right); right.End = vertex; var map = new VoronoiMap(); map.Add(vertex); Assert.AreEqual(4, map.Count()); Assert.AreEqual(1, map.Count(g => g is Vertex)); Assert.AreEqual(3, map.Count(g => g is HalfEdge)); // Found circle event for arcs: // Leaf: Point: X: 95, Y: 75, CircleEvent: , // Leaf: Point: X: 130, Y: 160, CircleEvent: Point: X: 146, Y: 46, // Leaf: Point: X: 110, Y: 150, CircleEvent: Point: X: 136, Y: 83 // at Point: Point: X: 146, Y: 46 and Vertex: Point: X: 146, Y: 104 // Add Vertex: Point: X: 146, Y: 104, Half Edges: Point: X: 85, Y: 74, Point: X: 49, Y: 149, Point: X: 78, Y: 74 var left2 = new HalfEdge(new Point { X = 85, Y = 74 }, new Point { X = 95, Y = 75 }, new Point { X = 130, Y = 160 }); var center2 = new HalfEdge(new Point { X = 78, Y = 74 }, new Point { X = 95, Y = 75 }, new Point { X = 110, Y = 150 }); var right2 = new HalfEdge(new Point { X = 49, Y = 149 }, new Point { X = 130, Y = 160 }, new Point { X = 110, Y = 150 }); var vertex2 = new Vertex { Point = new Point { X = 146, Y = 104 }, }; vertex2.HalfEdges.Add(left2); left2.End = vertex2; vertex2.HalfEdges.Add(center2); center2.Start = vertex2; vertex2.HalfEdges.Add(right2); right2.End = vertex2; map.Add(vertex2); Assert.AreEqual(7, map.Count()); Assert.AreEqual(2, map.Count(g => g is Vertex)); Assert.AreEqual(5, map.Count(g => g is HalfEdge)); }