def test_union_flags(self): s1 = Set(1) s2 = Set(2) s3 = Set(1, 2) self.assertTrue(is_absolute_member(s1)) self.assertTrue(is_absolute_member(s2)) self.assertTrue(is_absolute_member(s3)) result = union(s1, s2) self.assertEqual(s3, result) self.assertEqual(result.cached_is_absolute, CacheStatus.IS) from algebraixlib.algebras import relations as _rels rel1 = Set(Couplet('a', 1)) rel2 = Set(Couplet('b', 2)) rel3 = Set(Couplet('a', 1), Couplet('b', 2)) self.assertTrue(_rels.is_absolute_member(rel1)) self.assertTrue(_rels.is_absolute_member(rel2)) result = union(rel1, rel2) self.assertEqual(rel3, result) self.assertEqual(result.cached_is_absolute, CacheStatus.IS) from algebraixlib.algebras import clans as _clans clan1 = Set(rel1) clan2 = Set(rel2) clan3 = Set(rel1, rel2) self.assertTrue(_clans.is_absolute_member(clan1)) self.assertTrue(_clans.is_absolute_member(clan2)) self.assertTrue(_clans.is_functional(clan1)) self.assertTrue(_clans.is_functional(clan2)) self.assertTrue(_clans.is_right_functional(clan1)) self.assertTrue(_clans.is_right_functional(clan2)) result = union(clan1, clan2) self.assertEqual(clan3, result) self.assertEqual(result.cached_absolute, CacheStatus.IS) self.assertEqual(result.cached_functional, CacheStatus.IS) self.assertEqual(result.cached_right_functional, CacheStatus.IS) clan4 = Set(Set(Couplet(s1, 1), Couplet(s1, 2))) clan5 = Set(rel1, Set(Couplet(s1, 1), Couplet(s1, 2))) self.assertFalse(_clans.is_absolute_member(clan4)) self.assertFalse(_clans.is_functional(clan4)) result = union(clan1, clan4) self.assertEqual(clan5, result) self.assertEqual(result.cached_absolute, CacheStatus.IS_NOT) self.assertEqual(result.cached_functional, CacheStatus.IS_NOT) rel1 = Set(Couplet('a', 1), Couplet('b', 2)).cache_relation(CacheStatus.IS) rel2 = Set(Couplet('c', 3)) self.assertEqual( union(rel1, rel2).cached_relation, CacheStatus.UNKNOWN) self.assertTrue(_rels.is_member(rel2)) self.assertEqual(union(rel1, rel2).cached_relation, CacheStatus.IS)
def test_union_flags(self): s1 = Set(1) s2 = Set(2) s3 = Set(1, 2) self.assertTrue(is_absolute_member(s1)) self.assertTrue(is_absolute_member(s2)) self.assertTrue(is_absolute_member(s3)) result = union(s1, s2) self.assertEqual(s3, result) self.assertEqual(result.cached_is_absolute, CacheStatus.IS) from algebraixlib.algebras import relations as _rels rel1 = Set(Couplet('a', 1)) rel2 = Set(Couplet('b', 2)) rel3 = Set(Couplet('a', 1), Couplet('b', 2)) self.assertTrue(_rels.is_absolute_member(rel1)) self.assertTrue(_rels.is_absolute_member(rel2)) result = union(rel1, rel2) self.assertEqual(rel3, result) self.assertEqual(result.cached_is_absolute, CacheStatus.IS) from algebraixlib.algebras import clans as _clans clan1 = Set(rel1) clan2 = Set(rel2) clan3 = Set(rel1, rel2) self.assertTrue(_clans.is_absolute_member(clan1)) self.assertTrue(_clans.is_absolute_member(clan2)) self.assertTrue(_clans.is_functional(clan1)) self.assertTrue(_clans.is_functional(clan2)) self.assertTrue(_clans.is_right_functional(clan1)) self.assertTrue(_clans.is_right_functional(clan2)) result = union(clan1, clan2) self.assertEqual(clan3, result) self.assertEqual(result.cached_absolute, CacheStatus.IS) self.assertEqual(result.cached_functional, CacheStatus.IS) self.assertEqual(result.cached_right_functional, CacheStatus.IS) clan4 = Set(Set(Couplet(s1, 1), Couplet(s1, 2))) clan5 = Set(rel1, Set(Couplet(s1, 1), Couplet(s1, 2))) self.assertFalse(_clans.is_absolute_member(clan4)) self.assertFalse(_clans.is_functional(clan4)) result = union(clan1, clan4) self.assertEqual(clan5, result) self.assertEqual(result.cached_absolute, CacheStatus.IS_NOT) self.assertEqual(result.cached_functional, CacheStatus.IS_NOT) rel1 = Set(Couplet('a', 1), Couplet('b', 2)).cache_relation(CacheStatus.IS) rel2 = Set(Couplet('c', 3)) self.assertEqual(union(rel1, rel2).cached_relation, CacheStatus.UNKNOWN) self.assertTrue(_rels.is_member(rel2)) self.assertEqual(union(rel1, rel2).cached_relation, CacheStatus.IS)
def is_absolute_triple(obj: _mo.MathObject) -> bool: """Return ``True`` if ``obj`` is an :term:`absolute` :term:`triple`, ``False`` if not.""" # noinspection PyTypeChecker return _relations.is_absolute_member(obj) and _check_triple(obj)
def is_absolute_triple(obj: _mo.MathObject) -> bool: """Return ``True`` if ``obj`` is an :term:`absolute` :term:`triple`.""" return _relations.is_absolute_member(obj) and _check_triple(obj)