diff --git a/tests/test_boolean_nodes.py b/tests/test_boolean_nodes.py index a20f8ea..5ce15b1 100644 --- a/tests/test_boolean_nodes.py +++ b/tests/test_boolean_nodes.py @@ -7,6 +7,8 @@ from src.basic_data_handling.boolean_nodes import ( BooleanXor, BooleanNand, BooleanNor, + GenericAnd, + GenericOr, ) @@ -54,3 +56,37 @@ def test_boolean_nor(): assert node.nor_operation(True, False) == (False,) assert node.nor_operation(False, True) == (False,) assert node.nor_operation(False, False) == (True,) + + +def test_generic_or(): + node = GenericOr() + # 2xOR + assert node.or_operation(False, item_0=True, item_1=True) == (True,) + assert node.or_operation(False, item_0=True, item_1=False) == (True,) + assert node.or_operation(False, item_0=False, item_1=True) == (True,) + assert node.or_operation(False, item_0=False, item_1=False) == (False,) + # 2xNOR + assert node.or_operation(True, item_0=True, item_1=True) == (False,) + assert node.or_operation(True, item_0=True, item_1=False) == (False,) + assert node.or_operation(True, item_0=False, item_1=True) == (False,) + assert node.or_operation(True, item_0=False, item_1=False) == (True,) + # A couple of 3xOR cases + assert node.or_operation(False, item_0=False, item_1=False, item_2=True) == (True,) + assert node.or_operation(False, item_0=False, item_1=False, item_2=False) == (False,) + + +def test_generic_and(): + node = GenericAnd() + # 2xAND + assert node.and_operation(False, item_0=True, item_1=True) == (True,) + assert node.and_operation(False, item_0=True, item_1=False) == (False,) + assert node.and_operation(False, item_0=False, item_1=True) == (False,) + assert node.and_operation(False, item_0=False, item_1=False) == (False,) + # 2xNAND + assert node.and_operation(True, item_0=True, item_1=True) == (False,) + assert node.and_operation(True, item_0=True, item_1=False) == (True,) + assert node.and_operation(True, item_0=False, item_1=True) == (True,) + assert node.and_operation(True, item_0=False, item_1=False) == (True,) + # A couple of 3xAND cases + assert node.and_operation(False, item_0=True, item_1=True, item_2=True) == (True,) + assert node.and_operation(False, item_0=True, item_1=False, item_2=True) == (False,)