def test_bad_inputs(self): """testing invalid inputs, all these should return None """ self.assertEqual(__NONE__, classify_triangle(-1, 4, 4)) self.assertEqual(__NONE__, classify_triangle(4, -1, 4)) self.assertEqual(__NONE__, classify_triangle(4, 4, -1)) self.assertEqual(__NONE__, classify_triangle([4], 2, 1)) self.assertEqual(__NONE__, classify_triangle(4, False, 1)) self.assertEqual(__NONE__, classify_triangle(4, 2, True)) #BUG: this will fail on purpose self.assertEqual(__NONE__, classify_triangle(4, 0, 4))
def test_invalid_input(self): """ Test methods for InvalidInput """ self.assertEqual(classify_triangle(-4, -6, -7), 'InvalidInput') self.assertEqual(classify_triangle(200, 200, -300), 'InvalidInput') self.assertEqual(classify_triangle(3, 'x', 4), 'InvalidInput') self.assertEqual(classify_triangle('x', 'y', 'z'), 'InvalidInput') self.assertEqual(classify_triangle('x', 1, -1), 'InvalidInput') self.assertEqual(classify_triangle(-4, 'y', 'z'), 'InvalidInput')
def test_right_triangle(self): """ Test methods for Right [Scalene, Isosceles] triangle """ self.assertEqual(classify_triangle(3, 4, 5), 'Right Scalene') self.assertEqual(classify_triangle(10, 6, 8), 'Right Scalene') self.assertEqual(classify_triangle(24, 25, 7), 'Right Scalene') self.assertEqual(classify_triangle(5, 5, 7.07106781187), 'Right Isosceles') self.assertEqual(classify_triangle(8, 11.313708499, 8), 'Right Isosceles') self.assertEqual(classify_triangle(14.1421356237, 10, 10), 'Right Isosceles')
def test_scalene(self): """test scalene triangles """ self.assertEqual(__SCALENE__, classify_triangle(4, 5, 6)) self.assertEqual(__SCALENE__, classify_triangle(0.4, 0.5, 0.6))
def test_precision_equilateral(self): """ensure code is precise to only 2 decimal places for equilateral triangles """ self.assertEqual(__EQUILATERAL__, classify_triangle(4.001, 4.002, 4.003))
def test_precision_scalene(self): """ensure code is precise to only 2 decimal places for scalene triangles """ self.assertEqual(__SCALENE__, classify_triangle(0.44444, 0.555555, 0.666666))
def test_precision_right(self): """ensure code is precise to only 2 decimal places for right triangles """ self.assertEqual(__RIGHT__, classify_triangle(0.25001111, 0.400111, 0.47111111))
def test_precision_isosolese(self): """ensure code is precise to only 2 decimal places for isosolese triangles """ self.assertEqual(__ISOSOLESE__, classify_triangle(0.25, 0.405, 0.41))
def test_right(self): """test right triangles """ self.assertEqual(__RIGHT__, classify_triangle(3, 4, 5)) self.assertEqual(__RIGHT__, classify_triangle(0.25, 0.4, 0.47))
def test_isosolese(self): """test isosolese triangles """ self.assertEqual(__ISOSOLESE__, classify_triangle(3, 4, 4)) self.assertEqual(__ISOSOLESE__, classify_triangle(0.25, 0.4, 0.4))
def test_equilateral_triangle(self): """ Test methods for Equilateral triangle """ self.assertEqual(classify_triangle(1, 1, 1), 'Equilateral', '1,1,1 is equilateral') self.assertEqual(classify_triangle(5, 5, 5), 'Equilateral', '5,5,5 is equilateral') self.assertEqual(classify_triangle(10, 10, 10), 'Equilateral', '10,10,10 is equilateral')
def test_equilateral(self): """test equilateral triangles """ self.assertEqual(__EQUILATERAL__, classify_triangle(4, 4, 4)) self.assertEqual(__EQUILATERAL__, classify_triangle(0.1, 0.1, 0.1))
def test_isoscoles(self): self.assertEqual(classify_triangle(3, 3, 2), 'isoscoles') self.assertEqual(classify_triangle(1.5, 1.5, 1.5), 'equilateral') self.assertNotEqual(classify_triangle(3, 4, 5), 'equilateral')
def test_equilateral(self): self.assertEqual(classify_triangle(1, 1, 1), 'equilateral') self.assertEqual(classify_triangle(1.5, 1.5, 1.5), 'equilateral') self.assertNotEqual(classify_triangle(3, 4, 5), 'equilateral')
def test_isosceles_triangle(self): """ Test methods for Isosceles triangle """ self.assertEqual(classify_triangle(2, 2, 3), 'Isosceles', '2,2,4 is Isosceles') self.assertEqual(classify_triangle(3, 5, 3), 'Isosceles', '3,5,3 is Isosceles') self.assertEqual(classify_triangle(4, 6, 6), 'Isosceles', '4,6,6 is Isosceles')
def test_not_a_triangle(self): """ Test methods for NotATriangle """ self.assertEqual(classify_triangle(4, 7, 21), 'NotATriangle', '4,7,21 is not a triangle') self.assertEqual(classify_triangle(5, 1, 1), 'NotATriangle', '5, 1, 1 is not a triangle') self.assertEqual(classify_triangle(2, 6, 2), 'NotATriangle', '2,6,2 is not a triangle') self.assertEqual(classify_triangle(1, 1, 5), 'NotATriangle', '1,1,5 is not a triangle')
def test_scalene_triangle(self): """ Test methods for Scalene triangle """ self.assertEqual(classify_triangle(4, 5, 6), 'Scalene', '4,5,6 is Scalene') self.assertEqual(classify_triangle(6, 5, 4), 'Scalene', '6,5,4 is Scalene') self.assertEqual(classify_triangle(5, 4, 6), 'Scalene', '5,4,6 is Scalene') self.assertEqual(classify_triangle(10, 11, 12), 'Scalene', '10,11,12 is Scalene')