You are on page 1of 4

Step 2

import math
from nose.tools import assert_raises
from nose.tools import assert_equal
class Circle:

def __init__(self, radius):


self.radius=radius
if not isinstance(self.radius,(int,float)):
raise TypeError("radius must be a number")
elif(self.radius>1000 or self.radius<0):
raise ValueError("radius must be between 0 and 1000 inclusive")
else:
pass
def area(self):
return math.pi*(self.radius**2)
def circumference(self):
return 2*math.pi*self.radius

Step 3

#class named TestingCircleCreation is added

import math
from nose.tools import assert_raises
from nose.tools import assert_equal
class Circle:

def __init__(self, radius):


self.radius=radius
if not isinstance(self.radius,(int,float)):
raise TypeError("radius must be a number")
elif(self.radius>1000 or self.radius<0):
raise ValueError("radius must be between 0 and 1000 inclusive")
else:
pass
def area(self):
return math.pi*(self.radius**2)
def circumference(self):
return 2*math.pi*self.radius

class TestingCircleCreation:
def test_creating_circle_with_numeric_radius(self):
c1=Circle(2.5)
assert c1.radius==2.5

def test_creating_circle_with_negative_radius(self):
c1=Circle(2.5)
assert c1.radius==2.5
with assert_raises(ValueError):
Circle(-2.5)

def test_creating_circle_with_greaterthan_radius(self):
c1=Circle(2.5)
assert c1.radius==2.5
with assert_raises(ValueError):
Circle(1000.1)

def test_creating_circle_with_nonnumeric_radius(self):
c1=Circle(2.5)
assert c1.radius==2.5
with assert_raises(TypeError):
Circle('hello')

Step 4

#round function is to be added in the Circle's area()


#and a new class named TestCircleArea is added

import math
from nose.tools import assert_raises
from nose.tools import assert_equal
class Circle:

def __init__(self, radius):


self.radius=radius
if not isinstance(self.radius,(int,float)):
raise TypeError("radius must be a number")
elif(self.radius>1000 or self.radius<0):
raise ValueError("radius must be between 0 and 1000 inclusive")
else:
pass
def area(self):
return round(math.pi*(self.radius**2),2)
def circumference(self):
return round(2*math.pi*self.radius,2)

class TestingCircleCreation:
def test_creating_circle_with_numeric_radius(self):
c1=Circle(2.5)
assert c1.radius==2.5

def test_creating_circle_with_negative_radius(self):
c1=Circle(2.5)
assert c1.radius==2.5
with assert_raises(ValueError):
Circle(-2.5)

def test_creating_circle_with_greaterthan_radius(self):
c1=Circle(2.5)
assert c1.radius==2.5
with assert_raises(ValueError):
Circle(1000.1)

def test_creating_circle_with_nonnumeric_radius(self):
c1=Circle(2.5)
assert c1.radius==2.5
with assert_raises(TypeError):
Circle('hello')
class TestCircleArea:

def test_circlearea_with_random_numeric_radius(self):
c1=Circle(2.5)
assert_equal(c1.area(),19.63)

def test_circlearea_with_min_radius(self):
c2=Circle(0)
assert_equal(c2.area(),0)
def test_circlearea_with_max_radius(self):
c3=Circle(1000)
assert_equal(c3.area(),3141592.65)

Step 5

import math
from nose.tools import assert_raises
from nose.tools import assert_equal
class Circle:

def __init__(self, radius):


self.radius=radius
if not isinstance(self.radius,(int,float)):
raise TypeError("radius must be a number")
elif(self.radius>1000 or self.radius<0):
raise ValueError("radius must be between 0 and 1000 inclusive")
else:
pass
def area(self):
return round(math.pi*(self.radius**2),2)
def circumference(self):
return round(2*math.pi*self.radius,2)

class TestingCircleCreation:
def test_creating_circle_with_numeric_radius(self):
c1=Circle(2.5)
assert c1.radius==2.5

def test_creating_circle_with_negative_radius(self):
c1=Circle(2.5)
assert c1.radius==2.5
with assert_raises(ValueError):
Circle(-2.5)

def test_creating_circle_with_greaterthan_radius(self):
c1=Circle(2.5)
assert c1.radius==2.5
with assert_raises(ValueError):
Circle(1000.1)

def test_creating_circle_with_nonnumeric_radius(self):
c1=Circle(2.5)
assert c1.radius==2.5
with assert_raises(TypeError):
Circle('hello')

class TestCircleArea:

def test_circlearea_with_random_numeric_radius(self):
c1=Circle(2.5)
assert_equal(c1.area(),19.63)

def test_circlearea_with_min_radius(self):
c2=Circle(0)
assert_equal(c2.area(),0)
def test_circlearea_with_max_radius(self):
c3=Circle(1000)
assert_equal(c3.area(),3141592.65)

class TestCircleCircumference:

def test_circlecircum_with_random_numeric_radius(self):
c1=Circle(2.5)
assert_equal(c1.circumference(),15.71)

def test_circlecircum_with_min_radius(self):
c2=Circle(0)
assert_equal(c2.circumference(),0)
def test_circlecircum_with_max_radius(self):
c3=Circle(1000)
assert_equal(c3.circumference(),6283.19)

You might also like