예제 #1
0
    def test_execute_deterministic_with_list_of_lists_multiple_variables(self):
        geolog_core.reference_manager.ReferenceManager().reset()
        variable_1 = pyswip.Variable()
        variable_2 = pyswip.Variable()

        ListOfListDeterministicDummyProcess.execute([variable_1, variable_2])

        self.assertEqual([1, 2], variable_1.value)
        self.assertEqual([3, 4], variable_2.value)
예제 #2
0
    def test_iterator_list_nested_variables(self):
        geolog_core.reference_manager.ReferenceManager().reset()
        DummyIterator.control = 0
        iterator_atom = pyswip.Atom("iterator")
        geolog_core.reference_manager.ReferenceManager(
        )._object_dict[iterator_atom] = iter([[1, 2], [2, 3], [3, 4]])

        variable_1 = pyswip.Variable()
        variable_2 = pyswip.Variable()
        DummyIterator.execute(iterator_atom, [variable_1, variable_2], 0)
        self.assertEqual(1, variable_1.value)
        self.assertEqual(2, variable_2.value)
예제 #3
0
    def test_iterator_prune(self):
        geolog_core.reference_manager.ReferenceManager().reset()
        DummyIterator.control = 0
        iterator_atom = pyswip.Atom("iterator")
        geolog_core.reference_manager.ReferenceManager(
        )._object_dict[iterator_atom] = iter([1, 2, 3])

        variable = pyswip.Variable()
        DummyIterator.execute(iterator_atom, variable, 0)

        DummyIterator.control = 2

        variable = pyswip.Variable()
        return_value = DummyIterator.execute(iterator_atom, variable, 0)
        self.assertFalse(return_value)
예제 #4
0
    def test_execute_deterministic_with_list_of_lists_one_variable(self):
        geolog_core.reference_manager.ReferenceManager().reset()
        variable = pyswip.Variable()

        ListOfListDeterministicDummyProcess.execute(variable)

        self.assertEqual([[1, 2], [3, 4]], variable.value)
예제 #5
0
    def test_replace(self):
        variable = pyswip.Variable()

        geolog_core.predicate.Replace.execute("me", "all", "test_me_please",
                                              variable)

        self.assertEqual("test_all_please", variable.value)
예제 #6
0
    def test_execute_deterministic_with_list(self):
        geolog_core.reference_manager.ReferenceManager().reset()
        variable_1 = pyswip.Variable()
        variable_2 = pyswip.Variable()
        variable_3 = pyswip.Variable()
        variables = [variable_1, variable_2, variable_3]

        ListDeterministicDummyProcess.execute(variables)

        atom = geolog_core.reference_manager.ReferenceManager(
        )._object_dict.keys()[0]

        self.assertEqual(
            DummyObject(1),
            geolog_core.reference_manager.ReferenceManager()._object_dict[atom]
        )
        self.assertEqual(123, variables[0].value)
        self.assertEqual("test_me", variables[1].value)
        self.assertEqual(atom, variables[2].value)
예제 #7
0
    def test_execute_deterministic_with_variable_string(self):
        geolog_core.reference_manager.ReferenceManager().reset()
        variable = pyswip.Variable()

        StringDeterministicDummyProcess.execute(variable)

        self.assertEqual(
            {},
            geolog_core.reference_manager.ReferenceManager()._object_dict)
        self.assertEqual("test_me", variable.value)
예제 #8
0
    def test_iterator_bind_list_of_objects_to_list(self):
        geolog_core.reference_manager.ReferenceManager().reset()
        DummyIterator.control = 0
        iterator_atom = pyswip.Atom("iterator")
        geolog_core.reference_manager.ReferenceManager(
        )._object_dict[iterator_atom] = iter([[DummyObject(1), 2]])

        variable_1 = pyswip.Variable()
        variable_2 = pyswip.Variable()
        DummyIterator.execute(iterator_atom, [variable_1, variable_2], 0)

        atom = geolog_core.reference_manager.ReferenceManager(
        )._object_dict.keys()[1]

        self.assertEqual(
            DummyObject(1),
            geolog_core.reference_manager.ReferenceManager()._object_dict[atom]
        )
        self.assertEqual(atom, variable_1.value)
        self.assertEqual(2, variable_2.value)
예제 #9
0
    def test_execute_deterministic_with_variable_atom(self):
        geolog_core.reference_manager.ReferenceManager().reset()
        variable = pyswip.Variable()

        ObjectDeterministicDummyProcess.execute(variable)

        atom = geolog_core.reference_manager.ReferenceManager(
        )._object_dict.keys()[0]

        self.assertEqual(
            DummyObject(1),
            geolog_core.reference_manager.ReferenceManager()._object_dict[atom]
        )
        self.assertEqual(atom, variable.value)