def check_module(name, module=None): if isinstance(name, str): name = Atom(name) if module is None: module = Module(name) assert_equal(str(module), str(name)) assert_equal(repr(module), 'Module(name={!r})'.format(name)) assert_equal(module.get_name(), name) assert_equal(hash(module), hash(Module(name))) assert_equal(module, module) assert_equal(module, Module(name))
def test_predicate__eq__str__repr(): foo2 = Functor('foo', 2) mod = Module(Atom('mod')) foo2_no_module = Predicate(foo2) foo2_mod = Predicate(foo2, mod) foo2_no_module_name_arity = Predicate.from_name_arity('foo', 2) assert_equal(foo2_no_module, foo2_no_module_name_arity) assert_not_equal(foo2_no_module, foo2_mod) assert_not_equal(foo2_no_module_name_arity, foo2_mod) assert_equal(foo2_no_module, foo2_no_module) assert_equal(foo2_mod, foo2_mod) assert_equal(foo2_no_module_name_arity, foo2_no_module_name_arity) assert_equal(str(foo2_no_module), 'user:foo/2') assert_equal(str(foo2_no_module_name_arity), 'user:foo/2') assert_equal(str(foo2_mod), 'mod:foo/2') assert_equal(repr(foo2_no_module), 'Predicate(functor={functor!r}, module={module!r})'.format( functor=foo2, module=Module.current_context())) assert_equal(repr(foo2_mod), 'Predicate(functor={functor!r}, module={module!r})'.format( functor=foo2, module=mod))
def check_predicate(name, arity, module=None, predicate=None): if isinstance(name, str): name = Atom(name) if isinstance(module, str): module = Module(Atom(module)) module_str = str(module) if module is not None else None if predicate is None: check_predicate(name=name, arity=arity, module=module, predicate=Predicate.from_name_arity( name=str(name), arity=arity, module_name=module_str) ) check_predicate(name=name, arity=arity, module=module, predicate=Predicate( functor=Functor(name=name, arity=arity), module=module)) return stored_module = Module.current_context() if module is None else module assert_equal(str(predicate), '{module!s}:{name!s}/{arity!s}'.format( module=stored_module, name=name, arity=arity)) assert_equal(repr(predicate), 'Predicate(functor={functor!r}, module={module!r})'.format( functor=Functor(name=name, arity=arity), module=stored_module)) info = predicate.get_info() assert_equal(info.name, name) assert_equal(info.arity, arity) assert_equal(info.module, stored_module) assert_equal(predicate, predicate) assert_equal(predicate, Predicate(functor=Functor(name, arity), module=module)) assert_equal(predicate, Predicate.from_name_arity(str(name), arity, module_str)) assert_equal(hash(predicate), hash(Predicate(functor=Functor(name, arity), module=module)))
def test_module_current_context(): check_module('user', Module.current_context())