[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)
|
return annotations_lt(self.annotations, other.annotations)
|
||||||
|
|
||||||
def __eq__(self, other: Any) -> bool:
|
def __eq__(self, other: Any) -> bool:
|
||||||
|
if type(self) is not type(other):
|
||||||
|
return False
|
||||||
return (
|
return (
|
||||||
self.string == other.string
|
self.string == other.string
|
||||||
and numpy.array_equal(self.offset, other.offset)
|
and numpy.array_equal(self.offset, other.offset)
|
||||||
|
|
|
||||||
|
|
@ -122,6 +122,8 @@ class Ref(
|
||||||
return annotations_lt(self.annotations, other.annotations)
|
return annotations_lt(self.annotations, other.annotations)
|
||||||
|
|
||||||
def __eq__(self, other: Any) -> bool:
|
def __eq__(self, other: Any) -> bool:
|
||||||
|
if type(self) is not type(other):
|
||||||
|
return False
|
||||||
return (
|
return (
|
||||||
numpy.array_equal(self.offset, other.offset)
|
numpy.array_equal(self.offset, other.offset)
|
||||||
and self.mirrored == other.mirrored
|
and self.mirrored == other.mirrored
|
||||||
|
|
|
||||||
|
|
@ -46,3 +46,9 @@ def test_label_copy() -> None:
|
||||||
assert l1 is not l2
|
assert l1 is not l2
|
||||||
l2.offset[0] = 100
|
l2.offset[0] = 100
|
||||||
assert l1.offset[0] == 1
|
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'):
|
with pytest.raises(MasqueError, match='Scale must be positive'):
|
||||||
ref.scale_by(-1)
|
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