Exemplo n.º 1
0
 def test_static_constructor(self):
     self.assertEqual(monad.Empty(),  monad.Option.from_value(None))
     self.assertEqual(monad.Full(10), monad.Option.from_value(10))
     self.assertEqual(monad.Empty(),  monad.Option.from_call(lambda: None))
     self.assertEqual(monad.Full(10), monad.Option.from_call(operator.add, 8, 2))
     self.assertEqual(monad.Empty(),
                      monad.Option.from_call(lambda d, k: d[k],
                                             {"a":1}, "b", exc=KeyError))
Exemplo n.º 2
0
 def test_flatten_operation(self):
     self.assertEqual(monad.Empty(), monad.Empty(monad.Empty()))
     self.assertEqual(monad.Empty(), monad.Empty(monad.Full(10)))
     self.assertEqual(monad.Empty(), monad.Full(monad.Empty()))
     self.assertEqual("Full(20)", str(monad.Full(monad.Full(20))))
Exemplo n.º 3
0
 def test_option_repr(self):
     self.assertEqual("Full(10)", repr(monad.Full(10)))
     self.assertEqual("Full(in box!)", repr(monad.Full("in box!")))
     self.assertEqual("Empty()", repr(monad.Empty()))
     self.assertEqual("Empty()", repr(monad.Option(None)))
Exemplo n.º 4
0
 def test_stringify(self):
     self.assertEqual("Full(10)", str(monad.Full(10)))
     self.assertEqual("Full(in box!)", str(monad.Full("in box!")))
     self.assertEqual("Empty()", str(monad.Empty()))
     self.assertEqual("Empty()", str(monad.Option(None)))
Exemplo n.º 5
0
 def test_empty_check(self):
     self.assertTrue(monad.Empty().empty)
     self.assertTrue(monad.Option(None).empty)
     self.assertTrue(monad.Option.from_call(lambda: None).empty)
     self.assertFalse(monad.Option(10).empty)
     self.assertFalse(monad.Full(10).empty)