def test_eq(self): # Arrange s1 = mbe.Something(10) s2 = mbe.Something(10) s3 = mbe.Something(11) n1 = mbe.Nothing(10) # Act # Assert self.assertTrue(s1 == s2) self.assertFalse(s1 == s3) self.assertFalse(s1 == n1)
def test_lift_WhenLiftedFunctionRaisesException_NothingIsReturn(self): # Arrange def triple(x): return 3 / x lifted_f = mbe.Maybe.lift(triple) arg = mbe.Something(0) expected = mbe.Nothing() # Act result = lifted_f(arg) # Assert self.assertEqual(result, expected)
def test_lift_WhenLiftedFunctionCalledOnNothing_FailureIsNothing(self): # Arrange def triple(x): return 3 * x lifted_f = mbe.Maybe.lift(triple) arg = mbe.Nothing() expected = mbe.Nothing() # Act result = lifted_f(arg) # Assert self.assertEqual(result, expected)
def test_liftn_WhenImproperNumberOfArgumentsGiven_NothingIsReturned(self): # Arrange def sumThree(x, y, z): return x + y + z lifted_f = mbe.Maybe.liftn(sumThree) arg1 = mbe.Something(1) arg2 = mbe.Something(2) # Act result = lifted_f(arg1, arg2) expected = mbe.Nothing() # Assert self.assertEqual(result, expected)
def test_liftn_WhenNotCallableIsGiven_NothingIsReturned(self): # Arrange def sumThree(x, y, z): return x + y / z lifted_f = mbe.Maybe.liftn(sumThree) arg1 = mbe.Something(1) arg2 = mbe.Something(2) # Act result = lifted_f(arg1, arg2) expected = mbe.Nothing() # Assert self.assertEqual(result, expected)
def test_lift_WhenLiftedFunctionCalledOnSomething_SomethingIsReturned( self): # Arrange def triple(x): return 3 * x lifted_f = mbe.Maybe.lift(triple) arg = mbe.Something(5) expected = mbe.Something(15) # Act result = lifted_f(arg) # Assert self.assertEqual(result, expected)
def test_liftn_WhenLiftedFunctionRaisesException_NothingIsReturn(self): # Arrange def sumThree(x, y, z): return x + y / z lifted_f = mbe.Maybe.liftn(sumThree) arg1 = mbe.Something(1) arg2 = mbe.Something(2) arg3 = mbe.Something(0) # Act result = lifted_f(arg1, arg2, arg3) expected = mbe.Nothing() # Assert self.assertEqual(result, expected)
def test_liftn_WhenLiftedFunctionCalledOnNothing_NothingIsReturn(self): # Arrange def sumThree(x, y, z): return x + y + z lifted_f = mbe.Maybe.liftn(sumThree) arg1 = mbe.Something(1) arg2 = mbe.Nothing(4) arg3 = mbe.Something(3) # Act result = lifted_f(arg1, arg2, arg3) expected = mbe.Nothing() # Assert self.assertEqual(result, expected)
def test_unit(self): # Arrange expected = mbe.Nothing() # Act result = mbe.Nothing.unit("error") # Assert self.assertEqual(result, expected)
def test_unit(self): # Arrange expected = mbe.Something(123) # Act result = mbe.Something.unit(123) # Assert self.assertEqual(result, expected)
def test_liftn_WhenOneArgumentFunctionIsGiven_liftIsReproduced(self): # Arrange def double(x): return 2 * x lifted_fn = mbe.Maybe.liftn(double) lifted_f = mbe.Maybe.lift(double) arg = mbe.Something(5) # Act result_f = lifted_f(arg) result_fn = lifted_fn(arg) # Assert self.assertEqual(result_f, result_fn)
def test_isSomething_isNothing(self): nothing = mbe.Nothing() self.assertFalse(nothing.isSomething) self.assertTrue(nothing.isNothing)
def test_isSomething_isNothing(self): something = mbe.Something(123) self.assertTrue(something.isSomething) self.assertFalse(something.isNothing)