regina 7.4.1__cp314-cp314-macosx_10_13_x86_64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (186) hide show
  1. regina/.dylibs/libgmp.10.dylib +0 -0
  2. regina/.dylibs/libgmpxx.4.dylib +0 -0
  3. regina/__init__.py +192 -0
  4. regina/engine.cpython-314-darwin.so +0 -0
  5. regina/plainCompleter.py +221 -0
  6. regina/pyCensus/__init__.py +14 -0
  7. regina/pyCensus/christy-knots-links.tdb +0 -0
  8. regina/pyCensus/closed-hyp-census-full.tdb +0 -0
  9. regina/pyCensus/closed-nor-census-11.tdb +0 -0
  10. regina/pyCensus/closed-or-census-11.tdb +0 -0
  11. regina/pyCensus/cusped-hyp-nor-census-9.tdb +0 -0
  12. regina/pyCensus/cusped-hyp-or-census-9.tdb +0 -0
  13. regina/sageRegina/__init__.py +2 -0
  14. regina/sageRegina/config.py +9 -0
  15. regina/sageRegina/test.py +131 -0
  16. regina/sageRegina/testsuite/CMakeLists.txt +64 -0
  17. regina/sageRegina/testsuite/O2_1.rga +15 -0
  18. regina/sageRegina/testsuite/O2_1.tri +28 -0
  19. regina/sageRegina/testsuite/README.txt +21 -0
  20. regina/sageRegina/testsuite/alltypes-exc.out +698 -0
  21. regina/sageRegina/testsuite/alltypes-exc.test +92 -0
  22. regina/sageRegina/testsuite/alltypes-noexc.out +698 -0
  23. regina/sageRegina/testsuite/alltypes-noexc.test +85 -0
  24. regina/sageRegina/testsuite/alltypes.out +698 -0
  25. regina/sageRegina/testsuite/alltypes.test +85 -0
  26. regina/sageRegina/testsuite/angles.out +102 -0
  27. regina/sageRegina/testsuite/angles.test +70 -0
  28. regina/sageRegina/testsuite/arrow.out +86 -0
  29. regina/sageRegina/testsuite/arrow.test +224 -0
  30. regina/sageRegina/testsuite/base64.out +2 -0
  31. regina/sageRegina/testsuite/base64.test +37 -0
  32. regina/sageRegina/testsuite/basic_callback.out +124 -0
  33. regina/sageRegina/testsuite/basic_sub.out +7 -0
  34. regina/sageRegina/testsuite/binom.out +14 -0
  35. regina/sageRegina/testsuite/binom.test +69 -0
  36. regina/sageRegina/testsuite/bool.out +6 -0
  37. regina/sageRegina/testsuite/bool.test +62 -0
  38. regina/sageRegina/testsuite/bytes.out +17 -0
  39. regina/sageRegina/testsuite/bytes.test +76 -0
  40. regina/sageRegina/testsuite/callbacks.out +515 -0
  41. regina/sageRegina/testsuite/callbacks.test +279 -0
  42. regina/sageRegina/testsuite/census.out +120 -0
  43. regina/sageRegina/testsuite/census.test +156 -0
  44. regina/sageRegina/testsuite/clone.out +18 -0
  45. regina/sageRegina/testsuite/clone.test +99 -0
  46. regina/sageRegina/testsuite/comparison.out +41 -0
  47. regina/sageRegina/testsuite/comparison.test +47 -0
  48. regina/sageRegina/testsuite/construction.out +120 -0
  49. regina/sageRegina/testsuite/construction.test +63 -0
  50. regina/sageRegina/testsuite/constructors.out +14 -0
  51. regina/sageRegina/testsuite/constructors.test +95 -0
  52. regina/sageRegina/testsuite/cube.orb +87 -0
  53. regina/sageRegina/testsuite/discs.out +3 -0
  54. regina/sageRegina/testsuite/discs.test +38 -0
  55. regina/sageRegina/testsuite/docstrings.filter +22 -0
  56. regina/sageRegina/testsuite/docstrings.out +802 -0
  57. regina/sageRegina/testsuite/docstrings.out.v2 +799 -0
  58. regina/sageRegina/testsuite/docstrings.test +55 -0
  59. regina/sageRegina/testsuite/dodec.orb +309 -0
  60. regina/sageRegina/testsuite/embeddings.out +23 -0
  61. regina/sageRegina/testsuite/embeddings.test +87 -0
  62. regina/sageRegina/testsuite/enumerate.out +62 -0
  63. regina/sageRegina/testsuite/enumerate.test +80 -0
  64. regina/sageRegina/testsuite/equality.out +112 -0
  65. regina/sageRegina/testsuite/equality.test +308 -0
  66. regina/sageRegina/testsuite/euler.out +15 -0
  67. regina/sageRegina/testsuite/euler.test +93 -0
  68. regina/sageRegina/testsuite/exception.out +7 -0
  69. regina/sageRegina/testsuite/exception.test +98 -0
  70. regina/sageRegina/testsuite/facenumbering.out +546 -0
  71. regina/sageRegina/testsuite/facenumbering.test +72 -0
  72. regina/sageRegina/testsuite/faces.out +40 -0
  73. regina/sageRegina/testsuite/faces.test +70 -0
  74. regina/sageRegina/testsuite/file.out +1229 -0
  75. regina/sageRegina/testsuite/file.test +68 -0
  76. regina/sageRegina/testsuite/file1.rga +0 -0
  77. regina/sageRegina/testsuite/file2.rga +0 -0
  78. regina/sageRegina/testsuite/file3.rga +119 -0
  79. regina/sageRegina/testsuite/flags.out +38 -0
  80. regina/sageRegina/testsuite/flags.out.v2 +38 -0
  81. regina/sageRegina/testsuite/flags.test +81 -0
  82. regina/sageRegina/testsuite/flype.out +37 -0
  83. regina/sageRegina/testsuite/flype.test +48 -0
  84. regina/sageRegina/testsuite/generic.out +116 -0
  85. regina/sageRegina/testsuite/generic.test +74 -0
  86. regina/sageRegina/testsuite/groups.out +70 -0
  87. regina/sageRegina/testsuite/groups.test +115 -0
  88. regina/sageRegina/testsuite/hash.out +66 -0
  89. regina/sageRegina/testsuite/hash.test +84 -0
  90. regina/sageRegina/testsuite/hypersurfaces.out +681 -0
  91. regina/sageRegina/testsuite/hypersurfaces.test +89 -0
  92. regina/sageRegina/testsuite/i18n-latin1.rga +8 -0
  93. regina/sageRegina/testsuite/i18n-utf8.rga +8 -0
  94. regina/sageRegina/testsuite/i18n.out +6 -0
  95. regina/sageRegina/testsuite/i18n.test +89 -0
  96. regina/sageRegina/testsuite/id.out +2 -0
  97. regina/sageRegina/testsuite/id.test +45 -0
  98. regina/sageRegina/testsuite/index.out +2 -0
  99. regina/sageRegina/testsuite/index.test +41 -0
  100. regina/sageRegina/testsuite/integer.out +74 -0
  101. regina/sageRegina/testsuite/integer.test +54 -0
  102. regina/sageRegina/testsuite/italian.orb +90 -0
  103. regina/sageRegina/testsuite/iterators.out +118 -0
  104. regina/sageRegina/testsuite/iterators.test +126 -0
  105. regina/sageRegina/testsuite/knotted-Y.orb +47 -0
  106. regina/sageRegina/testsuite/listener.out +43 -0
  107. regina/sageRegina/testsuite/listener.test +99 -0
  108. regina/sageRegina/testsuite/listview.out +416 -0
  109. regina/sageRegina/testsuite/listview.test +251 -0
  110. regina/sageRegina/testsuite/lookup.out +13 -0
  111. regina/sageRegina/testsuite/lookup.test +42 -0
  112. regina/sageRegina/testsuite/lst.out +844 -0
  113. regina/sageRegina/testsuite/lst.test +195 -0
  114. regina/sageRegina/testsuite/memory1.out +62 -0
  115. regina/sageRegina/testsuite/memory1.test +152 -0
  116. regina/sageRegina/testsuite/memory2.out +62 -0
  117. regina/sageRegina/testsuite/memory2.test +122 -0
  118. regina/sageRegina/testsuite/memory3.out +92 -0
  119. regina/sageRegina/testsuite/memory3.test +214 -0
  120. regina/sageRegina/testsuite/misc.out +7 -0
  121. regina/sageRegina/testsuite/misc.test +54 -0
  122. regina/sageRegina/testsuite/operators.out +129 -0
  123. regina/sageRegina/testsuite/operators.test +59 -0
  124. regina/sageRegina/testsuite/orb.out +441 -0
  125. regina/sageRegina/testsuite/orb.test +47 -0
  126. regina/sageRegina/testsuite/pdf.out +4 -0
  127. regina/sageRegina/testsuite/pdf.test +47 -0
  128. regina/sageRegina/testsuite/perm.out +36 -0
  129. regina/sageRegina/testsuite/perm.test +74 -0
  130. regina/sageRegina/testsuite/plantri.out +12 -0
  131. regina/sageRegina/testsuite/plantri.test +58 -0
  132. regina/sageRegina/testsuite/poincare.tri +55 -0
  133. regina/sageRegina/testsuite/presentations.out +11 -0
  134. regina/sageRegina/testsuite/presentations.test +59 -0
  135. regina/sageRegina/testsuite/refs.out +51 -0
  136. regina/sageRegina/testsuite/refs.test +126 -0
  137. regina/sageRegina/testsuite/repr.out +951 -0
  138. regina/sageRegina/testsuite/repr.out.v2 +951 -0
  139. regina/sageRegina/testsuite/repr.test +546 -0
  140. regina/sageRegina/testsuite/runbasic.in +75 -0
  141. regina/sageRegina/testsuite/safeheldtype_basic.out +17 -0
  142. regina/sageRegina/testsuite/safeheldtype_basic.test +111 -0
  143. regina/sageRegina/testsuite/safeheldtype_packet.out +58 -0
  144. regina/sageRegina/testsuite/safeheldtype_packet.test +179 -0
  145. regina/sageRegina/testsuite/sample.pdf +0 -0
  146. regina/sageRegina/testsuite/sets.out +7 -0
  147. regina/sageRegina/testsuite/sets.test +42 -0
  148. regina/sageRegina/testsuite/skeleton.out +308 -0
  149. regina/sageRegina/testsuite/skeleton.test +52 -0
  150. regina/sageRegina/testsuite/snappea.out +90 -0
  151. regina/sageRegina/testsuite/snappea.test +133 -0
  152. regina/sageRegina/testsuite/snapshot.out +15 -0
  153. regina/sageRegina/testsuite/snapshot.test +76 -0
  154. regina/sageRegina/testsuite/sort.out +78 -0
  155. regina/sageRegina/testsuite/sort.test +58 -0
  156. regina/sageRegina/testsuite/special.out +4 -0
  157. regina/sageRegina/testsuite/special.test +45 -0
  158. regina/sageRegina/testsuite/standardtri.out +12101 -0
  159. regina/sageRegina/testsuite/standardtri.test +453 -0
  160. regina/sageRegina/testsuite/surfaces.out +2133 -0
  161. regina/sageRegina/testsuite/surfaces.test +112 -0
  162. regina/sageRegina/testsuite/swapping.out +25 -0
  163. regina/sageRegina/testsuite/swapping.test +86 -0
  164. regina/sageRegina/testsuite/testall.in +174 -0
  165. regina/sageRegina/testsuite/testbasic.in +277 -0
  166. regina/sageRegina/testsuite/testcallback.in +148 -0
  167. regina/sageRegina/testsuite/testsub.in +148 -0
  168. regina/sageRegina/testsuite/theta_in_solid_torus.orb +65 -0
  169. regina/sageRegina/testsuite/tightencode.out +40 -0
  170. regina/sageRegina/testsuite/tightencode.test +106 -0
  171. regina/sageRegina/testsuite/treedecomp.out +135 -0
  172. regina/sageRegina/testsuite/treedecomp.test +64 -0
  173. regina/sageRegina/testsuite/treetraversal.out +52 -0
  174. regina/sageRegina/testsuite/treetraversal.test +188 -0
  175. regina/sageRegina/testsuite/trigeneral.out +1251 -0
  176. regina/sageRegina/testsuite/trigeneral.test +153 -0
  177. regina/sageRegina/testsuite/utf8.out +42 -0
  178. regina/sageRegina/testsuite/utf8.test +92 -0
  179. regina/sageRegina/testsuite/whitehead.tri +47 -0
  180. regina/sageRegina/version.py +5 -0
  181. regina/sageSetup.py +41 -0
  182. regina/test.py +6 -0
  183. regina-7.4.1.dist-info/METADATA +109 -0
  184. regina-7.4.1.dist-info/RECORD +186 -0
  185. regina-7.4.1.dist-info/WHEEL +6 -0
  186. regina-7.4.1.dist-info/top_level.txt +4 -0
