def test_sum(self): a = NamedOpetopicSet.Repr( NamedOpetope.OpetopicInteger(3, "a", "f", "A")).eval() b = NamedOpetopicSet.Repr( NamedOpetope.OpetopicInteger(4, "a", "f", "B")).eval() c = NamedOpetopicSet.Repr( NamedOpetope.OpetopicInteger(4, "b", "g", "B")).eval() with self.assertRaises(DerivationError): NamedOpetopicSet.sum(a, b) with self.assertRaises(DerivationError): NamedOpetopicSet.sum(b, c) d = NamedOpetopicSet.sum(a, c) self.assertEqual(len(d.context), len(a.context) + len(c.context)) self.assertEqual(len(d.theory.classes), len(a.theory.classes) + len(c.theory.classes))
def test_repres(self): with self.assertRaises(DerivationError): NamedOpetopicSet.repres( NamedOpetope.Degen(NamedOpetope.Point("x")).eval()) aseq = NamedOpetopicSet.repres(NamedOpetope.Arrow().eval()) self.assertEqual(len(aseq.context), 3) self.assertEqual(len(aseq.theory.classes), 0) self.assertIn(NamedOpetope.Variable("a", 0), aseq.context) self.assertIn(NamedOpetope.Variable("tf", 0), aseq.context) self.assertIn(NamedOpetope.Variable("f", 1), aseq.context) i3seq = NamedOpetopicSet.repres(NamedOpetope.OpetopicInteger(3).eval()) self.assertEqual(len(i3seq.context), 12) self.assertEqual(len(i3seq.theory.classes), 3) self.assertIn(NamedOpetope.Variable("a_1", 0), i3seq.context) self.assertIn(NamedOpetope.Variable("a_2", 0), i3seq.context) self.assertIn(NamedOpetope.Variable("a_3", 0), i3seq.context) self.assertIn(NamedOpetope.Variable("f_1", 1), i3seq.context) self.assertIn(NamedOpetope.Variable("f_2", 1), i3seq.context) self.assertIn(NamedOpetope.Variable("f_3", 1), i3seq.context) self.assertIn(NamedOpetope.Variable("A", 2), i3seq.context) self.assertTrue( i3seq.theory.equal(NamedOpetope.Variable("a_1", 0), NamedOpetope.Variable("tf_2", 0))) self.assertTrue( i3seq.theory.equal(NamedOpetope.Variable("a_2", 0), NamedOpetope.Variable("tf_3", 0))) self.assertTrue( i3seq.theory.equal(NamedOpetope.Variable("tf_1", 0), NamedOpetope.Variable("ttA", 0)))
def test_glue(self): a = NamedOpetopicSet.Repr(NamedOpetope.OpetopicInteger(3)).eval() with self.assertRaises(DerivationError): NamedOpetopicSet.glue(a, "a_1", "f_1") with self.assertRaises(DerivationError): NamedOpetopicSet.glue(a, "f_1", "f_2") a = NamedOpetopicSet.glue(a, "a_1", "a_2") a = NamedOpetopicSet.glue(a, "a_1", "a_3") a = NamedOpetopicSet.glue(a, "a_1", "ttA") a = NamedOpetopicSet.glue(a, "f_1", "f_2") a = NamedOpetopicSet.glue(a, "f_1", "f_3") a = NamedOpetopicSet.glue(a, "f_1", "tA") self.assertEqual(len(a.theory.classes), 2)