コード例 #1
0
        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");
            }
        }
コード例 #2
0
        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");
            }
        }