@@ -48,6 +48,18 @@ class Side:
4848 Side(length=5, angle=Angle(degrees=45.6), next_side=None)
4949 >>> Side(5, Angle(45.6), Side(1, Angle(2))) # doctest: +ELLIPSIS
5050 Side(length=5, angle=Angle(degrees=45.6), next_side=Side(length=1, angle=Angle(d...
51+ >>> Side(-1)
52+ Traceback (most recent call last):
53+ ...
54+ TypeError: length must be a positive numeric value.
55+ >>> Side(5, None)
56+ Traceback (most recent call last):
57+ ...
58+ TypeError: angle must be an Angle object.
59+ >>> Side(5, Angle(90), "Invalid next_side")
60+ Traceback (most recent call last):
61+ ...
62+ TypeError: next_side must be a Side or None.
5163 """
5264
5365 length : float
@@ -162,6 +174,19 @@ class Polygon:
162174
163175 >>> Polygon()
164176 Polygon(sides=[])
177+ >>> polygon = Polygon()
178+ >>> polygon.add_side(Side(5)).get_side(0)
179+ Side(length=5, angle=Angle(degrees=90), next_side=None)
180+ >>> polygon.get_side(1)
181+ Traceback (most recent call last):
182+ ...
183+ IndexError: list index out of range
184+ >>> polygon.set_side(0, Side(10)).get_side(0)
185+ Side(length=10, angle=Angle(degrees=90), next_side=None)
186+ >>> polygon.set_side(1, Side(10))
187+ Traceback (most recent call last):
188+ ...
189+ IndexError: list assignment index out of range
165190 """
166191
167192 sides : list [Side ] = field (default_factory = list )
@@ -207,6 +232,10 @@ class Rectangle(Polygon):
207232 30
208233 >>> rectangle_one.area()
209234 50
235+ >>> Rectangle(-5, 10)
236+ Traceback (most recent call last):
237+ ...
238+ TypeError: length must be a positive numeric value.
210239 """
211240
212241 def __init__ (self , short_side_length : float , long_side_length : float ) -> None :
@@ -254,6 +283,5 @@ def perimeter(self) -> float:
254283 def area (self ) -> float :
255284 return super ().area ()
256285
257-
258286if __name__ == "__main__" :
259287 __import__ ("doctest" ).testmod ()
0 commit comments