Sep-19-2018, 10:57 AM
class Circle: def __init__(self,radius): try: if(isinstance(radius,float)): y=[x / 10.0 for x in range(5, 1005, 5)] if(radius in y): self.radius=radius else: raise ValueError else: raise TypeError except ValueError: raise ValueError("radius must be between 0 and 1000 inclusive") except TypeError: raise TypeError("radius must be a number") def area(self): y=math.pi*(self.radius**2) return round(y,2) def circumference(self): x=math.pi*2*self.radius return round(x,2) class TestCirce(unittest.TestCase): def test_creating_numeric_radius(self): c1=Circle(2.5) self.assertEqual(c1.radius,2.5) def test_creating_negative_radius(self): c=Circle(-33.5) self.assertEqual(c.radius,-33.5) self.assertRaises(ValueError) def test_creating_greaterthan_radius(self): c=Circle(1003.1) self.assertEqual(c.radius,1003.1) self.assertRaises(ValueError) def test_creating_nonnumeric_radius(self): c=Circle('hai') self.assertEqual(c.radius,'hai') self.assertRaises(TypeError) if __name__ == '__main__': fptr = open('output.txt', 'w') runner = unittest.TextTestRunner(fptr) unittest.main(testRunner=runner, exit=False) fptr.close() with open('output.txt') as fp: output_lines = fp.readlines() print(output_lines)
Output:['\n', '----------------------------------------------------------------------\n', 'Ran 0 tests in 0.000s\n', '\n', 'OK\n']