예제 #1
0
        public void ReturnsRightOnRightAngleOppSideA()
        {
            var info1 = TriangleChecker.GetTriangleStats(5, 3, 4);
            var info2 = TriangleChecker.GetTriangleStats(5, 4, 3);

            Assert.AreEqual(TriangleAngle.Right, info1.Angle);
            Assert.AreEqual(TriangleAngle.Right, info2.Angle);
        }
예제 #2
0
        public void ReturnsObtuseOnObtuseAngleOppSideC()
        {
            var info1 = TriangleChecker.GetTriangleStats(3, 4, 6);
            var info2 = TriangleChecker.GetTriangleStats(4, 3, 6);

            Assert.AreEqual(TriangleAngle.Obtuse, info1.Angle);
            Assert.AreEqual(TriangleAngle.Obtuse, info2.Angle);
        }
예제 #3
0
        public void ReturnsAcuteWhenOneLegIsZero()
        {
            var info1 = TriangleChecker.GetTriangleStats(0, 1, 1);
            var info2 = TriangleChecker.GetTriangleStats(1, 0, 1);
            var info3 = TriangleChecker.GetTriangleStats(1, 1, 0);

            Assert.AreEqual(TriangleAngle.Acute, info1.Angle);
            Assert.AreEqual(TriangleAngle.Acute, info2.Angle);
            Assert.AreEqual(TriangleAngle.Acute, info3.Angle);
        }
예제 #4
0
        public void ReturnsObtuseWhenTwoLegsEqualThird()
        {
            var info1 = TriangleChecker.GetTriangleStats(2, 1, 1);
            var info2 = TriangleChecker.GetTriangleStats(1, 2, 1);
            var info3 = TriangleChecker.GetTriangleStats(1, 1, 2);

            Assert.AreEqual(TriangleAngle.Obtuse, info1.Angle);
            Assert.AreEqual(TriangleAngle.Obtuse, info2.Angle);
            Assert.AreEqual(TriangleAngle.Obtuse, info3.Angle);
        }
예제 #5
0
        public void ReturnsRightOnLargeDiffBetweenLegs()
        {
            // One angle is 90 degrees, one is very close to 90, and one is very close to zero
            var info1 = TriangleChecker.GetTriangleStats(30000.00002, 30000, 1);
            var info2 = TriangleChecker.GetTriangleStats(1, 30000.00002, 30000);
            var info3 = TriangleChecker.GetTriangleStats(30000, 1, 30000.00002);

            Assert.AreEqual(TriangleAngle.Right, info1.Angle);
            Assert.AreEqual(TriangleAngle.Right, info2.Angle);
            Assert.AreEqual(TriangleAngle.Right, info3.Angle);
        }
예제 #6
0
        public void ReturnsAcuteOnVeryCloseToRightAngle()
        {
            // two of the angles are roughly 89.999 degrees, making the third almost zero
            var info1 = TriangleChecker.GetTriangleStats(1, 30000, 30000);
            var info2 = TriangleChecker.GetTriangleStats(30000, 1, 30000);
            var info3 = TriangleChecker.GetTriangleStats(30000, 30000, 1);

            Assert.AreEqual(TriangleAngle.Acute, info1.Angle);
            Assert.AreEqual(TriangleAngle.Acute, info2.Angle);
            Assert.AreEqual(TriangleAngle.Acute, info3.Angle);
        }
예제 #7
0
        public void ReturnsObtuseOnLargeObtuseAngle()
        {
            // the obtuse angle is roughly 179.5 degrees (triangle is almost flat)

            var info1 = TriangleChecker.GetTriangleStats(20, 10.0001, 10.0001);
            var info2 = TriangleChecker.GetTriangleStats(10.0001, 20, 10.0001);
            var info3 = TriangleChecker.GetTriangleStats(10.0001, 10.0001, 20);

            Assert.AreEqual(TriangleAngle.Obtuse, info1.Angle);
            Assert.AreEqual(TriangleAngle.Obtuse, info2.Angle);
            Assert.AreEqual(TriangleAngle.Obtuse, info3.Angle);
        }
예제 #8
0
        public void ReturnsScaleneOnNoEqualSides()
        {
            var info = TriangleChecker.GetTriangleStats(2, 3, 4);

            Assert.AreEqual(TriangleType.Scalene, info.Type);
        }
예제 #9
0
        public void ReturnsIsoscelesOnCAEqual()
        {
            var info = TriangleChecker.GetTriangleStats(2, 1, 2);

            Assert.AreEqual(TriangleType.Isosceles, info.Type);
        }
예제 #10
0
        public void ReturnsEquilateralOnAllEqualSides()
        {
            var info = TriangleChecker.GetTriangleStats(1, 1, 1);

            Assert.AreEqual(TriangleType.Equilateral, info.Type);
        }
예제 #11
0
 public void ThrowsExceptionOnCGreaterThanAB()
 {
     Assert.ThrowsException <InvalidTriangleException>(() => TriangleChecker.GetTriangleStats(1, 1, 3));
 }
예제 #12
0
 public void ThrowsExceptionOnAGreaterThanBC()
 {
     Assert.ThrowsException <InvalidTriangleException>(() => TriangleChecker.GetTriangleStats(3, 1, 1));
 }
예제 #13
0
 public void ThrowsExceptionOnNegativeSideC()
 {
     Assert.ThrowsException <ArgumentException>(() => TriangleChecker.GetTriangleStats(1, 1, -1));
 }
예제 #14
0
        public void ReturnsAcuteOnAllAnglesLessThan90()
        {
            var info = TriangleChecker.GetTriangleStats(3, 3, 2);

            Assert.AreEqual(TriangleAngle.Acute, info.Angle);
        }