public void GetTriangleNameTest() { string[] validTriangleNamesCapsOnly = new string[] { "A1", "A2", "A3", "A4", "A5", "A6", "A7", "A8", "A9", "A10", "A11", "A12", "B1", "B2", "B3", "B4", "B5", "B6", "B7", "B8", "B9", "B10", "B11", "B12", "C1", "C2", "C3", "C4", "C5", "C6", "C7", "C8", "C9", "C10", "C11", "C12", "D1", "D2", "D3", "D4", "D5", "D6", "D7", "D8", "D9", "D10", "D11", "D12", "E1", "E2", "E3", "E4", "E5", "E6", "E7", "E8", "E9", "E10", "E11", "E12", "F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F10", "F11", "F12" }; string[] validTriangleCoordinates = new string[] { "(0,10),(0,0),(10,10)", // A1 "(10,0),(0,0),(10,10)", // A2 "(10,10),(10,0),(20,10)", // A3 "(20,0),(10,0),(20,10)", // A4 "(20,10),(20,0),(30,10)", // A5 "(30,0),(20,0),(30,10)", // A6 "(30,10),(30,0),(40,10)", // A7 "(40,0),(30,0),(40,10)", // A8 "(40,10),(40,0),(50,10)", // A9 "(50,0),(40,0),(50,10)", // A10 "(50,10),(50,0),(60,10)", // A11 "(60,0),(50,0),(60,10)", // A12 "(0,20),(0,10),(10,20)", // B1 "(10,10),(0,10),(10,20)", // B2 "(10,20),(10,10),(20,20)", // B3 "(20,10),(10,10),(20,20)", // B4 "(20,20),(20,10),(30,20)", // B5 "(30,10),(20,10),(30,20)", // B6 "(30,20),(30,10),(40,20)", // B7 "(40,10),(30,10),(40,20)", // B8 "(40,20),(40,10),(50,20)", // B9 "(50,10),(40,10),(50,20)", // B10 "(50,20),(50,10),(60,20)", // B11 "(60,10),(50,10),(60,20)", // B12 "(0,30),(0,20),(10,30)", // C1 "(10,20),(0,20),(10,30)", // C2 "(10,30),(10,20),(20,30)", // C3 "(20,20),(10,20),(20,30)", // C4 "(20,30),(20,20),(30,30)", // C5 "(30,20),(20,20),(30,30)", // C6 "(30,30),(30,20),(40,30)", // C7 "(40,20),(30,20),(40,30)", // C8 "(40,30),(40,20),(50,30)", // C9 "(50,20),(40,20),(50,30)", // C10 "(50,30),(50,20),(60,30)", // C11 "(60,20),(50,20),(60,30)", // C12 "(0,40),(0,30),(10,40)", // D1 "(10,30),(0,30),(10,40)", // D2 "(10,40),(10,30),(20,40)", // D3 "(20,30),(10,30),(20,40)", // D4 "(20,40),(20,30),(30,40)", // D5 "(30,30),(20,30),(30,40)", // D6 "(30,40),(30,30),(40,40)", // D7 "(40,30),(30,30),(40,40)", // D8 "(40,40),(40,30),(50,40)", // D9 "(50,30),(40,30),(50,40)", // D10 "(50,40),(50,30),(60,40)", // D11 "(60,30),(50,30),(60,40)", // D12 "(0,50),(0,40),(10,50)", // E1 "(10,40),(0,40),(10,50)", // E2 "(10,50),(10,40),(20,50)", // E3 "(20,40),(10,40),(20,50)", // E4 "(20,50),(20,40),(30,50)", // E5 "(30,40),(20,40),(30,50)", // E6 "(30,50),(30,40),(40,50)", // E7 "(40,40),(30,40),(40,50)", // E8 "(40,50),(40,40),(50,50)", // E9 "(50,40),(40,40),(50,50)", // E10 "(50,50),(50,40),(60,50)", // E11 "(60,40),(50,40),(60,50)", // E12 "(0,60),(0,50),(10,60)", // F1 "(10,50),(0,50),(10,60)", // F2 "(10,60),(10,50),(20,60)", // F3 "(20,50),(10,50),(20,60)", // F4 "(20,60),(20,50),(30,60)", // F5 "(30,50),(20,50),(30,60)", // F6 "(30,60),(30,50),(40,60)", // F7 "(40,50),(30,50),(40,60)", // F8 "(40,60),(40,50),(50,60)", // F9 "(50,50),(40,50),(50,60)", // F10 "(50,60),(50,50),(60,60)", // F11 "(60,50),(50,50),(60,60)" }; // F12 string[] invalidTriangleCoordinates = new string[] { "(21,0),(11,0),(21,10)", // All x coordinate + 1 "(20,11),(20,1),(30,11)", // All y coordinate + 1 "(32,0),(22,0),(32,10)", // All x coordinate + 2 "(30,12),(30,2),(40,12)", // All y coordinate + 2 "(43,0),(33,0),(43,10)", // All x coordinate + 3 "(40,13),(40,3),(50,13)", // All y coordinate + 3 "(54,0),(44,0),(54,10)", // All x coordinate + 4 "(50,14),(50,4),(60,14)", // All y coordinate + 4 "(65,0),(55,0),(65,10)", // All x coordinate + 5 "(0,25),(0,15),(10,25)", // All y coordinate + 5 "(16,10),(6,10),(16,20)", // All x coordinate + 6 "(10,26),(10,16),(20,26)", // All y coordinate + 6 "(27,10),(17,10),(27,20)", // All x coordinate + 7 "(20,27),(20,17),(30,27)", // All y coordinate + 7 "(38,10),(28,10),(38,20)", // All x coordinate + 8 "(30,28),(30,18),(40,28)", // All y coordinate + 8 "(49,10),(39,10),(49,20)", // All x coordinate + 9 "(40,29),(40,19),(50,29)", // All y coordinate + 9 "((0,10),(40,10),(50,20)", // X1 valid char invalid position "(50,2)),(50,10),(60,20)", // Y1 valid char invalid position "(60,10),(5),10),(60,20)", // X2 valid char invalid position "(0,30),(0,2(),(10,30)", // Y2 valid char invalid position "(10,20),(0,20),(1),30)", // X3 valid char invalid position "(10,30),(10,20),(20,(0)", // X4 valid char invalid position "(20,20),,(10,2),(20,30)", // extra comma "(200,30),(20,20),(30,30)", // X1 too large (valid chars) "(30,200),(20,20),(30,30)", // Y1 too large (valid chars) "(30,30),(300,20),(40,30)", // X2 too large (valid chars) "(40,20),(30,200),(40,30)", // Y2 too large (valid chars) "(40,30),(40,20),(500,30)", // X3 too large (valid chars) "(50,20),(40,20),(50,300)" }; // Y3 too large (valid chars) for (int i = 0; i < (validTriangleCoordinates.Length - 1); i++) { var controller = new TriangulatorController(); var result = controller.GetTriangleName(validTriangleCoordinates[i]); var okObjectResult = result as OkObjectResult; Triangle triangle = okObjectResult.Value as Triangle; Assert.AreEqual(triangle.TriangleName, validTriangleNamesCapsOnly[i]); Assert.AreEqual(triangle.Coordinates, validTriangleCoordinates[i]); } foreach (var invalidTriangleCoordinate in invalidTriangleCoordinates) { var controller = new TriangulatorController(); var result = controller.GetTriangleName(invalidTriangleCoordinate); var badRequestResult = result as BadRequestObjectResult; string resultMessage = badRequestResult.Value as string; Assert.AreEqual(resultMessage, "Invalid Triangle Coordinates"); } }
public void GetCoordinatesTest() { string[] validTriangleNames = new string[] { "a1", "a2", "a3", "a4", "a5", "a6", "a7", "a8", "a9", "a10", "a11", "a12", "b1", "b2", "b3", "b4", "b5", "b6", "b7", "b8", "b9", "b10", "b11", "b12", "c1", "c2", "c3", "c4", "c5", "c6", "c7", "c8", "c9", "c10", "c11", "c12", "d1", "d2", "d3", "d4", "d5", "d6", "d7", "d8", "d9", "d10", "d11", "d12", "e1", "e2", "e3", "e4", "e5", "e6", "e7", "e8", "e9", "e10", "e11", "e12", "f1", "f2", "f3", "f4", "f5", "f6", "f7", "f8", "f9", "f10", "f11", "f12", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "A8", "A9", "A10", "A11", "A12", "B1", "B2", "B3", "B4", "B5", "B6", "B7", "B8", "B9", "B10", "B11", "B12", "C1", "C2", "C3", "C4", "C5", "C6", "C7", "C8", "C9", "C10", "C11", "C12", "D1", "D2", "D3", "D4", "D5", "D6", "D7", "D8", "D9", "D10", "D11", "D12", "E1", "E2", "E3", "E4", "E5", "E6", "E7", "E8", "E9", "E10", "E11", "E12", "F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F10", "F11", "F12" }; string[] validTriangleCoordinates = new string[] { "(0,10),(0,0),(10,10)", // a1 "(10,0),(0,0),(10,10)", // a2 "(10,10),(10,0),(20,10)", // a3 "(20,0),(10,0),(20,10)", // a4 "(20,10),(20,0),(30,10)", // a5 "(30,0),(20,0),(30,10)", // a6 "(30,10),(30,0),(40,10)", // a7 "(40,0),(30,0),(40,10)", // a8 "(40,10),(40,0),(50,10)", // a9 "(50,0),(40,0),(50,10)", // a10 "(50,10),(50,0),(60,10)", // a11 "(60,0),(50,0),(60,10)", // a12 "(0,20),(0,10),(10,20)", // b1 "(10,10),(0,10),(10,20)", // b2 "(10,20),(10,10),(20,20)", // b3 "(20,10),(10,10),(20,20)", // b4 "(20,20),(20,10),(30,20)", // b5 "(30,10),(20,10),(30,20)", // b6 "(30,20),(30,10),(40,20)", // b7 "(40,10),(30,10),(40,20)", // b8 "(40,20),(40,10),(50,20)", // b9 "(50,10),(40,10),(50,20)", // b10 "(50,20),(50,10),(60,20)", // b11 "(60,10),(50,10),(60,20)", // b12 "(0,30),(0,20),(10,30)", // c1 "(10,20),(0,20),(10,30)", // c2 "(10,30),(10,20),(20,30)", // c3 "(20,20),(10,20),(20,30)", // c4 "(20,30),(20,20),(30,30)", // c5 "(30,20),(20,20),(30,30)", // c6 "(30,30),(30,20),(40,30)", // c7 "(40,20),(30,20),(40,30)", // c8 "(40,30),(40,20),(50,30)", // c9 "(50,20),(40,20),(50,30)", // c10 "(50,30),(50,20),(60,30)", // c11 "(60,20),(50,20),(60,30)", // c12 "(0,40),(0,30),(10,40)", // d1 "(10,30),(0,30),(10,40)", // d2 "(10,40),(10,30),(20,40)", // d3 "(20,30),(10,30),(20,40)", // d4 "(20,40),(20,30),(30,40)", // d5 "(30,30),(20,30),(30,40)", // d6 "(30,40),(30,30),(40,40)", // d7 "(40,30),(30,30),(40,40)", // d8 "(40,40),(40,30),(50,40)", // d9 "(50,30),(40,30),(50,40)", // d10 "(50,40),(50,30),(60,40)", // d11 "(60,30),(50,30),(60,40)", // d12 "(0,50),(0,40),(10,50)", // e1 "(10,40),(0,40),(10,50)", // e2 "(10,50),(10,40),(20,50)", // e3 "(20,40),(10,40),(20,50)", // e4 "(20,50),(20,40),(30,50)", // e5 "(30,40),(20,40),(30,50)", // e6 "(30,50),(30,40),(40,50)", // e7 "(40,40),(30,40),(40,50)", // e8 "(40,50),(40,40),(50,50)", // e9 "(50,40),(40,40),(50,50)", // e10 "(50,50),(50,40),(60,50)", // e11 "(60,40),(50,40),(60,50)", // e12 "(0,60),(0,50),(10,60)", // f1 "(10,50),(0,50),(10,60)", // f2 "(10,60),(10,50),(20,60)", // f3 "(20,50),(10,50),(20,60)", // f4 "(20,60),(20,50),(30,60)", // f5 "(30,50),(20,50),(30,60)", // f6 "(30,60),(30,50),(40,60)", // f7 "(40,50),(30,50),(40,60)", // f8 "(40,60),(40,50),(50,60)", // f9 "(50,50),(40,50),(50,60)", // f10 "(50,60),(50,50),(60,60)", // f11 "(60,50),(50,50),(60,60)", // f12 "(0,10),(0,0),(10,10)", // A1 "(10,0),(0,0),(10,10)", // A2 "(10,10),(10,0),(20,10)", // A3 "(20,0),(10,0),(20,10)", // A4 "(20,10),(20,0),(30,10)", // A5 "(30,0),(20,0),(30,10)", // A6 "(30,10),(30,0),(40,10)", // A7 "(40,0),(30,0),(40,10)", // A8 "(40,10),(40,0),(50,10)", // A9 "(50,0),(40,0),(50,10)", // A10 "(50,10),(50,0),(60,10)", // A11 "(60,0),(50,0),(60,10)", // A12 "(0,20),(0,10),(10,20)", // B1 "(10,10),(0,10),(10,20)", // B2 "(10,20),(10,10),(20,20)", // B3 "(20,10),(10,10),(20,20)", // B4 "(20,20),(20,10),(30,20)", // B5 "(30,10),(20,10),(30,20)", // B6 "(30,20),(30,10),(40,20)", // B7 "(40,10),(30,10),(40,20)", // B8 "(40,20),(40,10),(50,20)", // B9 "(50,10),(40,10),(50,20)", // B10 "(50,20),(50,10),(60,20)", // B11 "(60,10),(50,10),(60,20)", // B12 "(0,30),(0,20),(10,30)", // C1 "(10,20),(0,20),(10,30)", // C2 "(10,30),(10,20),(20,30)", // C3 "(20,20),(10,20),(20,30)", // C4 "(20,30),(20,20),(30,30)", // C5 "(30,20),(20,20),(30,30)", // C6 "(30,30),(30,20),(40,30)", // C7 "(40,20),(30,20),(40,30)", // C8 "(40,30),(40,20),(50,30)", // C9 "(50,20),(40,20),(50,30)", // C10 "(50,30),(50,20),(60,30)", // C11 "(60,20),(50,20),(60,30)", // C12 "(0,40),(0,30),(10,40)", // D1 "(10,30),(0,30),(10,40)", // D2 "(10,40),(10,30),(20,40)", // D3 "(20,30),(10,30),(20,40)", // D4 "(20,40),(20,30),(30,40)", // D5 "(30,30),(20,30),(30,40)", // D6 "(30,40),(30,30),(40,40)", // D7 "(40,30),(30,30),(40,40)", // D8 "(40,40),(40,30),(50,40)", // D9 "(50,30),(40,30),(50,40)", // D10 "(50,40),(50,30),(60,40)", // D11 "(60,30),(50,30),(60,40)", // D12 "(0,50),(0,40),(10,50)", // E1 "(10,40),(0,40),(10,50)", // E2 "(10,50),(10,40),(20,50)", // E3 "(20,40),(10,40),(20,50)", // E4 "(20,50),(20,40),(30,50)", // E5 "(30,40),(20,40),(30,50)", // E6 "(30,50),(30,40),(40,50)", // E7 "(40,40),(30,40),(40,50)", // E8 "(40,50),(40,40),(50,50)", // E9 "(50,40),(40,40),(50,50)", // E10 "(50,50),(50,40),(60,50)", // E11 "(60,40),(50,40),(60,50)", // E12 "(0,60),(0,50),(10,60)", // F1 "(10,50),(0,50),(10,60)", // F2 "(10,60),(10,50),(20,60)", // F3 "(20,50),(10,50),(20,60)", // F4 "(20,60),(20,50),(30,60)", // F5 "(30,50),(20,50),(30,60)", // F6 "(30,60),(30,50),(40,60)", // F7 "(40,50),(30,50),(40,60)", // F8 "(40,60),(40,50),(50,60)", // F9 "(50,50),(40,50),(50,60)", // F10 "(50,60),(50,50),(60,60)", // F11 "(60,50),(50,50),(60,60)" }; // F12 string[] invalidTriangleNames = new string[] { "g1", "g2", "g3", "g4", "g5", "g6", "g7", "g8", "g9", "g10", "g11", "g12", "G1", "G2", "G3", "G4", "G5", "G6", "G7", "G8", "G9", "G10", "G11", "G12", "A", "ab", "ABC", "a111", "1A1", "1a", "11A", "aa1", "A00", "a01", "AAA", "b", "BC", "bcd", "B111", "1b1", "1B", "11b", "BB1", "b00", "B01", "bbb", "C", "cd", "CDE", "c111", "1C1", "1c", "11C", "cc1", "C00", "c01", "CCC", "d", "DE", "def", "D111", "1d1", "1D", "11d", "DD1", "d00", "D01", "ddd", "E", "eB", "EFG", "e111", "1E1", "1e", "11E", "ee1", "E00", "e01", "EEE", "f", "FG", "fgh", "F111", "1f1", "1F", "11f", "FF1", "f00", "F01", "fff", "A0", "a13", "B0", "b13", "C0", "c13", "D0", "d13", "E0", "e13", "F0", "f13" }; for (int i = 0; i < (validTriangleNames.Length - 1); i++) { var controller = new TriangulatorController(); var result = controller.GetCoordinates(validTriangleNames[i]); var okObjectResult = result as OkObjectResult; Triangle triangle = okObjectResult.Value as Triangle; Assert.AreEqual(triangle.TriangleName, validTriangleNames[i]); Assert.AreEqual(triangle.Coordinates, validTriangleCoordinates[i]); } foreach (var invalidTriangleName in invalidTriangleNames) { var controller = new TriangulatorController(); var result = controller.GetCoordinates(invalidTriangleName); var badRequestResult = result as BadRequestObjectResult; string resultMessage = badRequestResult.Value as string; Assert.AreEqual(resultMessage, "Invalid Triangle Name"); } }