def test_evaluate(self, val):
        """ Ensures the evaluate class tests response for a False. """
        nde = Equation('({1})')

        rtn_val = [True, True, True]
        nde.get_clause_evaluation = MagicMock(return_value=rtn_val)
        self.assertTrue(nde.evaluate({}))

        rtn_val = [True, False, True]
        nde.get_clause_evaluation = MagicMock(return_value=rtn_val)
        self.assertFalse(nde.evaluate({}))
    def test_clausal_evaluation(self):
        """ Tests the evaluation of a selection of clauses. """
        eq = Equation('({1})')  # Equation object to test.
        fke_clause_true = Mock()  # Fake clause to return true
        fke_clause_true.evaluate = MagicMock(return_value=True)
        fke_clause_false = Mock()  # Fake clause to return false
        fke_clause_false.evaluate = MagicMock(return_value=False)

        eq._clauses = [fke_clause_true, fke_clause_false, fke_clause_true]
        res = eq.get_clause_evaluation({})
        assert (res[0] and (not res[1]) and res[2])

        eq._clauses = [fke_clause_true, fke_clause_true, fke_clause_true]
        res = eq.get_clause_evaluation({})
        assert (res[0] and res[1] and res[2])

        eq._clauses = [fke_clause_false, fke_clause_false, fke_clause_false]
        res = eq.get_clause_evaluation({})
        assert not (res[0] or res[1] or res[2])