Coverage for src/abcd_graph/graph/core/abcd_objects/edge.py: 95%
22 statements
« prev ^ index » next coverage.py v7.5.3, created at 2024-11-16 15:48 +0100
« prev ^ index » next coverage.py v7.5.3, created at 2024-11-16 15:48 +0100
1__all__ = ["Edge"]
3from dataclasses import dataclass
4from typing import Any
7@dataclass
8class Edge:
9 __slots__ = ["v1", "v2"]
11 v1: int
12 v2: int
14 def __post_init__(self) -> None:
15 self.to_ordered()
17 def __eq__(self, other: Any) -> bool:
18 if not isinstance(other, Edge):
19 return NotImplemented
20 return self.v1 == other.v1 and self.v2 == other.v2
22 def __hash__(self) -> int:
23 return hash((self.v1, self.v2))
25 def to_ordered(self) -> None:
26 if self.v1 < self.v2:
27 self.v1, self.v2 = self.v2, self.v1
29 @property
30 def is_loop(self) -> bool:
31 return self.v1 == self.v2