def test_membership(self): self.assertTrue(is_member(Set())) self.assertTrue(is_member(Set(3))) self.assertFalse(is_member(Atom(3))) self.assertTrue(is_absolute_member(Set(3))) self.assertFalse(is_absolute_member(Set(Couplet(3, 4)))) self.assertRaises(AttributeError, lambda: is_member(3))
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)