[Ref / Label] make equality safe for unrelated types
This commit is contained in:
parent
20c845a881
commit
2e0b64bdab
4 changed files with 16 additions and 0 deletions
|
|
@ -78,6 +78,8 @@ class Label(PositionableImpl, RepeatableImpl, AnnotatableImpl, Bounded, Pivotabl
|
|||
return annotations_lt(self.annotations, other.annotations)
|
||||
|
||||
def __eq__(self, other: Any) -> bool:
|
||||
if type(self) is not type(other):
|
||||
return False
|
||||
return (
|
||||
self.string == other.string
|
||||
and numpy.array_equal(self.offset, other.offset)
|
||||
|
|
|
|||
|
|
@ -122,6 +122,8 @@ class Ref(
|
|||
return annotations_lt(self.annotations, other.annotations)
|
||||
|
||||
def __eq__(self, other: Any) -> bool:
|
||||
if type(self) is not type(other):
|
||||
return False
|
||||
return (
|
||||
numpy.array_equal(self.offset, other.offset)
|
||||
and self.mirrored == other.mirrored
|
||||
|
|
|
|||
|
|
@ -46,3 +46,9 @@ def test_label_copy() -> None:
|
|||
assert l1 is not l2
|
||||
l2.offset[0] = 100
|
||||
assert l1.offset[0] == 1
|
||||
|
||||
|
||||
def test_label_eq_unrelated_objects_is_false() -> None:
|
||||
lbl = Label("test")
|
||||
assert not (lbl == None)
|
||||
assert not (lbl == object())
|
||||
|
|
|
|||
|
|
@ -87,3 +87,9 @@ def test_ref_scale_by_rejects_nonpositive_scale() -> None:
|
|||
|
||||
with pytest.raises(MasqueError, match='Scale must be positive'):
|
||||
ref.scale_by(-1)
|
||||
|
||||
|
||||
def test_ref_eq_unrelated_objects_is_false() -> None:
|
||||
ref = Ref()
|
||||
assert not (ref == None)
|
||||
assert not (ref == object())
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue