Module grscheller.datastructures.tests.maybe_test
Expand source code
from grscheller.datastructures.functional import Maybe, Nothing
def add2(x):
return x + 2
class TestMaybe:
def test_identity(self):
n1 = Maybe()
n2 = Maybe()
o1 = Maybe(42)
o2 = Maybe(40)
assert o1 is o1
assert o1 is not o2
o3 = o2.map(add2)
assert o3 is not o2
assert o1 is not o3
assert n1 is n1
assert n1 is not n2
assert o1 is not n1
assert n2 is not o2
def test_equality(self):
n1 = Maybe()
n2 = Maybe()
o1 = Maybe(42)
o2 = Maybe(40)
assert o1 == o1
assert o1 != o2
o3 = o2.map(add2)
assert o3 != o2
assert o1 == o3
assert n1 == n1
assert n1 == n2
assert o1 != n1
assert n2 != o2
def test_iterate(self):
o1 = Maybe(38)
o2 = o1.map(add2).map(add2)
n1 = Maybe()
l1 = []
l2 = []
for v in n1:
l1.append(v)
for v in o2:
l2.append(v)
assert len(l1) == 0
assert len(l2) == 1
assert l2[0] == 42
def test_get(self):
o1 = Maybe(1)
n1 = Maybe()
assert o1.getOrElse(42) == 1
assert n1.getOrElse(42) == 42
assert o1.getOrElse() == 1
assert n1.getOrElse() is ()
assert n1.getOrElse() == ()
assert n1.getOrElse(None) is None
assert n1.getOrElse(None) == None
def test_nothing(self):
o1 = Maybe(42)
n1 = Maybe()
n2 = n1
assert o1 != Nothing
assert n1 == Nothing
assert n1 is not Nothing
assert n1 is n1
assert n1 is n2
assert Nothing is Nothing
Functions
def add2(x)
-
Expand source code
def add2(x): return x + 2
Classes
class TestMaybe
-
Expand source code
class TestMaybe: def test_identity(self): n1 = Maybe() n2 = Maybe() o1 = Maybe(42) o2 = Maybe(40) assert o1 is o1 assert o1 is not o2 o3 = o2.map(add2) assert o3 is not o2 assert o1 is not o3 assert n1 is n1 assert n1 is not n2 assert o1 is not n1 assert n2 is not o2 def test_equality(self): n1 = Maybe() n2 = Maybe() o1 = Maybe(42) o2 = Maybe(40) assert o1 == o1 assert o1 != o2 o3 = o2.map(add2) assert o3 != o2 assert o1 == o3 assert n1 == n1 assert n1 == n2 assert o1 != n1 assert n2 != o2 def test_iterate(self): o1 = Maybe(38) o2 = o1.map(add2).map(add2) n1 = Maybe() l1 = [] l2 = [] for v in n1: l1.append(v) for v in o2: l2.append(v) assert len(l1) == 0 assert len(l2) == 1 assert l2[0] == 42 def test_get(self): o1 = Maybe(1) n1 = Maybe() assert o1.getOrElse(42) == 1 assert n1.getOrElse(42) == 42 assert o1.getOrElse() == 1 assert n1.getOrElse() is () assert n1.getOrElse() == () assert n1.getOrElse(None) is None assert n1.getOrElse(None) == None def test_nothing(self): o1 = Maybe(42) n1 = Maybe() n2 = n1 assert o1 != Nothing assert n1 == Nothing assert n1 is not Nothing assert n1 is n1 assert n1 is n2 assert Nothing is Nothing
Methods
def test_equality(self)
-
Expand source code
def test_equality(self): n1 = Maybe() n2 = Maybe() o1 = Maybe(42) o2 = Maybe(40) assert o1 == o1 assert o1 != o2 o3 = o2.map(add2) assert o3 != o2 assert o1 == o3 assert n1 == n1 assert n1 == n2 assert o1 != n1 assert n2 != o2
def test_get(self)
-
Expand source code
def test_get(self): o1 = Maybe(1) n1 = Maybe() assert o1.getOrElse(42) == 1 assert n1.getOrElse(42) == 42 assert o1.getOrElse() == 1 assert n1.getOrElse() is () assert n1.getOrElse() == () assert n1.getOrElse(None) is None assert n1.getOrElse(None) == None
def test_identity(self)
-
Expand source code
def test_identity(self): n1 = Maybe() n2 = Maybe() o1 = Maybe(42) o2 = Maybe(40) assert o1 is o1 assert o1 is not o2 o3 = o2.map(add2) assert o3 is not o2 assert o1 is not o3 assert n1 is n1 assert n1 is not n2 assert o1 is not n1 assert n2 is not o2
def test_iterate(self)
-
Expand source code
def test_iterate(self): o1 = Maybe(38) o2 = o1.map(add2).map(add2) n1 = Maybe() l1 = [] l2 = [] for v in n1: l1.append(v) for v in o2: l2.append(v) assert len(l1) == 0 assert len(l2) == 1 assert l2[0] == 42
def test_nothing(self)
-
Expand source code
def test_nothing(self): o1 = Maybe(42) n1 = Maybe() n2 = n1 assert o1 != Nothing assert n1 == Nothing assert n1 is not Nothing assert n1 is n1 assert n1 is n2 assert Nothing is Nothing