示例#1
0
        public void Input_3_4_5_Expected_true()
        {
            var result   = new TriangleService <TriangleInput>(new TriangleInput(3, 4, 5)).IsStraight();
            var expected = true;

            Assert.AreEqual(result, expected);
        }
示例#2
0
        public void Input_1_2_3_Expected_0()
        {
            var result   = new TriangleService <TriangleInput>(new TriangleInput(1, 2, 3)).GetArea();
            var expected = 0;

            Assert.AreEqual(result, expected);
        }
示例#3
0
        public void Input_5_6_7_Expected_14_70()
        {
            var result   = new TriangleService <TriangleInput>(new TriangleInput(5, 6, 7)).GetArea();
            var expected = 14.7;

            Assert.AreEqual(result, expected);
        }
示例#4
0
        public void TriangleType_InvalidTriangleSideLengths_ReturnsError()
        {
            var triangleService = new TriangleService();
            var actual          = triangleService.GetTriangleType(4, 4, 9);

            Assert.AreEqual("error", actual);
        }
示例#5
0
        public void TriangleType_SameSideLengths_ReturnsScalene()
        {
            var triangleService = new TriangleService();
            var actual          = triangleService.GetTriangleType(4, 5, 3);

            Assert.AreEqual("Scalene", actual);
        }
示例#6
0
        public void TriangleType_Same2SideLengths_ReturnsIsosceles()
        {
            var triangleService = new TriangleService();
            var actual          = triangleService.GetTriangleType(3, 5, 5);

            Assert.AreEqual("Isosceles", actual);
        }
        public void IsResultValid_CoordinatesFromVertices_EmptyInput()
        {
            var service = new TriangleService();
            var result  = service.GetCoordinateFromVertices(null);

            Assert.Null(result);
        }
示例#8
0
        public void Input_3_4_6_Expected_false()
        {
            var result   = new TriangleService <TriangleInput>(new TriangleInput(3, 4, 6)).IsStraight();
            var expected = false;

            Assert.AreEqual(result, expected);
        }
示例#9
0
        public void TriangleType_InvalidNegativeSides_ReturnsError()
        {
            var triangleService = new TriangleService();
            var actual          = triangleService.GetTriangleType(1, -1, 1);

            Assert.AreEqual("error", actual);
        }
示例#10
0
        public void TriangleType_SameSideLengths_ReturnsEquilateral()
        {
            var triangleService = new TriangleService();
            var actual          = triangleService.GetTriangleType(1, 1, 1);

            Assert.AreEqual("Equilateral", actual);
        }
示例#11
0
        public void IsResultValid_CoordinatesFromVertices_InvalidInput()
        {
            var service = new TriangleService();
            var input   = new TriangleVertices(-2, -2, -2, -2, -2, -2);
            var result  = service.GetCoordinateFromVertices(input);

            Assert.Null(result);
        }
示例#12
0
        public void GetTriangleType_ValidTriangles_Equilateral()
        {
            var triangleService = new TriangleService();
            var resultsList     = new List <TriangleType>
            {
                triangleService.GetTriangleType(new Triangle(1, 1, 1)),
                triangleService.GetTriangleType(new Triangle(int.MaxValue, int.MaxValue, int.MaxValue)),
            };

            Assert.IsTrue(resultsList.All(r => r == TriangleType.Equilateral));
        }
示例#13
0
        public void IsResultValid_VerticesFromCoordinates_InvalidInput()
        {
            var service = new TriangleService();
            var input   = new TriangleCoordinate('z', 2);
            var result  = service.GetVerticesForCoordinate(input);

            Assert.Null(result);

            input  = new TriangleCoordinate('a', -2);
            result = service.GetVerticesForCoordinate(input);
            Assert.Null(result);
        }
示例#14
0
        public void GetTriangleType_ValidTriangles_Isosceles()
        {
            var triangleService = new TriangleService();
            var resultsList     = new List <TriangleType>
            {
                triangleService.GetTriangleType(new Triangle(4, 4, 6)),
                triangleService.GetTriangleType(new Triangle(int.MaxValue, 1, int.MaxValue)),
                triangleService.GetTriangleType(new Triangle(11, 1, 11)),
            };

            Assert.IsTrue(resultsList.All(r => r == TriangleType.Isosceles));
        }
