truth table: Binary Operations


The last chapter covered 2 types of operations. Nullary Operations which do not take input, and Unary Operations which take 1 input.

There are also Binary Operations, these take 2 inputs. Each of the inputs in this exercise will be True or False which means there are 4 possible ways the inputs can be sent to an operation

These combinations give 16 binary operations, each operations returns True or False when it gets input. Here are the 16 operations that are covered in these chapters and what they return


preview

Here are the tests I have at the end of the chapters

  1import src.truth_table
  2import unittest
  3
  4
  5class TestBinaryOperations(unittest.TestCase):
  6
  7    def test_contradiction(self):
  8        self.assertFalse(src.truth_table.contradiction(True, True))
  9        self.assertFalse(src.truth_table.contradiction(True, False))
 10        self.assertFalse(src.truth_table.contradiction(False, True))
 11        self.assertFalse(src.truth_table.contradiction(False, False))
 12
 13    def test_logical_conjunction(self):
 14        self.assertTrue(src.truth_table.logical_conjunction(True, True))
 15        self.assertFalse(src.truth_table.logical_conjunction(True, False))
 16        self.assertFalse(src.truth_table.logical_conjunction(False, True))
 17        self.assertFalse(src.truth_table.logical_conjunction(False, False))
 18
 19    def test_project_second(self):
 20        self.assertTrue(src.truth_table.project_second(True, True))
 21        self.assertFalse(src.truth_table.project_second(True, False))
 22        self.assertTrue(src.truth_table.project_second(False, True))
 23        self.assertFalse(src.truth_table.project_second(False, False))
 24
 25    def test_converse_non_implication(self):
 26        self.assertFalse(src.truth_table.converse_non_implication(True, True))
 27        self.assertFalse(src.truth_table.converse_non_implication(True, False))
 28        self.assertTrue(src.truth_table.converse_non_implication(False, True))
 29        self.assertFalse(src.truth_table.converse_non_implication(False, False))
 30
 31    def test_negate_first(self):
 32        self.assertFalse(src.truth_table.negate_first(True, True))
 33        self.assertFalse(src.truth_table.negate_first(True, False))
 34        self.assertTrue(src.truth_table.negate_first(False, True))
 35        self.assertTrue(src.truth_table.negate_first(False, False))
 36
 37    def test_logical_nand(self):
 38        self.assertFalse(src.truth_table.logical_nand(True, True))
 39        self.assertTrue(src.truth_table.logical_nand(True, False))
 40        self.assertTrue(src.truth_table.logical_nand(False, True))
 41        self.assertTrue(src.truth_table.logical_nand(False, False))
 42
 43    def test_tautology(self):
 44        self.assertTrue(src.truth_table.tautology(True, True))
 45        self.assertTrue(src.truth_table.tautology(True, False))
 46        self.assertTrue(src.truth_table.tautology(False, True))
 47        self.assertTrue(src.truth_table.tautology(False, False))
 48
 49    def test_logical_disjunction(self):
 50        self.assertTrue(src.truth_table.logical_disjunction(True, True))
 51        self.assertTrue(src.truth_table.logical_disjunction(True, False))
 52        self.assertTrue(src.truth_table.logical_disjunction(False, True))
 53        self.assertFalse(src.truth_table.logical_disjunction(False, False))
 54
 55    def test_exclusive_disjunction(self):
 56        self.assertFalse(src.truth_table.exclusive_disjunction(True, True))
 57        self.assertTrue(src.truth_table.exclusive_disjunction(True, False))
 58        self.assertTrue(src.truth_table.exclusive_disjunction(False, True))
 59        self.assertFalse(src.truth_table.exclusive_disjunction(False, False))
 60
 61    def test_material_non_implication(self):
 62        self.assertFalse(src.truth_table.material_non_implication(True, True))
 63        self.assertTrue(src.truth_table.material_non_implication(True, False))
 64        self.assertFalse(src.truth_table.material_non_implication(False, True))
 65        self.assertFalse(src.truth_table.material_non_implication(False, False))
 66
 67    def test_project_first(self):
 68        self.assertTrue(src.truth_table.project_first(True, True))
 69        self.assertTrue(src.truth_table.project_first(True, False))
 70        self.assertFalse(src.truth_table.project_first(False, True))
 71        self.assertFalse(src.truth_table.project_first(False, False))
 72
 73    def test_converse_implication(self):
 74        self.assertTrue(src.truth_table.converse_implication(True, True))
 75        self.assertTrue(src.truth_table.converse_implication(True, False))
 76        self.assertFalse(src.truth_table.converse_implication(False, True))
 77        self.assertTrue(src.truth_table.converse_implication(False, False))
 78
 79    def test_negate_second(self):
 80        self.assertFalse(src.truth_table.negate_second(True, True))
 81        self.assertTrue(src.truth_table.negate_second(True, False))
 82        self.assertFalse(src.truth_table.negate_second(False, True))
 83        self.assertTrue(src.truth_table.negate_second(False, False))
 84
 85    def test_logical_nor(self):
 86        self.assertFalse(src.truth_table.logical_nor(True, True))
 87        self.assertFalse(src.truth_table.logical_nor(True, False))
 88        self.assertFalse(src.truth_table.logical_nor(False, True))
 89        self.assertTrue(src.truth_table.logical_nor(False, False))
 90
 91    def test_logical_equality(self):
 92        self.assertTrue(src.truth_table.logical_equality(True, True))
 93        self.assertFalse(src.truth_table.logical_equality(True, False))
 94        self.assertFalse(src.truth_table.logical_equality(False, True))
 95        self.assertTrue(src.truth_table.logical_equality(False, False))
 96
 97    def test_material_implication(self):
 98        self.assertTrue(src.truth_table.material_implication(True, True))
 99        self.assertFalse(src.truth_table.material_implication(True, False))
100        self.assertTrue(src.truth_table.material_implication(False, True))
101        self.assertTrue(src.truth_table.material_implication(False, False))
102
103
104# Exceptions seen
105# AssertionError
106# AttributeError
107# TypeError
108# SyntaxError

requirements

truth table: Nullary and Unary Operations


Binary Operations


what is next?

Binary Operations?