0% found this document useful (2 votes)
4K 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
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (2 votes)
4K 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
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