示例#15
0
        public void GetTriangleType_ValidTriangles_Scalene()
        {
            var triangleService = new TriangleService();
            var resultsList     = new List <TriangleType>
            {
                triangleService.GetTriangleType(new Triangle(5, 6, 7)),
                triangleService.GetTriangleType(new Triangle(7, 6, 5)),
                triangleService.GetTriangleType(new Triangle(6, 5, 7))
            };

            Assert.IsTrue(resultsList.All(r => r == TriangleType.Scalene));
        }
示例#16
0
        public void CalculateCellDataIntegrationTest()
        {
            var triangleItemRepositoryMock = new Mock <ITriangleRepository>();

            triangleItemRepositoryMock.Setup(_ => _.GetAll()).Returns(File.Exists(FilePath) ? File.ReadAllLines(FilePath) : new string[0]);

            var triangleItemService = new TriangleService(triangleItemRepositoryMock.Object, new CellService());

            var cellData = triangleItemService.CalculateCellData();

            var firstNode = cellData.FirstOrDefault(i => i.X == 0 && i.Y == 0);

            Assert.Equal(16, firstNode?.Path?.Sum());
        }
示例#17
0
        public void GetTriangleType_NoEqualSides_ReturnsScalene(int sideOne, int sideTwo, int sideThree)
        {
            var triangleService = new TriangleService(new PolygonService());

            var results = new List <TriangleType>
            {
                triangleService.GetTriangleType(sideOne, sideTwo, sideThree),
                triangleService.GetTriangleType(sideOne, sideThree, sideTwo),
                triangleService.GetTriangleType(sideTwo, sideOne, sideThree),
                triangleService.GetTriangleType(sideTwo, sideThree, sideOne),
                triangleService.GetTriangleType(sideThree, sideOne, sideTwo),
                triangleService.GetTriangleType(sideThree, sideTwo, sideOne)
            };

            Assert.All(results, x => Assert.Equal(TriangleType.Scalene, x));
        }
示例#18
0
        [InlineData(3, 3, 10)]   // largest side exceeds smaller sides
        public void GetTriangleType_ImpossibleSides_ReturnsInvalidTriangle(int sideOne, int sideTwo, int sideThree)
        {
            var triangleService = new TriangleService(new PolygonService());

            var results = new List <TriangleType>
            {
                triangleService.GetTriangleType(sideOne, sideTwo, sideThree),
                triangleService.GetTriangleType(sideOne, sideThree, sideTwo),
                triangleService.GetTriangleType(sideTwo, sideOne, sideThree),
                triangleService.GetTriangleType(sideTwo, sideThree, sideOne),
                triangleService.GetTriangleType(sideThree, sideOne, sideTwo),
                triangleService.GetTriangleType(sideThree, sideTwo, sideOne)
            };

            Assert.All(results, x => Assert.Equal(TriangleType.NotAValidTriangle, x));
        }
示例#19
0
        public void GetTriangleType_InvalidTriangeCoordinats_Error()
        {
            var triangleService = new TriangleService();
            var resultsList     = new List <TriangleType>
            {
                triangleService.GetTriangleType(new Triangle(0, 0, 0)),
                triangleService.GetTriangleType(new Triangle(1, 1, 2)),
                triangleService.GetTriangleType(new Triangle(-1, -1, -1)),
                triangleService.GetTriangleType(new Triangle(-1, 0, 1)),
                triangleService.GetTriangleType(new Triangle(1, 1, -1)),
                triangleService.GetTriangleType(new Triangle(9, 9, 9999)),
                triangleService.GetTriangleType(new Triangle(1, 1, int.MaxValue)),
                triangleService.GetTriangleType(new Triangle(int.MinValue, int.MinValue, int.MinValue)),
                triangleService.GetTriangleType(new Triangle(4, 4, 8)),
                triangleService.GetTriangleType(new Triangle(5, 6, 13))
            };

            Assert.IsTrue(resultsList.All(r => r == TriangleType.Error));
        }
        public void TestGetTriangleFromVertices()
        {
            var service = new TriangleService();
            var input   = new List <Vertex>()
            {
                new Vertex()
                {
                    X = 0, Y = 0
                },
                new Vertex()
                {
                    X = 10, Y = 10
                },
                new Vertex()
                {
                    X = 0, Y = 10
                }
            };
            var actual = service.GetTriangle(input);

            Assert.AreEqual('A', actual.Row);
            Assert.AreEqual(1, actual.Column);

            input = new List <Vertex>()
            {
                new Vertex()
                {
                    X = 10, Y = 20
                },
                new Vertex()
                {
                    X = 10, Y = 10
                },
                new Vertex()
                {
                    X = 20, Y = 20
                }
            };
            actual = service.GetTriangle(input);
            Assert.AreEqual('B', actual.Row);
            Assert.AreEqual(3, actual.Column);
        }
 public void TestGetTriangleFromVerticesBadInput()
 {
     var service = new TriangleService();
     var input   = new List <Vertex>()
     {
         new Vertex()
         {
             X = 55, Y = 0
         },
         new Vertex()
         {
             X = 10, Y = 10
         },
         new Vertex()
         {
             X = 0, Y = 10
         }
     };
     var actual = service.GetTriangle(input);
 }