@@ -0,0 +1,111 @@
1
+ # Regina - A Normal Surface Theory Calculator
2
+ # Python Test Suite Component
3
+ #
4
+ # Copyright (c) 2015-2025, Ben Burton
5
+ # For further details contact Ben Burton (bab@debian.org).
6
+ #
7
+ # Provides basic tests of the shared_ptr holder types
8
+ #
9
+ # This file is a single component of Regina's python test suite. To run
10
+ # the python test suite, move to the main python directory in the source
11
+ # tree and run "make check".
12
+ #
13
+ # This program is free software; you can redistribute it and/or
14
+ # modify it under the terms of the GNU General Public License as
15
+ # published by the Free Software Foundation; either version 2 of the
16
+ # License, or (at your option) any later version.
17
+ #
18
+ # As an exception, when this program is distributed through (i) the
19
+ # App Store by Apple Inc.; (ii) the Mac App Store by Apple Inc.; or
20
+ # (iii) Google Play by Google Inc., then that store may impose any
21
+ # digital rights management, device limits and/or redistribution
22
+ # restrictions that are required by its terms of service.
23
+ #
24
+ # This program is distributed in the hope that it will be useful, but
25
+ # WITHOUT ANY WARRANTY; without even the implied warranty of
26
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
27
+ # General Public License for more details.
28
+ #
29
+ # You should have received a copy of the GNU General Public License
30
+ # along with this program. If not, see <https://www.gnu.org/licenses/>.
31
+
32
+ # NOTE: Since Regina 5.96, python references to packets never expire.
33
+ # Therefore we should never raise any exceptions in this test.
34
+
35
+ print("Constructor:")
36
+
37
+ print(Container())
38
+
39
+ print("Deleting parent:")
40
+
41
+ c = Container()
42
+ c1 = Container()
43
+
44
+ c.prepend(c1)
45
+
46
+ c = None
47
+
48
+ try:
49
+ print(c1)
50
+ except RuntimeError:
51
+ print("Got exception")
52
+
53
+ print("Deleting matriarch:")
54
+
55
+ c = Container()
56
+ c.prepend(Container())
57
+ c.firstChild().prepend(Container())
58
+
59
+ c1 = c.firstChild()
60
+ c2 = c.firstChild().firstChild()
61
+
62
+ c = None
63
+
64
+ try:
65
+ print(c1)
66
+ except RuntimeError:
67
+ print("Got exception")
68
+
69
+ try:
70
+ print(c2)
71
+ except RuntimeError:
72
+ print("Got exception")
73
+
74
+ print("Multiple references:")
75
+
76
+ c = Container()
77
+ c1 = Container()
78
+ c2 = Container()
79
+
80
+ c.prepend(c1)
81
+ c1.prepend(c2)
82
+
83
+ print(c)
84
+ print(c1)
85
+ print(c2)
86
+
87
+ c1 = None
88
+
89
+ print(c)
90
+ print(c2)
91
+
92
+ d = c2.root()
93
+
94
+ c = None
95
+
96
+ print(c2)
97
+
98
+ e = c2.root()
99
+
100
+ print(c2)
101
+
102
+ e = None
103
+
104
+ print(c2)
105
+
106
+ d = None
107
+
108
+ try:
109
+ print(c2)
110
+ except RuntimeError:
111
+ print("Got exception")
@@ -0,0 +1,58 @@
1
+
2
+ -----------------------------------------------------------
3
+ Basic:
4
+
5
+ fvPQcdecedekrsnrs
6
+ Text of length 11
7
+ Hello World
8
+
9
+ -----------------------------------------------------------
10
+ Basic container tests:
11
+
12
+ 1
13
+ a
14
+ Bounded orientable 3-D triangulation, f = ( 4 6 4 1 )
15
+ baa
16
+ baa
17
+ baabaa
18
+
19
+ -----------------------------------------------------------
20
+ Erasing container:
21
+
22
+ baabaa
23
+
24
+ -----------------------------------------------------------
25
+ Nested tests:
26
+
27
+ Hello World
28
+ Text set
29
+ 3
30
+ 4
31
+ True
32
+ fvPQcdecedekrsnrs
33
+ True
34
+ 2
35
+ Closed orientable 3-D triangulation, f = ( 1 6 10 5 )
36
+ Empty attachment
37
+ Text of length 8
38
+ Ideal orientable 3-D triangulation, f = ( 1 2 4 2 )
39
+ Text of length 3
40
+
41
+ Erase nested:
42
+ -----------------------------------------------------------
43
+
44
+ Text of length 8
45
+ Ideal orientable 3-D triangulation, f = ( 1 2 4 2 )
46
+
47
+ Make orphan:
48
+ -----------------------------------------------------------
49
+
50
+ Bounded orientable 3-D triangulation, f = ( 4 6 4 1 )
51
+ Bounded orientable 3-D triangulation, f = ( 8 12 8 2 )
52
+ Bounded orientable 3-D triangulation, f = ( 12 18 12 3 )
53
+ Bounded orientable 3-D triangulation, f = ( 4 6 4 1 )
54
+ Bounded orientable 3-D triangulation, f = ( 8 12 8 2 )
55
+ Bounded orientable 3-D triangulation, f = ( 12 18 12 3 )
56
+ Bounded orientable 3-D triangulation, f = ( 4 6 4 1 )
57
+ None
58
+ Bounded orientable 3-D triangulation, f = ( 12 18 12 3 )
@@ -0,0 +1,179 @@
1
+ # Regina - A Normal Surface Theory Calculator
2
+ # Python Test Suite Component
3
+ #
4
+ # Copyright (c) 2015-2025, Ben Burton
5
+ # For further details contact Ben Burton (bab@debian.org).
6
+ #
7
+ # Provides tests for the wrapping of Packet subclasses through shared_ptr
8
+ #
9
+ # This file is a single component of Regina's python test suite. To run
10
+ # the python test suite, move to the main python directory in the source
11
+ # tree and run "make check".
12
+ #
13
+ # This program is free software; you can redistribute it and/or
14
+ # modify it under the terms of the GNU General Public License as
15
+ # published by the Free Software Foundation; either version 2 of the
16
+ # License, or (at your option) any later version.
17
+ #
18
+ # As an exception, when this program is distributed through (i) the
19
+ # App Store by Apple Inc.; (ii) the Mac App Store by Apple Inc.; or
20
+ # (iii) Google Play by Google Inc., then that store may impose any
21
+ # digital rights management, device limits and/or redistribution
22
+ # restrictions that are required by its terms of service.
23
+ #
24
+ # This program is distributed in the hope that it will be useful, but
25
+ # WITHOUT ANY WARRANTY; without even the implied warranty of
26
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
27
+ # General Public License for more details.
28
+ #
29
+ # You should have received a copy of the GNU General Public License
30
+ # along with this program. If not, see <https://www.gnu.org/licenses/>.
31
+
32
+ # NOTE: Since Regina 5.96, python references to packets never expire.
33
+ # Therefore we should never raise any exceptions in this test.
34
+
35
+ print()
36
+ print("-----------------------------------------------------------")
37
+ print("Basic:")
38
+ print()
39
+
40
+ print(PacketOfTriangulation3(Example3.poincare()).isoSig())
41
+ print(Text("Hello World"))
42
+ print(Text("Hello World").text())
43
+
44
+ print()
45
+ print("-----------------------------------------------------------")
46
+ print("Basic container tests:")
47
+ print()
48
+
49
+ t1 = PacketOfTriangulation3()
50
+ t2 = PacketOfTriangulation3(Example3.poincare())
51
+ t3 = PacketOfTriangulation3(Example3.figureEight())
52
+ p = Attachment()
53
+
54
+ t = Text()
55
+
56
+ c = Container()
57
+ c.prepend(t1)
58
+
59
+ print(c.countChildren())
60
+
61
+ print(t1.isoSig())
62
+ dummy = t1.newTetrahedron()
63
+ dummy = None
64
+
65
+ print(c.firstChild())
66
+ print(c.firstChild().isoSig())
67
+
68
+ t1 = None
69
+
70
+ print(c.firstChild().isoSig())
71
+
72
+ temp = c.lastChild()
73
+
74
+ dummy = temp.newTetrahedron()
75
+ dummy = None
76
+
77
+ print(temp.isoSig())
78
+
79
+ print()
80
+ print("-----------------------------------------------------------")
81
+ print("Erasing container:")
82
+ print()
83
+
84
+ c = None
85
+
86
+ try:
87
+ print(temp.isoSig())
88
+ except RuntimeError:
89
+ print("Got exception")
90
+
91
+ print()
92
+ print("-----------------------------------------------------------")
93
+ print("Nested tests:")
94
+ print()
95
+
96
+ t2.prepend(t3)
97
+ t2.prepend(p)
98
+ p.append(t)
99
+ t.setText("Hello World")
100
+
101
+ print(t.text())
102
+
103
+ p.lastChild().setText("Text set")
104
+
105
+ l = p.firstChild()
106
+
107
+ print(l.text())
108
+
109
+ t2.insert(Text("New"), t3)
110
+
111
+ print(t2.countChildren())
112
+ print(t2.countDescendants())
113
+
114
+ m = l.root()
115
+
116
+ print(m == t2)
117
+
118
+ print(m.isoSig())
119
+
120
+ m = None
121
+
122
+ print(p.isNull())
123
+
124
+ print(p.totalTreeSize())
125
+
126
+ it = t2
127
+
128
+ while it:
129
+ print(it)
130
+ it = it.nextTreePacket()
131
+
132
+ t2 = None
133
+
134
+ print()
135
+ print("Erase nested:")
136
+ print("-----------------------------------------------------------")
137
+ print()
138
+
139
+ try:
140
+ print(l)
141
+ except RuntimeError:
142
+ print("Got exception")
143
+
144
+ try:
145
+ print(t3)
146
+ except RuntimeError:
147
+ print("Got exception")
148
+
149
+ print()
150
+ print("Make orphan:")
151
+ print("-----------------------------------------------------------")
152
+ print()
153
+
154
+ d1 = Triangulation3(); dummy = d1.newTetrahedron(); dummy = None
155
+ d2 = Triangulation3(); dummy = d2.newTetrahedra(2); dummy = None
156
+ d3 = Triangulation3(); dummy = d3.newTetrahedra(3); dummy = None
157
+ p1 = PacketOfTriangulation3(d1)
158
+ p2 = PacketOfTriangulation3(d2)
159
+ p3 = PacketOfTriangulation3(d3)
160
+ p1.append(p2)
161
+ p2.append(p3)
162
+
163
+ print(p1)
164
+ print(p2)
165
+ print(p3)
166
+
167
+ p2.makeOrphan()
168
+ print(p1)
169
+ print(p2)
170
+ print(p3)
171
+
172
+ try:
173
+ p2 = None
174
+ print(p1)
175
+ print(p2)
176
+ print(p3)
177
+ except RuntimeError:
178
+ print("Got exception")
179
+
Binary file
@@ -0,0 +1,7 @@
1
+ Edge 0, internal, degree 3: 0 (01), 3 (12), 4 (12)
2
+ Edge 3, internal, degree 3: 0 (12), 1 (12), 4 (23)
3
+ Edge 5, internal, degree 3: 0 (23), 1 (23), 2 (23)
4
+ Edge 8, internal, degree 3: 1 (03), 3 (03), 2 (03)
5
+ Edge 0, boundary, degree 1: 0 (01)
6
+ Edge 3, boundary, degree 1: 0 (12)
7
+ Edge 5, boundary, degree 1: 0 (23)
@@ -0,0 +1,42 @@
1
+ # Regina - A Normal Surface Theory Calculator
2
+ # Python Test Suite Component
3
+ #
4
+ # Copyright (c) 2015-2025, Ben Burton
5
+ # For further details contact Ben Burton (bab@debian.org).
6
+ #
7
+ # Tests bindings related to python sets.
8
+ #
9
+ # This file is a single component of Regina's python test suite. To run
10
+ # the python test suite, move to the main python directory in the source
11
+ # tree and run "make check".
12
+ #
13
+ # This program is free software; you can redistribute it and/or
14
+ # modify it under the terms of the GNU General Public License as
15
+ # published by the Free Software Foundation; either version 2 of the
16
+ # License, or (at your option) any later version.
17
+ #
18
+ # As an exception, when this program is distributed through (i) the
19
+ # App Store by Apple Inc.; (ii) the Mac App Store by Apple Inc.; or
20
+ # (iii) Google Play by Google Inc., then that store may impose any
21
+ # digital rights management, device limits and/or redistribution
22
+ # restrictions that are required by its terms of service.
23
+ #
24
+ # This program is distributed in the hope that it will be useful, but
25
+ # WITHOUT ANY WARRANTY; without even the implied warranty of
26
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
27
+ # General Public License for more details.
28
+ #
29
+ # You should have received a copy of the GNU General Public License
30
+ # along with this program. If not, see <https://www.gnu.org/licenses/>.
31
+
32
+ def dump(s):
33
+ ans = [ x.str() for x in s]
34
+ ans.sort()
35
+ for x in ans:
36
+ print(x)
37
+
38
+ t = Example3.simplicialSphere()
39
+ dump(t.maximalForestInSkeleton())
40
+
41
+ u = Example3.ball()
42
+ dump(u.maximalForestInBoundary())
@@ -0,0 +1,308 @@
1
+ Size of the skeleton:
2
+ Tetrahedra: 23
3
+ Triangles: 46
4
+ Edges: 24
5
+ Vertices: 1
6
+
7
+ Tetrahedron gluing:
8
+ Tet | gluing: (012) (013) (023) (123)
9
+ -----+---------------------------------------------------------
10
+ 0 | 4 (013) 3 (012) 2 (032) 1 (132)
11
+ 1 | 6 (013) 7 (012) 5 (032) 0 (132)
12
+ 2 | 9 (013) 10 (012) 0 (032) 8 (132)
13
+ 3 | 0 (013) 12 (012) 7 (032) 11 (132)
14
+ 4 | 15 (013) 0 (012) 14 (032) 13 (132)
15
+ 5 | 12 (032) 16 (012) 1 (032) 8 (023)
16
+ 6 | 17 (013) 1 (012) 13 (203) 12 (321)
17
+ 7 | 1 (013) 19 (012) 3 (032) 18 (132)
18
+ 8 | 14 (021) 10 (023) 5 (123) 2 (132)
19
+ 9 | 18 (013) 2 (012) 19 (032) 13 (120)
20
+ 10 | 2 (013) 21 (012) 8 (013) 20 (132)
21
+ 11 | 20 (102) 12 (031) 15 (021) 3 (132)
22
+ 12 | 3 (013) 11 (031) 5 (021) 6 (321)
23
+ 13 | 9 (312) 20 (230) 6 (203) 4 (132)
24
+ 14 | 8 (021) 17 (132) 4 (032) 16 (302)
25
+ 15 | 11 (032) 4 (012) 22 (032) 18 (230)
26
+ 16 | 5 (013) 20 (103) 14 (231) 21 (023)
27
+ 17 | 19 (013) 6 (012) 22 (231) 14 (031)
28
+ 18 | 21 (013) 9 (012) 15 (312) 7 (132)
29
+ 19 | 7 (013) 17 (012) 9 (032) 22 (012)
30
+ 20 | 11 (102) 16 (103) 13 (301) 10 (132)
31
+ 21 | 10 (013) 18 (012) 16 (123) 22 (031)
32
+ 22 | 19 (123) 21 (132) 15 (032) 17 (302)
33
+
34
+ Vertices:
35
+ Tet | vertex: 0 1 2 3
36
+ -----+--------------------------
37
+ 0 | 0 0 0 0
38
+ 1 | 0 0 0 0
39
+ 2 | 0 0 0 0
40
+ 3 | 0 0 0 0
41
+ 4 | 0 0 0 0
42
+ 5 | 0 0 0 0
43
+ 6 | 0 0 0 0
44
+ 7 | 0 0 0 0
45
+ 8 | 0 0 0 0
46
+ 9 | 0 0 0 0
47
+ 10 | 0 0 0 0
48
+ 11 | 0 0 0 0
49
+ 12 | 0 0 0 0
50
+ 13 | 0 0 0 0
51
+ 14 | 0 0 0 0
52
+ 15 | 0 0 0 0
53
+ 16 | 0 0 0 0
54
+ 17 | 0 0 0 0
55
+ 18 | 0 0 0 0
56
+ 19 | 0 0 0 0
57
+ 20 | 0 0 0 0
58
+ 21 | 0 0 0 0
59
+ 22 | 0 0 0 0
60
+
61
+ Edges:
62
+ Tet | edge: 01 02 03 12 13 23
63
+ -----+--------------------------------
64
+ 0 | 0 1 2 3 4 5
65
+ 1 | 6 7 8 4 3 5
66
+ 2 | 9 2 1 10 11 5
67
+ 3 | 0 2 8 4 12 13
68
+ 4 | 0 14 1 15 3 7
69
+ 5 | 16 8 7 17 18 5
70
+ 6 | 6 19 7 17 4 12
71
+ 7 | 6 8 2 3 20 13
72
+ 8 | 1 17 18 11 10 5
73
+ 9 | 9 21 2 3 10 19
74
+ 10 | 9 1 18 11 22 10
75
+ 11 | 16 22 0 12 4 13
76
+ 12 | 0 8 16 12 4 17
77
+ 13 | 10 19 12 3 15 7
78
+ 14 | 17 1 14 11 23 7
79
+ 15 | 0 22 14 13 15 21
80
+ 16 | 16 7 11 18 15 23
81
+ 17 | 6 21 19 14 17 23
82
+ 18 | 9 15 21 20 3 13
83
+ 19 | 6 2 21 20 14 19
84
+ 20 | 16 12 15 22 11 10
85
+ 21 | 9 18 15 22 20 23
86
+ 22 | 20 14 22 19 23 21
87
+
88
+ Triangles:
89
+ Tet | face: 012 013 023 123
90
+ -----+------------------------
91
+ 0 | 0 1 2 3
92
+ 1 | 4 5 6 3
93
+ 2 | 7 8 2 9
94
+ 3 | 1 10 11 12
95
+ 4 | 13 0 14 15
96
+ 5 | 16 17 6 18
97
+ 6 | 19 4 20 21
98
+ 7 | 5 22 11 23
99
+ 8 | 24 25 18 9
100
+ 9 | 26 7 27 28
101
+ 10 | 8 29 25 30
102
+ 11 | 31 32 33 12
103
+ 12 | 10 32 16 21
104
+ 13 | 28 34 20 15
105
+ 14 | 24 35 14 36
106
+ 15 | 33 13 37 38
107
+ 16 | 17 39 36 40
108
+ 17 | 41 19 42 35
109
+ 18 | 43 26 38 23
110
+ 19 | 22 41 27 44
111
+ 20 | 31 39 34 30
112
+ 21 | 29 43 40 45
113
+ 22 | 44 45 37 42
114
+
115
+
116
+ Vertex 0, internal, degree 92: 0 (0), 2 (0), 3 (0), 4 (0), 10 (0), 9 (0), 7 (0), 12 (0), 14 (0), 15 (0), 8 (0), 21 (0), 19 (0), 18 (0), 1 (0), 5 (0), 11 (0), 17 (1), 22 (0), 5 (1), 16 (1), 17 (0), 15 (3), 6 (0), 16 (0), 20 (1), 6 (1), 19 (1), 21 (1), 12 (3), 20 (0), 22 (2), 4 (2), 13 (2), 14 (2), 10 (1), 1 (1), 7 (1), 18 (1), 11 (1), 13 (3), 19 (3), 14 (3), 4 (3), 9 (2), 8 (1), 2 (1), 0 (1), 9 (1), 3 (1), 6 (3), 17 (2), 16 (2), 0 (2), 18 (3), 10 (2), 4 (1), 13 (1), 12 (1), 1 (2), 22 (3), 21 (2), 5 (3), 1 (3), 2 (3), 7 (2), 15 (2), 20 (3), 15 (1), 11 (3), 0 (3), 10 (3), 8 (3), 5 (2), 8 (2), 3 (3), 11 (2), 16 (3), 18 (2), 3 (2), 2 (2), 20 (2), 12 (2), 14 (1), 21 (3), 7 (3), 9 (3), 13 (0), 6 (2), 17 (3), 22 (1), 19 (2)
117
+
118
+ Edge 0, internal, degree 6: 0 (01), 3 (01), 12 (01), 11 (03), 15 (01), 4 (01)
119
+
120
+ Edge 1, internal, degree 6: 0 (02), 4 (03), 14 (02), 8 (01), 10 (02), 2 (03)
121
+
122
+ Edge 2, internal, degree 6: 0 (03), 2 (02), 9 (03), 19 (02), 7 (03), 3 (02)
123
+
124
+ Edge 3, internal, degree 7: 0 (12), 1 (13), 7 (12), 18 (13), 9 (12), 13 (12), 4 (13)
125
+
126
+ Edge 4, internal, degree 6: 0 (13), 3 (12), 11 (13), 12 (31), 6 (13), 1 (12)
127
+
128
+ Edge 5, internal, degree 5: 0 (23), 1 (32), 5 (23), 8 (23), 2 (32)
129
+
130
+ Edge 6, internal, degree 5: 1 (01), 7 (01), 19 (01), 17 (01), 6 (01)
131
+
132
+ Edge 7, internal, degree 7: 1 (02), 6 (03), 13 (23), 4 (32), 14 (23), 16 (02), 5 (03)
133
+
134
+ Edge 8, internal, degree 5: 1 (03), 5 (02), 12 (02), 3 (03), 7 (02)
135
+
136
+ Edge 9, internal, degree 5: 2 (01), 10 (01), 21 (01), 18 (01), 9 (01)
137
+
138
+ Edge 10, internal, degree 6: 2 (12), 8 (13), 10 (23), 20 (32), 13 (10), 9 (13)
139
+
140
+ Edge 11, internal, degree 6: 2 (13), 10 (12), 20 (13), 16 (03), 14 (21), 8 (12)
141
+
142
+ Edge 12, internal, degree 6: 3 (13), 12 (12), 6 (32), 13 (30), 20 (02), 11 (12)
143
+
144
+ Edge 13, internal, degree 5: 3 (23), 11 (32), 15 (12), 18 (23), 7 (32)
145
+
146
+ Edge 14, internal, degree 6: 4 (02), 15 (03), 22 (02), 19 (13), 17 (12), 14 (03)
147
+
148
+ Edge 15, internal, degree 7: 4 (12), 13 (13), 20 (30), 16 (31), 21 (30), 18 (20), 15 (13)
149
+
150
+ Edge 16, internal, degree 5: 5 (01), 16 (01), 20 (10), 11 (01), 12 (03)
151
+
152
+ Edge 17, internal, degree 6: 5 (12), 8 (02), 14 (01), 17 (13), 6 (12), 12 (32)
153
+
154
+ Edge 18, internal, degree 5: 5 (13), 16 (12), 21 (02), 10 (03), 8 (03)
155
+
156
+ Edge 19, internal, degree 6: 6 (02), 17 (03), 22 (21), 19 (32), 9 (23), 13 (20)
157
+
158
+ Edge 20, internal, degree 5: 7 (13), 19 (12), 22 (01), 21 (13), 18 (12)
159
+
160
+ Edge 21, internal, degree 6: 9 (02), 18 (03), 15 (32), 22 (23), 17 (02), 19 (03)
161
+
162
+ Edge 22, internal, degree 6: 10 (13), 21 (12), 22 (03), 15 (02), 11 (02), 20 (12)
163
+
164
+ Edge 23, internal, degree 5: 14 (13), 17 (32), 22 (13), 21 (32), 16 (32)
165
+
166
+ Triangle 0, internal: 0 (012), 4 (013)
167
+
168
+ Triangle 1, internal: 3 (012), 0 (013)
169
+
170
+ Triangle 2, internal: 0 (023), 2 (032)
171
+
172
+ Triangle 3, internal: 1 (132), 0 (123)
173
+
174
+ Triangle 4, internal: 1 (012), 6 (013)
175
+
176
+ Triangle 5, internal: 7 (012), 1 (013)
177
+
178
+ Triangle 6, internal: 1 (023), 5 (032)
179
+
180
+ Triangle 7, internal: 2 (012), 9 (013)
181
+
182
+ Triangle 8, internal: 10 (012), 2 (013)
183
+
184
+ Triangle 9, internal: 8 (132), 2 (123)
185
+
186
+ Triangle 10, internal: 12 (012), 3 (013)
187
+
188
+ Triangle 11, internal: 3 (023), 7 (032)
189
+
190
+ Triangle 12, internal: 11 (132), 3 (123)
191
+
192
+ Triangle 13, internal: 4 (012), 15 (013)
193
+
194
+ Triangle 14, internal: 4 (023), 14 (032)
195
+
196
+ Triangle 15, internal: 13 (132), 4 (123)
197
+
198
+ Triangle 16, internal: 5 (012), 12 (032)
199
+
200
+ Triangle 17, internal: 16 (012), 5 (013)
201
+
202
+ Triangle 18, internal: 8 (023), 5 (123)
203
+
204
+ Triangle 19, internal: 6 (012), 17 (013)
205
+
206
+ Triangle 20, internal: 6 (023), 13 (203)
207
+
208
+ Triangle 21, internal: 12 (321), 6 (123)
209
+
210
+ Triangle 22, internal: 19 (012), 7 (013)
211
+
212
+ Triangle 23, internal: 18 (132), 7 (123)
213
+
214
+ Triangle 24, internal: 8 (012), 14 (021)
215
+
216
+ Triangle 25, internal: 10 (023), 8 (013)
217
+
218
+ Triangle 26, internal: 9 (012), 18 (013)
219
+
220
+ Triangle 27, internal: 9 (023), 19 (032)
221
+
222
+ Triangle 28, internal: 13 (120), 9 (123)
223
+
224
+ Triangle 29, internal: 21 (012), 10 (013)
225
+
226
+ Triangle 30, internal: 20 (132), 10 (123)
227
+
228
+ Triangle 31, internal: 11 (012), 20 (102)
229
+
230
+ Triangle 32, internal: 12 (031), 11 (013)
231
+
232
+ Triangle 33, internal: 11 (023), 15 (021)
233
+
234
+ Triangle 34, internal: 20 (230), 13 (013)
235
+
236
+ Triangle 35, internal: 17 (132), 14 (013)
237
+
238
+ Triangle 36, internal: 16 (302), 14 (123)
239
+
240
+ Triangle 37, internal: 15 (023), 22 (032)
241
+
242
+ Triangle 38, internal: 18 (230), 15 (123)
243
+
244
+ Triangle 39, internal: 20 (103), 16 (013)
245
+
246
+ Triangle 40, internal: 21 (023), 16 (123)
247
+
248
+ Triangle 41, internal: 17 (012), 19 (013)
249
+
250
+ Triangle 42, internal: 17 (023), 22 (231)
251
+
252
+ Triangle 43, internal: 18 (012), 21 (013)
253
+
254
+ Triangle 44, internal: 22 (012), 19 (123)
255
+
256
+ Triangle 45, internal: 22 (031), 21 (123)
257
+
258
+ Size of the skeleton:
259
+ Triangles: 5
260
+ Edges: 8
261
+ Vertices: 1
262
+
263
+ Triangle gluing:
264
+ Triangle | gluing: (01) (02) (12)
265
+ ----------+---------------------------------------
266
+ 0 | boundary 1 (01) 2 (10)
267
+ 1 | 0 (02) 3 (01) 4 (10)
268
+ 2 | 0 (21) 2 (21) 2 (20)
269
+ 3 | 1 (02) 3 (21) 3 (20)
270
+ 4 | 1 (21) 4 (21) 4 (20)
271
+
272
+ Vertices:
273
+ Triangle | vertex: 0 1 2
274
+ ----------+----------------------
275
+ 0 | 0 0 0
276
+ 1 | 0 0 0
277
+ 2 | 0 0 0
278
+ 3 | 0 0 0
279
+ 4 | 0 0 0
280
+
281
+ Edges:
282
+ Triangle | edge: 01 02 12
283
+ ----------+--------------------
284
+ 0 | 0 1 2
285
+ 1 | 1 3 4
286
+ 2 | 2 5 5
287
+ 3 | 3 6 6
288
+ 4 | 4 7 7
289
+
290
+
291
+ Vertex 0, boundary, degree 15: 0 (0), 1 (0), 3 (0), 3 (2), 3 (1), 1 (2), 4 (0), 4 (2), 4 (1), 1 (1), 0 (2), 2 (0), 2 (2), 2 (1), 0 (1)
292
+
293
+ Edge 0, boundary: 0 (01)
294
+
295
+ Edge 1, internal: 1 (01), 0 (02)
296
+
297
+ Edge 2, internal: 0 (12), 2 (10)
298
+
299
+ Edge 3, internal: 3 (01), 1 (02)
300
+
301
+ Edge 4, internal: 1 (12), 4 (10)
302
+
303
+ Edge 5, internal: 2 (21), 2 (02)
304
+
305
+ Edge 6, internal: 3 (21), 3 (02)
306
+
307
+ Edge 7, internal: 4 (21), 4 (02)
308
+