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']
