0% found this document useful (2 votes)
5K views

Python Qualis Doctests

This document contains code to define a Circle class with methods to calculate area and circumference. It includes doctests and unit tests for the Circle class. The Circle class initializes with a radius attribute and checks that the radius is a number between 0 and 1000. The area method calculates the area of the circle using pi * radius^2. The circumference method calculates the circumference as 2 * pi * radius. Unit tests test the creation of Circle objects with valid and invalid radii, and that the area and circumference methods return the correct values.

Uploaded by

AGDB
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (2 votes)
5K views

Python Qualis Doctests

This document contains code to define a Circle class with methods to calculate area and circumference. It includes doctests and unit tests for the Circle class. The Circle class initializes with a radius attribute and checks that the radius is a number between 0 and 1000. The area method calculates the area of the circle using pi * radius^2. The circumference method calculates the circumference as 2 * pi * radius. Unit tests test the creation of Circle objects with valid and invalid radii, and that the area and circumference methods return the correct values.

Uploaded by

AGDB
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 3

Palindrome

def isPalindrome(x):
"""
>>> isPalindrome(121)
True
>>> isPalindrome(344)
False
>>> isPalindrome(-121)
Traceback (most recent call last):
ValueError: x must be positive integer.
>>> isPalindrome("hello")
Traceback (most recent call last):
TypeError: x must be integer.
"""
try:
x = int(x)
temp=x
rev=0
if(x>0):
while(x>0):
dig=x%10
rev=rev*10+dig
x=x//10
if(temp==rev):
return True
else:
return False
elif(x<0):
raise TypeError
else:
raise ValueError
except ValueError:
raise ValueError("x must be positive integer")
except TypeError:
raise TypeError("x must be an integer")

Circle

class Circle:

def __init__(self, radius):


# Define the initialization method below
"""
>>> c1 = Circle(2.5)
>>> c1.radius
2.5
"""
self.radius = radius

def area(self):
# Define doctests for area method:
"""
>>> c1 = Circle(2.5)
>>> c1.area()
19.63

"""
# Define area functionality:
return round(math.pi*(self.radius**2),2)

def circumference(self):
# Define doctests for circumference method:
"""
>>> c1 = Circle(2.5)
>>> c1.circumference()
15.71
"""
# Define the circumference functionality below
return round((self.radius * 2 * math.pi),2)
# Define circumference functionality:

class TestCircleCreation(unittest.TestCase):

def test_creating_circle_with_numeric_radius(self):
# Define a circle 'c1' with radius 2.5, and check if
# the value of c1.radius is equal to 2.5 or not.
c1 = Circle(2.5)
self.assertEqual(c1.radius, 2.5)

def test_creating_circle_with_negative_radius(self):
# Define a circle 'c' with radius -2.5, and check
# if it raises a ValueError with the message
# "radius must be between 0 and 1000 inclusive".
with self.assertRaises(ValueError) as e:
c = Circle(-2.5)
self.assertEqual(str(e.exception), 'radius must be between 0 and 1000
inclusive')

def test_creating_circle_with_greaterthan_radius(self):
# Define a circle 'c' with radius 1000.1, and check
# if it raises a ValueError with the message
# "radius must be between 0 and 1000 inclusive".
with self.assertRaises(ValueError) as e:
c = Circle(1000.1)
self.assertEqual(str(e.exception), 'radius must be between 0 and 1000
inclusive')

def test_creating_circle_with_nonnumeric_radius(self):
# Define a circle 'c' with radius 'hello' and check
# if it raises a TypeError with the message
# "radius must be a number".
with self.assertRaises(TypeError) as e:
c = Circle('hello')
self.assertEqual(str(e.exception), 'radius must be a number')

class TestCircleArea(unittest.TestCase):

def test_circlearea_with_random_numeric_radius(self):
c1=Circle(2.5)
self.assertEqual(c1.area(),19.63)
def test_circlearea_with_min_radius(self):
c2=Circle(0)
self.assertEqual(c2.area(),0.0)

def test_circlearea_with_max_radius(self):
c3=Circle(1000.1)
#print(c3.area())
self.assertEqual(c3.area(),3142221.0)

class TestCircleCircumference(unittest.TestCase):

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

def test_circlecircum_with_min_radius(self):
# Define a circle 'c2' with radius 0 and check if
# it's circumference is 0.
c2 = Circle(0)
self.assertEqual(c2.circumference(),0)

def test_circlecircum_with_max_radius(self):
# Define a circle 'c3' with radius 1000 and check if
# it's circumference is 6283.19.
c3 = Circle(1000)
self.assertEqual(c3.circumference(),6283.19)

def __init__(self, radius):

try:
if not isinstance(radius, (int, float)):
raise TypeError
elif 1000 >=radius>=0:
self.radius=radius
else:
raise ValueError
except ValueError:
raise ValueError("radius must be between 0 and 1000 inclusive")
except TypeError:
raise TypeError("radius must be a number")

You might also like