bitmask.py: increase test coverage, remove redundant code
This commit is contained in:
parent
0c333eee95
commit
eab920abeb
@ -158,13 +158,6 @@ class Bitmask:
|
||||
"""Alias the + operator in reverse."""
|
||||
return self.__add__(other)
|
||||
|
||||
def __iadd__(self, other):
|
||||
"""Implement += operator.
|
||||
|
||||
Aliased to `Bitmask.__add__`.
|
||||
"""
|
||||
return self + other
|
||||
|
||||
def __or__(self, other):
|
||||
"""Implement | operator."""
|
||||
return self + other
|
||||
@ -173,13 +166,6 @@ class Bitmask:
|
||||
"""Alias the | operator in reverse."""
|
||||
return self.__or__(other)
|
||||
|
||||
def __ior__(self, other):
|
||||
"""Implement |= operator.
|
||||
|
||||
Aliased to `Bitmask.__add__`.
|
||||
"""
|
||||
return self | other
|
||||
|
||||
def __xor__(self, other):
|
||||
"""Implement ^ operator."""
|
||||
return self.__mask_op(other, lambda a, b : a ^ b)
|
||||
@ -188,13 +174,6 @@ class Bitmask:
|
||||
"""Alias the ^ operator in reverse."""
|
||||
return self.__xor__(other)
|
||||
|
||||
def __ixor(self, other):
|
||||
"""Implement ^= operator.
|
||||
|
||||
Aliased to `Bitmask.__xor__`.
|
||||
"""
|
||||
return self ^ other
|
||||
|
||||
def __and__(self, other):
|
||||
"""AND bitmasks/flags together."""
|
||||
return self.__mask_op(other, lambda a, b : a & b)
|
||||
@ -203,25 +182,10 @@ class Bitmask:
|
||||
"""Alias the & operator in reverse."""
|
||||
return self.__and__(other)
|
||||
|
||||
def __iand(self, other):
|
||||
"""AND bitmasks/flags together.
|
||||
|
||||
Aliased to `Bitmask.__and__`.
|
||||
"""
|
||||
return self & other
|
||||
|
||||
def __sub__(self, other):
|
||||
"""Subtract by bitmask/flag."""
|
||||
return self.__mask_op(other, lambda a, b : a & ~b)
|
||||
|
||||
def __isub__(self, other):
|
||||
"""Subtract a bitmask/flag.
|
||||
|
||||
Aliased to `Bitmask.__sub__`.
|
||||
"""
|
||||
self = self - other
|
||||
return self
|
||||
|
||||
def discard(self, flag):
|
||||
"""Remove flag bitmask if present.
|
||||
|
||||
|
@ -11,21 +11,31 @@ class Desc(IntFlag):
|
||||
FUNKY = 1 << 2
|
||||
SONAR = 1 << 4
|
||||
|
||||
class Colors(IntFlag):
|
||||
TEAL = 1
|
||||
PINK = 1 << 1
|
||||
BLUE = 1 << 2
|
||||
|
||||
def test_eq():
|
||||
"""Test equality checks."""
|
||||
# Equality
|
||||
assert Bitmask(Desc) == Bitmask(Desc)
|
||||
assert Bitmask(Desc, Desc.SMALL) == Bitmask(Desc, Desc.SMALL)
|
||||
assert Bitmask(Desc, Desc.SMALL, Desc.ROUND) == Bitmask(Desc, Desc.SMALL, Desc.ROUND)
|
||||
assert Bitmask(Desc, Desc.ROUND, Desc.SMALL) == Bitmask(Desc, Desc.SMALL, Desc.ROUND)
|
||||
|
||||
# Inequality
|
||||
assert Bitmask(Desc, Desc.SMALL) != Bitmask(Desc, Desc.SMALL, Desc.ROUND)
|
||||
assert Bitmask(Desc, Desc.SMALL) != Bitmask(Desc, Desc.ROUND)
|
||||
assert Bitmask(Desc, Desc.SMALL) != Bitmask(Desc)
|
||||
assert Bitmask(Desc, Desc.SMALL) != Desc.SMALL
|
||||
assert Bitmask(Desc, Desc.SMALL) != Desc.ROUND
|
||||
assert Bitmask(Desc) != Desc.ROUND
|
||||
|
||||
# Wrong types
|
||||
assert Bitmask(Desc) != "Hello World!"
|
||||
assert Bitmask(Desc) != 0
|
||||
assert Bitmask(Desc) != Bitmask(Colors)
|
||||
|
||||
def test_repr():
|
||||
"""Ensure evaluating __repr__ creates an identical object."""
|
||||
@ -49,6 +59,8 @@ def test_add():
|
||||
|
||||
with pytest.raises(TypeError, match="can only apply Desc to Bitmask"):
|
||||
mask.add(1)
|
||||
with pytest.raises(TypeError, match="can only apply Bitmask or Desc to Bitmask"):
|
||||
mask += 1
|
||||
|
||||
def test_add_operator():
|
||||
"""Test + operator."""
|
||||
|
Loading…
Reference in New Issue
Block a user