public void TestAddIncidentEdges_ReplicateSegmentationFault() { Vertex v1 = Auxilaries.RandomVertex(); Vertex v2 = Auxilaries.RandomVertex(); Vertex v3 = Auxilaries.RandomVertex(); HalfEdge e11 = new HalfEdge(v1); HalfEdge e12 = new HalfEdge(v2); HalfEdge e31 = new HalfEdge(v3); HalfEdge e32 = new HalfEdge(v1); HalfEdge e41 = new HalfEdge(v3); HalfEdge e42 = new HalfEdge(v2); e11.Twin = e12; e12.Twin = e11; e31.Twin = e32; e32.Twin = e31; e41.Twin = e42; e42.Twin = e41; e12.Next = e32; e32.Next = e41; e41.Next = e12; e12.Previous = e41; e32.Previous = e12; e41.Previous = e32; Face f2 = new Face(2, Auxilaries.RandomNormal()); f2.AddOuterComponent(e32); f2.AddOuterComponent(e41); f2.AddOuterComponent(e12); e32.IncidentFace = f2; e41.IncidentFace = f2; e12.IncidentFace = f2; v1.AddIncidentEdge(e11); v1.AddIncidentEdge(e32); v2.AddIncidentEdge(e42); v2.AddIncidentEdge(e12); v3.AddIncidentEdge(e31); v3.AddIncidentEdge(e41); Assert.Contains(e11, v1.IncidentEdges); Assert.Contains(e32, v1.IncidentEdges); Assert.Contains(e42, v2.IncidentEdges); Assert.Contains(e12, v2.IncidentEdges); Assert.Contains(e31, v3.IncidentEdges); Assert.Contains(e41, v3.IncidentEdges); }
public void TestAddIncidentEdges_TwinsAndNextAndPreviousSet() { Vertex v1 = Auxilaries.RandomVertex(); Vertex v2 = Auxilaries.RandomVertex(); Vertex v3 = Auxilaries.RandomVertex(); HalfEdge e11 = new HalfEdge(v1); HalfEdge e12 = new HalfEdge(v2); HalfEdge e31 = new HalfEdge(v3); HalfEdge e32 = new HalfEdge(v1); HalfEdge e41 = new HalfEdge(v3); HalfEdge e42 = new HalfEdge(v2); e11.Twin = e12; e12.Twin = e11; e31.Twin = e32; e32.Twin = e31; e41.Twin = e42; e42.Twin = e41; e12.Next = e32; e32.Next = e41; e41.Next = e12; e12.Previous = e41; e32.Previous = e12; e41.Previous = e32; v1.AddIncidentEdge(e32); Assert.Contains(e32, v1.IncidentEdges); }
public void TestAddIncidentEdges_NoOtherPropertiesSet() { Vertex v1 = Auxilaries.RandomVertex(); HalfEdge e11 = new HalfEdge(v1); v1.AddIncidentEdge(e11); Assert.Contains(e11, v1.IncidentEdges); }
public void TestEquals_IncidentEdgesNotEqual() { Vector3 position = Auxilaries.RandomPosition(); Vertex thisVertex = new Vertex(position); Vertex otherVertex = new Vertex(position); HalfEdge edge1 = Auxilaries.RandomHalfEdge(); HalfEdge edge2 = Auxilaries.RandomHalfEdge(); HalfEdge edge3 = Auxilaries.RandomHalfEdge(); thisVertex.AddIncidentEdge(edge1); thisVertex.AddIncidentEdge(edge2); otherVertex.AddIncidentEdge(edge3); Assert.IsFalse(thisVertex.Equals(otherVertex)); Assert.IsFalse(otherVertex.Equals(thisVertex)); Assert.AreNotEqual(thisVertex.GetHashCode(), otherVertex.GetHashCode()); }
public void XAndyAreEqual_IncidentEdgesDifferent() { Vector3 positon = Auxilaries.RandomPosition(); Vertex x = new Vertex(positon); Vertex y = new Vertex(positon); x.AddIncidentEdge(Auxilaries.RandomHalfEdge()); y.AddIncidentEdge(Auxilaries.RandomHalfEdge()); Assert.IsTrue(comparer.Equals(x, y)); Assert.AreEqual(comparer.GetHashCode(x), comparer.GetHashCode(y)); }
public void TestAddIncidentEdges_TwinsAndNextAndPreviousOuterComponentSet() { Vertex v1 = Auxilaries.RandomVertex(); Vertex v2 = Auxilaries.RandomVertex(); Vertex v3 = Auxilaries.RandomVertex(); HalfEdge e11 = new HalfEdge(v1); HalfEdge e12 = new HalfEdge(v2); HalfEdge e31 = new HalfEdge(v3); HalfEdge e32 = new HalfEdge(v1); HalfEdge e41 = new HalfEdge(v3); HalfEdge e42 = new HalfEdge(v2); e11.Twin = e12; e12.Twin = e11; e31.Twin = e32; e32.Twin = e31; e41.Twin = e42; e42.Twin = e41; e12.Next = e32; e32.Next = e41; e41.Next = e12; e12.Previous = e41; e32.Previous = e12; e41.Previous = e32; Face f2 = new Face(2, Auxilaries.RandomNormal()); f2.AddOuterComponent(e32); f2.AddOuterComponent(e41); f2.AddOuterComponent(e12); v1.AddIncidentEdge(e32); Assert.Contains(e32, v1.IncidentEdges); }