示例#22
0
        static void Main(string[] args)
        {
            Console.WriteLine("Enter three integers:");

            try
            {
                var sideOne   = int.Parse(Console.ReadLine());
                var sideTwo   = int.Parse(Console.ReadLine());
                var sideThree = int.Parse(Console.ReadLine());

                var triangleService = new TriangleService(new PolygonService());

                Console.WriteLine(triangleService.GetTriangleType(sideOne, sideTwo, sideThree));
            }
            catch
            {
                Console.WriteLine("Invalid input.");
            }

            Console.ReadLine();
        }
示例#23
0
        public void GetCoordinates_for_rowF_and_column12()
        {
            //Arrange
            var triangle = new TriangleService();
            List <Coordinate> expectedCoordinate = new List <Coordinate> {
                new Coordinate {
                    X = 50, Y = 50
                },
                new Coordinate {
                    X = 60, Y = 50
                },
                new Coordinate {
                    X = 60, Y = 60
                },
            };

            //Act
            var result = triangle.GetCoordinate('F', 12);

            //Assert
            Assert.IsTrue(AreListsEqual(expectedCoordinate, result));
        }
示例#24
0
        public void GetCellLocation_of_rowF_and_column12()
        {
            //Arrange
            var triangle = new TriangleService();
            List <Coordinate> coordinates = new List <Coordinate> {
                new Coordinate {
                    X = 50, Y = 50
                },
                new Coordinate {
                    X = 60, Y = 50
                },
                new Coordinate {
                    X = 60, Y = 60
                },
            };

            //Act
            var result = triangle.GetTriangleLocation(coordinates);

            //Assert
            Assert.AreEqual(result.Row, 'F');
            Assert.AreEqual(result.Column, 12);
        }
        public void TestGetTriangleFromRowAndColumn()
        {
            var service = new TriangleService();
            var actual  = service.GetTriangle('A', 1);

            Assert.AreEqual('A', actual.Row);
            Assert.AreEqual(1, actual.Column);
            Assert.AreEqual(0, actual.Vertices[0].X);
            Assert.AreEqual(0, actual.Vertices[0].Y);
            Assert.AreEqual(0, actual.Vertices[1].X);
            Assert.AreEqual(10, actual.Vertices[1].Y);
            Assert.AreEqual(10, actual.Vertices[2].X);
            Assert.AreEqual(10, actual.Vertices[2].Y);

            actual = service.GetTriangle('B', 4);
            Assert.AreEqual('B', actual.Row);
            Assert.AreEqual(4, actual.Column);
            Assert.AreEqual(10, actual.Vertices[0].X);
            Assert.AreEqual(10, actual.Vertices[0].Y);
            Assert.AreEqual(20, actual.Vertices[1].X);
            Assert.AreEqual(10, actual.Vertices[1].Y);
            Assert.AreEqual(20, actual.Vertices[2].X);
            Assert.AreEqual(20, actual.Vertices[2].Y);
        }
 public void Initialize()
 {
     _triangleRepsitoryMock = new Mock <ITriangleRepository>();
     _triangleService       = new TriangleService(_triangleRepsitoryMock.Object);
 }
 public void TestGetTriangleFromRowAndColumnColumnOutOfRangeHigh()
 {
     var service = new TriangleService();
     var actual  = service.GetTriangle('A', 13);
 }
 public void TestGetTriangleFromRowAndColumnRowOutOfRange()
 {
     var service = new TriangleService();
     var actual  = service.GetTriangle('a', 1);
 }
示例#29
0
 /// <summary>
 /// Default constructor for TriangleController
 /// </summary>
 public TriangleController()
 {
     triangleService = new TriangleService();
 }
        public void ReturnFalseForInValidTriangles(int sideA, int sideB, int sideC)
        {
            TriangleService triangle = new TriangleService(sideA, sideB, sideC);

            Assert.IsFalse(triangle.isValidTriangle(), $"The triangle ({sideA}, {sideB}, {sideC}) should be an invalid triangle");
        }