def test_shared_nodes_in_different_branches(self): tree = self.tree root = tree.nodes[0] gen = mock_generator(('ay', 1.0), ('ax', 2.0)) prover_util.try_tactics(root, 10, 0, 10, MOCK_PREMISE_SET, gen) self.assertEqual(len(tree.nodes), 3) self.assertEqual(str(tree.nodes[1].goal.conclusion), 'cx') self.assertEqual(str(tree.nodes[2].goal.conclusion), 'cy') gen = mock_generator(('rz', 1.0)) prover_util.try_tactics(tree.nodes[1], 10, 0, 10, MOCK_PREMISE_SET, gen) self.assertEqual(len(tree.nodes), 4) self.assertEqual(tree.nodes[3].closed, None) self.assertEqual(tree.nodes[2].closed, None) self.assertEqual(tree.nodes[1].closed, False) self.assertEqual(tree.nodes[0].closed, False) gen = mock_generator(('rz', 1.0)) prover_util.try_tactics(tree.nodes[2], 10, 0, 10, MOCK_PREMISE_SET, gen) self.assertEqual(len(tree.nodes), 4) self.assertEqual(len(tree.nodes[3].parents), 2) self.assertEqual(tree.nodes[3].closed, None) self.assertEqual(tree.nodes[2].closed, False) self.assertEqual(tree.nodes[1].closed, False) self.assertEqual(tree.nodes[0].closed, False) gen = mock_generator(('c', 1.0)) prover_util.try_tactics(tree.nodes[3], 10, 0, 10, MOCK_PREMISE_SET, gen) self.assertEqual(len(tree.nodes), 4) self.assertEqual(tree.nodes[3].closed, True) self.assertEqual(tree.nodes[2].closed, True) self.assertEqual(tree.nodes[1].closed, True) self.assertEqual(tree.nodes[0].closed, True) proof_search_tree.check_tree_consistency(tree) self.check_log_consistency()
def test_apply_one_and_close(self): tree = self.tree root = tree.nodes[0] gen = mock_generator(('axy', 1.0)) prover_util.try_tactics(root, 10, 0, 10, MOCK_PREMISE_SET, gen) self.assertEqual(len(tree.nodes), 2) node = tree.nodes[1] gen = mock_generator(('c', 1.0)) prover_util.try_tactics(node, 10, 0, 10, MOCK_PREMISE_SET, gen) self.assertEqual(len(tree.nodes), 2) self.assertEqual(tree.nodes[1].closed, True) self.assertEqual(tree.nodes[0].closed, True) proof_search_tree.check_tree_consistency(tree) self.check_log_consistency()
def test_apply_one_tactic(self): tree = self.tree root = tree.nodes[0] gen = mock_generator(('axy', 1.0)) prover_util.try_tactics(root, 10, 0, 10, MOCK_PREMISE_SET, gen) self.assertEqual(len(tree.nodes), 2) for i, node in enumerate(tree.nodes): self.assertEqual(node.index, i) node = tree.nodes[1] self.assertEqual(len(node.parents), 1) self.assertEqual(str(node.goal.conclusion), 'cxy') self.assertEqual(len(root.successful_attempts), 1) self.assertEqual(len(root.failed_attempts), 0) self.assertEqual(root.closed, False) self.assertEqual(node.closed, None) proof_search_tree.check_tree_consistency(tree) self.check_log_consistency()
def test_apply_two_in_a_row_and_close(self): tree = self.tree root = tree.nodes[0] gen = mock_generator(('axy', 1.0)) prover_util.try_tactics(root, 10, 0, 10, MOCK_PREMISE_SET, gen) self.assertEqual(len(tree.nodes), 2) node = tree.nodes[1] gen = mock_generator(('az', 1.0)) prover_util.try_tactics(node, 10, 0, 10, MOCK_PREMISE_SET, gen) self.assertEqual(len(tree.nodes), 3) node = tree.nodes[2] self.assertEqual(str(node.goal.conclusion), 'cxyz') gen = mock_generator(('c', 1.0)) prover_util.try_tactics(node, 10, 0, 10, MOCK_PREMISE_SET, gen) self.assertEqual(len(tree.nodes), 3) self.assertEqual(tree.nodes[2].closed, True) self.assertEqual(tree.nodes[1].closed, True) self.assertEqual(tree.nodes[0].closed, True) proof_search_tree.check_tree_consistency(tree) self.check_log_consistency()
def test_apply_two_different_and_close_one(self): tree = self.tree root = tree.nodes[0] gen = mock_generator(('ay', 1.0), ('ax', 2.0)) prover_util.try_tactics(root, 10, 0, 10, MOCK_PREMISE_SET, gen) self.assertEqual(len(tree.nodes), 3) self.assertEqual(str(tree.nodes[1].goal.conclusion), 'cx') self.assertEqual(str(tree.nodes[2].goal.conclusion), 'cy') gen = mock_generator(('c', 1.0)) prover_util.try_tactics(tree.nodes[1], 10, 0, 10, MOCK_PREMISE_SET, gen) self.assertEqual(tree.nodes[2].closed, None) self.assertEqual(tree.nodes[1].closed, True) self.assertEqual(tree.nodes[0].closed, True) gen = mock_generator(('c', 1.0)) prover_util.try_tactics(tree.nodes[2], 10, 0, 10, MOCK_PREMISE_SET, gen) self.assertEqual(tree.nodes[2].closed, True) self.assertEqual(tree.nodes[0].closed, True) proof_search_tree.check_tree_consistency(tree) self.check_log_consistency()
def test_apply_two_in_parallel_and_close_both(self): tree = self.tree root = tree.nodes[0] gen = mock_generator(('bxy', 1.0)) prover_util.try_tactics(root, 10, 0, 10, MOCK_PREMISE_SET, gen, PER_TACTIC_TIMEOUT_MS) self.assertEqual(len(tree.nodes), 3) self.assertEqual(str(tree.nodes[1].goal.conclusion), 'cx') self.assertEqual(str(tree.nodes[2].goal.conclusion), 'cy') gen = mock_generator(('c', 1.0)) prover_util.try_tactics(tree.nodes[1], 10, 0, 10, MOCK_PREMISE_SET, gen, PER_TACTIC_TIMEOUT_MS) self.assertEqual(tree.nodes[2].closed, None) self.assertEqual(tree.nodes[1].closed, True) self.assertEqual(tree.nodes[0].closed, False) gen = mock_generator(('c', 1.0)) prover_util.try_tactics(tree.nodes[2], 10, 0, 10, MOCK_PREMISE_SET, gen, PER_TACTIC_TIMEOUT_MS) self.assertEqual(tree.nodes[2].closed, True) self.assertEqual(tree.nodes[0].closed, True) proof_search_tree.check_tree_consistency(tree) self.check_log_consistency()