public void TestAngleBisectorsNonConvexPolygon() { LAV listOfActiveVertices2 = new LAV(); listOfActiveVertices2.Add(new Vertex(0, 6)); listOfActiveVertices2.Add(new Vertex(0, 0)); listOfActiveVertices2.Add(new Vertex(4, 0)); listOfActiveVertices2.Add(new Vertex(4, 3)); listOfActiveVertices2.Add(new Vertex(8, 3)); listOfActiveVertices2.Add(new Vertex(8, 6)); SSLOperations.SetVertexType(listOfActiveVertices2); SSLOperations.ComputeAngleBisectors(listOfActiveVertices2); Assert.AreEqual(3.29, Math.Round(listOfActiveVertices2.Get(4).AngleBisector.GetX(), 2)); Assert.AreEqual(3.71, Math.Round(listOfActiveVertices2.Get(4).AngleBisector.GetY(), 2)); }
public void TestVertexType() { //ALL CONVEX POLYGONS //RECTANGLE SSLOperations.SetVertexType(listOfActiveVertices); foreach (Vertex v in listOfActiveVertices) Assert.AreEqual(Vertex.VertexType.Edge, v.Type); //DIAMOND LAV listOfActiveVertices2 = new LAV(); listOfActiveVertices2.Add(new Vertex(2, 4)); listOfActiveVertices2.Add(new Vertex(0, 2)); listOfActiveVertices2.Add(new Vertex(2, 0)); listOfActiveVertices2.Add(new Vertex(4, 2)); SSLOperations.SetVertexType(listOfActiveVertices2); foreach (Vertex v in listOfActiveVertices2) Assert.AreEqual(Vertex.VertexType.Edge, v.Type); //OCTAGON LAV listOfActiveVertices3 = new LAV(); listOfActiveVertices3.Add(new Vertex(3, 10)); listOfActiveVertices3.Add(new Vertex(0, 7)); listOfActiveVertices3.Add(new Vertex(0, 3)); listOfActiveVertices3.Add(new Vertex(3, 0)); listOfActiveVertices3.Add(new Vertex(7, 0)); listOfActiveVertices3.Add(new Vertex(10, 3)); listOfActiveVertices3.Add(new Vertex(10, 7)); listOfActiveVertices3.Add(new Vertex(7, 10)); SSLOperations.SetVertexType(listOfActiveVertices3); foreach (Vertex v in listOfActiveVertices3) Assert.AreEqual(Vertex.VertexType.Edge, v.Type); //ALL NON-CONVEX POLYGONS //PEAK -- W type shape LAV listOfActiveVertices4 = new LAV(); listOfActiveVertices4.Add(new Vertex(0, 3)); listOfActiveVertices4.Add(new Vertex(2, 0)); listOfActiveVertices4.Add(new Vertex(4, 2)); listOfActiveVertices4.Add(new Vertex(6, 0)); listOfActiveVertices4.Add(new Vertex(8, 3)); SSLOperations.SetVertexType(listOfActiveVertices4); for (int i = 0; i < listOfActiveVertices4.Length; i++) if (i != 3) Assert.AreEqual(Vertex.VertexType.Edge, listOfActiveVertices4.Get(i).Type); else Assert.AreEqual(Vertex.VertexType.Split, listOfActiveVertices4.Get(i).Type); //VALLEY LAV listOfActiveVertices5 = new LAV(); listOfActiveVertices5.Add(new Vertex(0, 4)); listOfActiveVertices5.Add(new Vertex(0, 0)); listOfActiveVertices5.Add(new Vertex(4, 0)); listOfActiveVertices5.Add(new Vertex(4, 4)); listOfActiveVertices5.Add(new Vertex(2, 2)); SSLOperations.SetVertexType(listOfActiveVertices5); for (int i = 0; i < listOfActiveVertices5.Length; i++) if (i != 5) Assert.AreEqual(Vertex.VertexType.Edge, listOfActiveVertices5.Get(i).Type); else Assert.AreEqual(Vertex.VertexType.Split, listOfActiveVertices5.Get(i).Type); //> LAV listOfActiveVertices6 = new LAV(); listOfActiveVertices6.Add(new Vertex(0, 4)); listOfActiveVertices6.Add(new Vertex(2, 2)); listOfActiveVertices6.Add(new Vertex(0, 0)); listOfActiveVertices6.Add(new Vertex(4, 0)); listOfActiveVertices6.Add(new Vertex(4, 4)); SSLOperations.SetVertexType(listOfActiveVertices6); for (int i = 0; i < listOfActiveVertices6.Length; i++) if (i != 2) Assert.AreEqual(Vertex.VertexType.Edge, listOfActiveVertices6.Get(i).Type); else Assert.AreEqual(Vertex.VertexType.Split, listOfActiveVertices6.Get(i).Type); //< LAV listOfActiveVertices7 = new LAV(); listOfActiveVertices7.Add(new Vertex(0, 4)); listOfActiveVertices7.Add(new Vertex(0, 0)); listOfActiveVertices7.Add(new Vertex(4, 0)); listOfActiveVertices7.Add(new Vertex(2, 2)); listOfActiveVertices7.Add(new Vertex(4, 4)); SSLOperations.SetVertexType(listOfActiveVertices7); for (int i = 0; i < listOfActiveVertices7.Length; i++) if (i != 4) Assert.AreEqual(Vertex.VertexType.Edge, listOfActiveVertices7.Get(i).Type); else Assert.AreEqual(Vertex.VertexType.Split, listOfActiveVertices7.Get(i).Type); /* * X------------------------X * | | * | | * | X-----------X * | | * | | * X------------X */ LAV listOfActiveVertices8 = new LAV(); listOfActiveVertices8.Add(new Vertex(0, 6)); listOfActiveVertices8.Add(new Vertex(0, 0)); listOfActiveVertices8.Add(new Vertex(4, 0)); listOfActiveVertices8.Add(new Vertex(4, 3)); listOfActiveVertices8.Add(new Vertex(8, 3)); listOfActiveVertices8.Add(new Vertex(8, 6)); SSLOperations.SetVertexType(listOfActiveVertices8); for (int i = 0; i < listOfActiveVertices8.Length; i++) if (i != 4) Assert.AreEqual(Vertex.VertexType.Edge, listOfActiveVertices8.Get(i).Type); else Assert.AreEqual(Vertex.VertexType.Split, listOfActiveVertices8.Get(i).Type); /* * X------------------------X * | | * | | * X------------X X * | | * | | * | | * X-----------X */ LAV listOfActiveVertices9 = new LAV(); listOfActiveVertices9.Add(new Vertex(0, 8)); listOfActiveVertices9.Add(new Vertex(0, 3)); listOfActiveVertices9.Add(new Vertex(4, 3)); listOfActiveVertices9.Add(new Vertex(4, 0)); listOfActiveVertices9.Add(new Vertex(8, 0)); listOfActiveVertices9.Add(new Vertex(8, 6)); SSLOperations.SetVertexType(listOfActiveVertices9); for (int i = 0; i < listOfActiveVertices9.Length; i++) if (i != 3) Assert.AreEqual(Vertex.VertexType.Edge, listOfActiveVertices9.Get(i).Type); else Assert.AreEqual(Vertex.VertexType.Split, listOfActiveVertices9.Get(i).Type); }