public void TestCompareTo_ObjEqualInEverything() { Vertex vertex = Auxilaries.RandomVertex(); HalfEdge thisEdge = new HalfEdge(vertex); HalfEdge otherEdge = new HalfEdge(vertex); HalfEdge twin = Auxilaries.RandomHalfEdge(); thisEdge.Twin = twin; otherEdge.Twin = twin; HalfEdge next = Auxilaries.RandomHalfEdge(); thisEdge.Next = next; otherEdge.Next = next; HalfEdge previous = Auxilaries.RandomHalfEdge(); thisEdge.Previous = previous; otherEdge.Previous = previous; int expected = 0; int actual = thisEdge.CompareTo(otherEdge); Assert.AreEqual(expected, actual); }
void TestCompareTo_ObjNotFace_Helper() { Face face = Auxilaries.RandomFace(); HalfEdge edge = Auxilaries.RandomHalfEdge(); face.CompareTo(edge); }
void TestCompareTo_ObjNotHalfedge_Helper() { HalfEdge edge = Auxilaries.RandomHalfEdge(); Vertex vertex = Auxilaries.RandomVertex(); edge.CompareTo(vertex); }
public void Test_Centroid_TriangleFace() { Vertex a = new Vertex(new Vector3(1, 2, 3)); Vertex b = new Vertex(new Vector3(3, 9, -1)); Vertex c = new Vertex(new Vector3(4, 4, -7)); HalfEdge ab = new HalfEdge(a); HalfEdge ac = new HalfEdge(a); HalfEdge ba = new HalfEdge(b); HalfEdge bc = new HalfEdge(b); HalfEdge ca = new HalfEdge(c); HalfEdge cb = new HalfEdge(c); ab.Twin = ba; ac.Twin = ca; ba.Twin = ab; bc.Twin = cb; ca.Twin = ac; cb.Twin = bc; Face face = new Face(0, Auxilaries.RandomNormal()); face.AddOuterComponent(ac); face.AddOuterComponent(cb); face.AddOuterComponent(ba); Vector3 actual = face.Centroid; Vector3 expected = new Vector3(8, 15, -5) * (1.0f / 3.0f); Assert.IsTrue(expected == actual); }
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 TestEquals_EqualsDifferentOrder() { HalfEdge a = Auxilaries.RandomHalfEdge(); HalfEdge b = Auxilaries.RandomHalfEdge(); HalfEdge c = Auxilaries.RandomHalfEdge(); HalfEdge d = Auxilaries.RandomHalfEdge(); Vector3 normal = Auxilaries.RandomNormal(); Face thisFace = new Face(0, normal); thisFace.AddOuterComponent(a); thisFace.AddOuterComponent(b); thisFace.AddOuterComponent(c); thisFace.AddOuterComponent(d); Face otherFace = new Face(0, normal); otherFace.AddOuterComponent(b); otherFace.AddOuterComponent(a); otherFace.AddOuterComponent(d); otherFace.AddOuterComponent(c); Assert.IsTrue(thisFace.Equals(otherFace)); Assert.IsTrue(otherFace.Equals(thisFace)); Assert.AreEqual(thisFace.GetHashCode(), otherFace.GetHashCode()); }
public void TestEquals_EqualBothIncidentFacesSet() { Vertex a = Auxilaries.RandomVertex(); Vertex b = Auxilaries.RandomVertex(); Vertex c = Auxilaries.RandomVertex(); HalfEdge abOther = new HalfEdge(a); HalfEdge abThis = new HalfEdge(a); HalfEdge ac = new HalfEdge(a); HalfEdge ba = new HalfEdge(b); HalfEdge bc = new HalfEdge(b); HalfEdge ca = new HalfEdge(c); HalfEdge cb = new HalfEdge(c); Face face = new Face(2, Auxilaries.RandomNormal()); face.AddOuterComponent(abThis); face.AddOuterComponent(bc); face.AddOuterComponent(ca); abThis.IncidentFace = face; abOther.IncidentFace = face; abThis.Twin = ba; abOther.Twin = ba; ac.Twin = ca; ba.Twin = abThis; bc.Twin = bc; ca.Twin = ac; cb.Twin = bc; abThis.Next = bc; abOther.Next = bc; ac.Next = cb; ba.Next = ac; bc.Next = ca; ca.Next = abThis; cb.Next = ba; abThis.Previous = ca; abOther.Previous = ca; ac.Previous = ba; ba.Previous = cb; bc.Previous = abThis; ca.Previous = bc; cb.Previous = ac; Assert.AreEqual(abThis.GetHashCode(), abOther.GetHashCode()); Assert.IsTrue(abThis.Equals(abOther)); Assert.IsTrue(abOther.Equals(abThis)); }
void TestCompareTo_ObjNotVertex_Helper() { Vertex vertex = Auxilaries.RandomVertex(); HalfEdge edge = Auxilaries.RandomHalfEdge(); vertex.CompareTo(edge); }
public void TestEquals_IdxEqualNotEqualSameSizeDifferentEdges() { HalfEdge a = Auxilaries.RandomHalfEdge(); HalfEdge b = Auxilaries.RandomHalfEdge(); HalfEdge c = Auxilaries.RandomHalfEdge(); HalfEdge d = Auxilaries.RandomHalfEdge(); HalfEdge e = Auxilaries.RandomHalfEdge(); Vector3 normal = Auxilaries.RandomNormal(); Face thisFace = new Face(0, normal); thisFace.AddOuterComponent(a); thisFace.AddOuterComponent(b); thisFace.AddOuterComponent(c); thisFace.AddOuterComponent(d); Face otherFace = new Face(0, normal); otherFace.AddOuterComponent(a); otherFace.AddOuterComponent(b); otherFace.AddOuterComponent(e); otherFace.AddOuterComponent(d); Assert.IsFalse(thisFace.Equals(otherFace)); Assert.IsFalse(otherFace.Equals(thisFace)); Assert.AreNotEqual(thisFace.GetHashCode(), otherFace.GetHashCode()); }
public void TestIsTriangular_Triangle() { Vertex a = new Vertex(new Vector3(1, 2, 3)); Vertex b = new Vertex(new Vector3(3, 9, -1)); Vertex c = new Vertex(new Vector3(4, 4, -7)); HalfEdge ab = new HalfEdge(a); HalfEdge ac = new HalfEdge(a); HalfEdge ba = new HalfEdge(b); HalfEdge bc = new HalfEdge(b); HalfEdge ca = new HalfEdge(c); HalfEdge cb = new HalfEdge(c); ab.Twin = ba; ac.Twin = ca; ba.Twin = ab; bc.Twin = cb; ca.Twin = ac; cb.Twin = bc; Face triangle = new Face(0, Auxilaries.RandomNormal()); triangle.AddOuterComponent(ac); triangle.AddOuterComponent(cb); triangle.AddOuterComponent(ba); Assert.IsTrue(triangle.IsTriangular()); }
public void TestHasIncidentFace_HasIncidentFace() { HalfEdge edge = Auxilaries.RandomHalfEdge(); edge.IncidentFace = new Face(0, Auxilaries.RandomNormal()); Assert.IsTrue(edge.HasIncidentFace); }
public void XAndyAreNotEqual_OriginDifferent() { HalfEdge x = Auxilaries.RandomHalfEdge(); HalfEdge y = Auxilaries.RandomHalfEdge(); Assert.IsFalse(comparer.Equals(x, y)); Assert.AreNotEqual(comparer.GetHashCode(x), comparer.GetHashCode(y)); }
public void XAndyAreNotEqual_PositionDifferent() { Vertex x = Auxilaries.RandomVertex(); Vertex y = Auxilaries.RandomVertex(); Assert.IsFalse(comparer.Equals(x, y)); Assert.AreNotEqual(comparer.GetHashCode(x), comparer.GetHashCode(y)); }
public void YIsNull() { Face x = Auxilaries.RandomFace(); Face y = null; Assert.IsFalse(comparer.Equals(x, y)); Assert.AreNotEqual(comparer.GetHashCode(x), comparer.GetHashCode(y)); }
public void YIsNull() { Vertex x = Auxilaries.RandomVertex(); Vertex y = null; Assert.IsFalse(comparer.Equals(x, y)); Assert.AreNotEqual(comparer.GetHashCode(x), comparer.GetHashCode(y)); }
public void XIsNull() { HalfEdge x = null; HalfEdge y = Auxilaries.RandomHalfEdge(); Assert.IsFalse(comparer.Equals(x, y)); Assert.AreNotEqual(comparer.GetHashCode(x), comparer.GetHashCode(y)); }
public void TestHasPrevious_HasPrevious() { HalfEdge edge = Auxilaries.RandomHalfEdge(); HalfEdge previous = Auxilaries.RandomHalfEdge(); edge.Previous = previous; Assert.IsTrue(edge.HasPrevious); }
public void TestAddIncidentEdges_NoOtherPropertiesSet() { Vertex v1 = Auxilaries.RandomVertex(); HalfEdge e11 = new HalfEdge(v1); v1.AddIncidentEdge(e11); Assert.Contains(e11, v1.IncidentEdges); }
public void TestCompareTo_ObjNull() { HalfEdge edge = Auxilaries.RandomHalfEdge(); int expected = 1; int actual = edge.CompareTo(null); Assert.AreEqual(expected, actual); }
public void XAndyAreNotEqual_KeyDifferent() { Face face = Auxilaries.RandomFace(); KeyValuePair <int, Face> x = new KeyValuePair <int, Face>(0, face); KeyValuePair <int, Face> y = new KeyValuePair <int, Face>(1, face); Assert.IsFalse(comparer.Equals(x, y)); Assert.AreNotEqual(comparer.GetHashCode(x), comparer.GetHashCode(y)); }
public void TestHasNext_HasNext() { HalfEdge edge = Auxilaries.RandomHalfEdge(); HalfEdge next = Auxilaries.RandomHalfEdge(); edge.Next = next; Assert.IsTrue(edge.HasNext); }
public void TestHasDestination_HasDestination() { HalfEdge edge = Auxilaries.RandomHalfEdge(); HalfEdge twin = Auxilaries.RandomHalfEdge(); edge.Twin = twin; Assert.IsTrue(edge.HasDestination); }
public void TestEquals_PositionNotEqual() { Vertex thisVertex = Auxilaries.RandomVertex(); Vertex otherVertex = Auxilaries.RandomVertex(); Assert.IsFalse(thisVertex.Equals(otherVertex)); Assert.IsFalse(otherVertex.Equals(thisVertex)); Assert.AreNotEqual(thisVertex, otherVertex); }
public void XAndyAreNotEqual_ValueDifferent() { int idx = 2; KeyValuePair <int, Face> x = new KeyValuePair <int, Face>(idx, Auxilaries.RandomFace()); KeyValuePair <int, Face> y = new KeyValuePair <int, Face>(idx, Auxilaries.RandomFace()); Assert.IsFalse(comparer.Equals(x, y)); Assert.AreNotEqual(comparer.GetHashCode(x), comparer.GetHashCode(y)); }
public void DuplicateVector() { Vector3 vector = Auxilaries.RandomPosition(); Vector3 actual = vector.Duplicate(); Assert.AreEqual(vector, actual); Assert.AreNotSame(vector, actual); }
public void TestCompareTo_ObjNull() { Face face = Auxilaries.RandomFace(); int expected = 1; int actual = face.CompareTo(null); Assert.AreEqual(expected, actual); }
public void TestCompareTo_ObjNull() { Vertex vertex = Auxilaries.RandomVertex(); int expected = 1; int actual = vertex.CompareTo(null); Assert.AreEqual(expected, actual); }
public void XAndyAreEqual() { Vertex positon = Auxilaries.RandomVertex(); HalfEdge x = new HalfEdge(positon); HalfEdge y = new HalfEdge(positon); Assert.IsTrue(comparer.Equals(x, y)); Assert.AreEqual(comparer.GetHashCode(x), comparer.GetHashCode(y)); }
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 XAndyAreEqual() { int idx = 3; Vector3 normal = Auxilaries.RandomNormal(); KeyValuePair <int, Face> x = new KeyValuePair <int, Face>(idx, new Face(idx, normal)); KeyValuePair <int, Face> y = new KeyValuePair <int, Face>(idx, new Face(idx, normal)); Assert.IsTrue(comparer.Equals(x, y)); Assert.AreEqual(comparer.GetHashCode(x), comparer.GetHashCode(y)); }