def test_categories(): from sympy.categories import (Object, Morphism, IdentityMorphism, NamedMorphism, CompositeMorphism, Category, Diagram, DiagramGrid) A1 = Object("A1") A2 = Object("A2") A3 = Object("A3") f1 = NamedMorphism(A1, A2, "f1") f2 = NamedMorphism(A2, A3, "f2") id_A1 = IdentityMorphism(A1) K1 = Category("K1") assert latex(A1) == "A_{1}" assert latex(f1) == "f_{1}:A_{1}\\rightarrow A_{2}" assert latex(id_A1) == "id:A_{1}\\rightarrow A_{1}" assert latex(f2 * f1) == "f_{2}\\circ f_{1}:A_{1}\\rightarrow A_{3}" assert latex(K1) == "\mathbf{K_{1}}" d = Diagram() assert latex(d) == "\emptyset" d = Diagram({f1: "unique", f2: S.EmptySet}) assert latex(d) == "\\begin{Bmatrix}f_{2}\\circ f_{1}:A_{1}" \ "\\rightarrow A_{3} : \\emptyset, & id:A_{1}\\rightarrow " \ "A_{1} : \\emptyset, & id:A_{2}\\rightarrow A_{2} : " \ "\\emptyset, & id:A_{3}\\rightarrow A_{3} : \\emptyset, " \ "& f_{1}:A_{1}\\rightarrow A_{2} : \\left\\{unique\\right\\}, " \ "& f_{2}:A_{2}\\rightarrow A_{3} : \\emptyset\\end{Bmatrix}" d = Diagram({f1: "unique", f2: S.EmptySet}, {f2 * f1: "unique"}) assert latex(d) == "\\begin{Bmatrix}f_{2}\\circ f_{1}:A_{1}" \ "\\rightarrow A_{3} : \\emptyset, & id:A_{1}\\rightarrow " \ "A_{1} : \\emptyset, & id:A_{2}\\rightarrow A_{2} : " \ "\\emptyset, & id:A_{3}\\rightarrow A_{3} : \\emptyset, " \ "& f_{1}:A_{1}\\rightarrow A_{2} : \\left\\{unique\\right\\}," \ " & f_{2}:A_{2}\\rightarrow A_{3} : \\emptyset\\end{Bmatrix}" \ "\\Longrightarrow \\begin{Bmatrix}f_{2}\\circ f_{1}:A_{1}" \ "\\rightarrow A_{3} : \\left\\{unique\\right\\}\\end{Bmatrix}" # A linear diagram. A = Object("A") B = Object("B") C = Object("C") f = NamedMorphism(A, B, "f") g = NamedMorphism(B, C, "g") d = Diagram([f, g]) grid = DiagramGrid(d) assert latex(grid) == "\\begin{array}{cc}\n" \ "A & B \\\\\n"\ " & C \n" \ "\\end{array}\n"
def test_category(): A = Object("A") B = Object("B") C = Object("C") f = NamedMorphism(A, B, "f") g = NamedMorphism(B, C, "g") d1 = Diagram([f, g]) d2 = Diagram([f]) objects = d1.objects | d2.objects K = Category("K", objects, commutative_diagrams=[d1, d2]) assert K.name == "K" assert K.objects == Class(objects) assert K.commutative_diagrams == FiniteSet(d1, d2) raises(ValueError, lambda: Category(""))
def test_categories(): from sympy.categories import Object, NamedMorphism, IdentityMorphism, Category A = Object("A") B = Object("B") f = NamedMorphism(A, B, "f") id_A = IdentityMorphism(A) K = Category("K") assert str(A) == 'Object("A")' assert str(f) == 'NamedMorphism(Object("A"), Object("B"), "f")' assert str(id_A) == 'IdentityMorphism(Object("A"))' assert str(K) == 'Category("K")'