@@ -12,7 +12,13 @@ def surface_area_cube(side_length: float) -> float:
1212 6
1313 >>> surface_area_cube(3)
1414 54
15+ >>> surface_area_cube(-1)
16+ Traceback (most recent call last):
17+ ...
18+ ValueError: surface_area_cube() only accepts non-negative values
1519 """
20+ if side_length < 0 :
21+ raise ValueError ("surface_area_cube() only accepts non-negative values" )
1622 return 6 * side_length ** 2
1723
1824
@@ -26,17 +32,37 @@ def surface_area_sphere(radius: float) -> float:
2632 314.1592653589793
2733 >>> surface_area_sphere(1)
2834 12.566370614359172
35+ >>> surface_area_sphere(-1)
36+ Traceback (most recent call last):
37+ ...
38+ ValueError: surface_area_sphere() only accepts non-negative values
2939 """
40+ if radius < 0 :
41+ raise ValueError ("surface_area_sphere() only accepts non-negative values" )
3042 return 4 * pi * radius ** 2
3143
3244
3345def area_rectangle (length : float , width : float ) -> float :
3446 """
3547 Calculate the area of a rectangle
3648
37- >>> area_rectangle(10,20)
49+ >>> area_rectangle(10, 20)
3850 200
39- """
51+ >>> area_rectangle(-1, -2)
52+ Traceback (most recent call last):
53+ ...
54+ ValueError: area_rectangle() only accepts non-negative values
55+ >>> area_rectangle(1, -2)
56+ Traceback (most recent call last):
57+ ...
58+ ValueError: area_rectangle() only accepts non-negative values
59+ >>> area_rectangle(-1, 2)
60+ Traceback (most recent call last):
61+ ...
62+ ValueError: area_rectangle() only accepts non-negative values
63+ """
64+ if length < 0 or width < 0 :
65+ raise ValueError ("area_rectangle() only accepts non-negative values" )
4066 return length * width
4167
4268
@@ -46,37 +72,101 @@ def area_square(side_length: float) -> float:
4672
4773 >>> area_square(10)
4874 100
75+ >>> area_square(-1)
76+ Traceback (most recent call last):
77+ ...
78+ ValueError: area_square() only accepts non-negative values
4979 """
80+ if side_length < 0 :
81+ raise ValueError ("area_square() only accepts non-negative values" )
5082 return side_length ** 2
5183
5284
5385def area_triangle (base : float , height : float ) -> float :
5486 """
5587 Calculate the area of a triangle
5688
57- >>> area_triangle(10,10)
89+ >>> area_triangle(10, 10)
5890 50.0
59- """
91+ >>> area_triangle(-1, -2)
92+ Traceback (most recent call last):
93+ ...
94+ ValueError: area_triangle() only accepts non-negative values
95+ >>> area_triangle(1, -2)
96+ Traceback (most recent call last):
97+ ...
98+ ValueError: area_triangle() only accepts non-negative values
99+ >>> area_triangle(-1, 2)
100+ Traceback (most recent call last):
101+ ...
102+ ValueError: area_triangle() only accepts non-negative values
103+ """
104+ if base < 0 or height < 0 :
105+ raise ValueError ("area_triangle() only accepts non-negative values" )
60106 return (base * height ) / 2
61107
62108
63109def area_parallelogram (base : float , height : float ) -> float :
64110 """
65111 Calculate the area of a parallelogram
66112
67- >>> area_parallelogram(10,20)
113+ >>> area_parallelogram(10, 20)
68114 200
69- """
115+ >>> area_parallelogram(-1, -2)
116+ Traceback (most recent call last):
117+ ...
118+ ValueError: area_parallelogram() only accepts non-negative values
119+ >>> area_parallelogram(1, -2)
120+ Traceback (most recent call last):
121+ ...
122+ ValueError: area_parallelogram() only accepts non-negative values
123+ >>> area_parallelogram(-1, 2)
124+ Traceback (most recent call last):
125+ ...
126+ ValueError: area_parallelogram() only accepts non-negative values
127+ """
128+ if base < 0 or height < 0 :
129+ raise ValueError ("area_parallelogram() only accepts non-negative values" )
70130 return base * height
71131
72132
73133def area_trapezium (base1 : float , base2 : float , height : float ) -> float :
74134 """
75135 Calculate the area of a trapezium
76136
77- >>> area_trapezium(10,20,30)
137+ >>> area_trapezium(10, 20, 30)
78138 450.0
79- """
139+ >>> area_trapezium(-1, -2, -3)
140+ Traceback (most recent call last):
141+ ...
142+ ValueError: area_trapezium() only accepts non-negative values
143+ >>> area_trapezium(-1, 2, 3)
144+ Traceback (most recent call last):
145+ ...
146+ ValueError: area_trapezium() only accepts non-negative values
147+ >>> area_trapezium(1, -2, 3)
148+ Traceback (most recent call last):
149+ ...
150+ ValueError: area_trapezium() only accepts non-negative values
151+ >>> area_trapezium(1, 2, -3)
152+ Traceback (most recent call last):
153+ ...
154+ ValueError: area_trapezium() only accepts non-negative values
155+ >>> area_trapezium(-1, -2, 3)
156+ Traceback (most recent call last):
157+ ...
158+ ValueError: area_trapezium() only accepts non-negative values
159+ >>> area_trapezium(1, -2, -3)
160+ Traceback (most recent call last):
161+ ...
162+ ValueError: area_trapezium() only accepts non-negative values
163+ >>> area_trapezium(-1, 2, -3)
164+ Traceback (most recent call last):
165+ ...
166+ ValueError: area_trapezium() only accepts non-negative values
167+ """
168+ if base1 < 0 or base2 < 0 or height < 0 :
169+ raise ValueError ("area_trapezium() only accepts non-negative values" )
80170 return 1 / 2 * (base1 + base2 ) * height
81171
82172
@@ -86,7 +176,13 @@ def area_circle(radius: float) -> float:
86176
87177 >>> area_circle(20)
88178 1256.6370614359173
179+ >>> area_circle(-1)
180+ Traceback (most recent call last):
181+ ...
182+ ValueError: area_circle() only accepts non-negative values
89183 """
184+ if radius < 0 :
185+ raise ValueError ("area_circle() only accepts non-negative values" )
90186 return pi * radius ** 2
91187
92188
0 commit comments