MCPcopy Create free account
hub / github.com/TheAlgorithms/Python / Side

Class Side

geometry/geometry.py:38–75  ·  view source on GitHub ↗

A side of a two dimensional Shape such as Polygon, etc. adjacent_sides: a list of sides which are adjacent to the current side angle: the angle in degrees between each adjacent side length: the length of the current side in meters >>> Side(5) Side(length=5, angle=Angle(degr

Source from the content-addressed store, hash-verified

36
37@dataclass
38class Side:
39 """
40 A side of a two dimensional Shape such as Polygon, etc.
41 adjacent_sides: a list of sides which are adjacent to the current side
42 angle: the angle in degrees between each adjacent side
43 length: the length of the current side in meters
44
45 >>> Side(5)
46 Side(length=5, angle=Angle(degrees=90), next_side=None)
47 >>> Side(5, Angle(45.6))
48 Side(length=5, angle=Angle(degrees=45.6), next_side=None)
49 >>> Side(5, Angle(45.6), Side(1, Angle(2))) # doctest: +ELLIPSIS
50 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.
63 """
64
65 length: float
66 angle: Angle = field(default_factory=Angle)
67 next_side: Side | None = None
68
69 def __post_init__(self) -> None:
70 if not isinstance(self.length, (int, float)) or self.length <= 0:
71 raise TypeError("length must be a positive numeric value.")
72 if not isinstance(self.angle, Angle):
73 raise TypeError("angle must be an Angle object.")
74 if not isinstance(self.next_side, (Side, NoneType)):
75 raise TypeError("next_side must be a Side or None.")
76
77
78@dataclass

Callers 1

post_initMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected