diff --git a/src/main/py/logical_operations.py b/src/main/py/logical_operations.py new file mode 100644 index 0000000..9edc386 --- /dev/null +++ b/src/main/py/logical_operations.py @@ -0,0 +1,30 @@ +def identity_disconjunctive(first_input, second_input): + if first_input == 1 and second_input == 1: + return None + elif first_input == 0 and second_input == 0: + return 0 + else: + return 1 + + +def identity_conjunctive(first_input, second_input): + if first_input == 1 and second_input == 1: + return 1 + elif first_input == 0 and second_input == 0: + return None + else: + return 0 + + +def identity(first_input, operator, second_input): + if operator == "+": + return identity_disconjunctive(first_input, second_input) + else: + return identity_conjunctive(first_input, second_input) + + +def one_zero(first_input, second_input): + if first_input == 0 and second_input == 0: + return None + else: + return 1 diff --git a/src/test/py/test_logical_operations.py b/src/test/py/test_logical_operations.py new file mode 100644 index 0000000..b5c441b --- /dev/null +++ b/src/test/py/test_logical_operations.py @@ -0,0 +1,50 @@ +import unittest +from src.main.py.logical_operations import * + + +class calculationsWithRoots(unittest.TestCase): + def setUp(self): + pass + + def tearDown(self): + pass + + def test_identity_1_or_0_equals_1(self): + self.assertEqual(identity(1, "+", 0), 1) + + def test_identity_1_or_1_equals_None(self): + self.assertEqual(identity(1, "+", 1), None) + + def test_identity_0_or_1_equals_1(self): + self.assertEqual(identity(0, "+", 1), 1) + + def test_identity_0_or_0_equals_0(self): + self.assertEqual(identity(0, "+", 0), 0) + + def test_identity_0_and_0_equals_None(self): + self.assertEqual(identity(0, ".", 0), None) + + def test_identity_1_and_0_equals_0(self): + self.assertEqual(identity(1, ".", 0), 0) + + def test_identity_0_and_1_equals_0(self): + self.assertEqual(identity(0, ".", 1), 0) + + def test_identity_1_and_1_equals_1(self): + self.assertEqual(identity(1, ".", 1), 1) + + def test_one_zero_1_or_1_equals_1(self): + self.assertEqual(one_zero(1, 1), 1) + + def test_one_zero_0_or_1_equals_1(self): + self.assertEqual(one_zero(0, 1), 1) + + def test_one_zero_1_or_0_equals_1(self): + self.assertEqual(one_zero(1, 0), 1) + + def test_one_zero_0_or_0_equals_None(self): + self.assertEqual(one_zero(0, 0), None) + + +if __name__ == "__main__": + unittest.main()