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,453 @@
1
+ # Regina - A Normal Surface Theory Calculator
2
+ # Python Test Suite Component
3
+ #
4
+ # Copyright (c) 2007-2025, Ben Burton
5
+ # For further details contact Ben Burton (bab@debian.org).
6
+ #
7
+ # Tests the census database lookup routines.
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 prefix(n):
33
+ return ' ' * n
34
+
35
+ def describeSatRegion(r):
36
+ for b in range(r.countBlocks()):
37
+ spec = r.block(b)
38
+ block = spec.block()
39
+ if spec.refVert() and spec.refHoriz():
40
+ refStr = '<-> vert/horiz'
41
+ elif spec.refVert():
42
+ refStr = '<-> vert'
43
+ elif spec.refHoriz():
44
+ refstr = '<-> horiz'
45
+ else:
46
+ refStr = '<-X->'
47
+ print(prefix(3) + 'Block ' + str(b) + ':', block.abbr(), refStr)
48
+ print(prefix(4) + block.str())
49
+ for a in range(block.countAnnuli()):
50
+ ann = block.annulus(a)
51
+ msg = 'Ann. ' + str(b) + '/' + str(a) + \
52
+ ' [' + str(ann.tet(0).index()) + '/' + \
53
+ str(ann.roles(0).trunc(3)) + \
54
+ ', ' + str(ann.tet(1).index()) + '/' + \
55
+ str(ann.roles(1).trunc(3)) + ']'
56
+ if not block.hasAdjacentBlock(a):
57
+ msg = msg + ': bdry'
58
+ else:
59
+ msg = msg + ' -> ' + \
60
+ str(r.blockIndex(block.adjacentBlock(a))) + '/' + \
61
+ str(block.adjacentAnnulus(a))
62
+ ref = block.adjacentReflected(a)
63
+ back = block.adjacentBackwards(a)
64
+ if ref and back:
65
+ msg = msg + ' (ref, back)'
66
+ elif ref:
67
+ msg = msg + ' (ref)'
68
+ elif back:
69
+ msg = msg + ' (back)'
70
+ print(prefix(4) + msg)
71
+ pass
72
+
73
+ def describe(t, name):
74
+ print(name + ':')
75
+ print(prefix(1) + 'IsoSig: ' + t.isoSig())
76
+
77
+ std = StandardTriangulation.recognise(t)
78
+ if std:
79
+ mfd = std.manifold()
80
+ if mfd:
81
+ print(prefix(1) + 'Standard: ' + std.name(), '=', mfd.name())
82
+ else:
83
+ print(prefix(1) + 'Standard: ' + std.name(), '= ?')
84
+
85
+ # We assume the triangulation is connected.
86
+ c = t.component(0)
87
+
88
+ sub = AugTriSolidTorus.recognise(c)
89
+ if sub:
90
+ print(prefix(1) + 'Aug. tri. solid torus: ' + sub.name())
91
+ core = sub.core()
92
+ print(prefix(2) + 'Core:', core.tetrahedron(0).index(),
93
+ core.tetrahedron(1).index(), core.tetrahedron(2).index())
94
+ if sub.hasLayeredChain():
95
+ if sub.chainType() == AugTriSolidTorus.CHAIN_MAJOR:
96
+ print(prefix(2) + 'Chain type: major')
97
+ elif sub.chainType() == AugTriSolidTorus.CHAIN_AXIS:
98
+ print(prefix(2) + 'Chain type: axis')
99
+ else:
100
+ print(prefix(2) + 'Chain type: unknown')
101
+ else:
102
+ print(prefix(2) + 'No chain')
103
+
104
+ sub = LayeredChainPair.recognise(c)
105
+ if sub:
106
+ print(prefix(1) + 'Layered chain pair: ' + sub.name())
107
+ print(prefix(2) + 'Chain lengths:',
108
+ sub.chain(0).index(), sub.chain(1).index())
109
+
110
+ sub = LayeredLensSpace.recognise(c)
111
+ if sub:
112
+ print(prefix(1) + 'Layered lens space: ' + sub.name())
113
+ torus = sub.torus()
114
+ print(prefix(2) + 'LST:', torus.meridinalCuts(0),
115
+ torus.meridinalCuts(1), torus.meridinalCuts(2))
116
+ if sub.isSnapped():
117
+ print(prefix(2) + 'Snapped')
118
+ else:
119
+ print(prefix(2) + 'Twisted')
120
+
121
+ sub = LayeredLoop.recognise(c)
122
+ if sub:
123
+ print(prefix(1) + 'Layered loop: ' + sub.name())
124
+ if sub.isTwisted():
125
+ print(prefix(2) + 'Twisted,', sub.length())
126
+ print(prefix(2) + 'Hinge:', sub.hinge(0).index())
127
+ else:
128
+ print(prefix(2) + 'Untwisted,', sub.length())
129
+ print(prefix(2) + 'Hinges:', sub.hinge(0).index(),
130
+ sub.hinge(1).index())
131
+
132
+ sub = PlugTriSolidTorus.recognise(c)
133
+ if sub:
134
+ print(prefix(1) + 'Plugged tri. solid torus: ' + sub.name())
135
+ core = sub.core()
136
+ print(prefix(2) + 'Core:', core.tetrahedron(0).index(),
137
+ core.tetrahedron(1).index(), core.tetrahedron(2).index())
138
+ for i in range(3):
139
+ chain = sub.chain(i)
140
+ if chain:
141
+ if sub.chainType(i) == PlugTriSolidTorus.CHAIN_MAJOR:
142
+ print(prefix(2) + 'Chain ' + str(i) + ':',
143
+ chain.index(), '(major)')
144
+ else:
145
+ print(prefix(2) + 'Chain ' + str(i) + ':',
146
+ chain.index(), '(minor)')
147
+ else:
148
+ print(prefix(2) + 'Chain ' + str(i) + ': 0')
149
+ if sub.equatorType() == PlugTriSolidTorus.EQUATOR_MAJOR:
150
+ print(prefix(2) + 'Equator: major')
151
+ else:
152
+ print(prefix(2) + 'Equator: minor')
153
+
154
+ sub = BlockedSFS.recognise(t)
155
+ if sub:
156
+ print(prefix(1) + 'Blocked SFS')
157
+ print(prefix(2) + 'Region:')
158
+ describeSatRegion(sub.region())
159
+
160
+ sub = BlockedSFSLoop.recognise(t)
161
+ if sub:
162
+ print(prefix(1) + 'Blocked SFS Loop')
163
+ print(prefix(2) + 'Region:')
164
+ describeSatRegion(sub.region())
165
+ print(prefix(2) + 'Matching:', sub.matchingReln())
166
+
167
+ sub = BlockedSFSPair.recognise(t)
168
+ if sub:
169
+ print(prefix(1) + 'Blocked SFS Pair')
170
+ print(prefix(2) + 'Region 0:')
171
+ describeSatRegion(sub.region(0))
172
+ print(prefix(2) + 'Region 1:')
173
+ describeSatRegion(sub.region(1))
174
+ print(prefix(2) + 'Matching:', sub.matchingReln())
175
+
176
+ sub = BlockedSFSTriple.recognise(t)
177
+ if sub:
178
+ print(prefix(1) + 'Blocked SFS Triple')
179
+ print(prefix(2) + 'Central region:')
180
+ describeSatRegion(sub.centre())
181
+ print(prefix(2) + 'End region 0:')
182
+ describeSatRegion(sub.end(0))
183
+ print(prefix(2) + 'End region 1:')
184
+ describeSatRegion(sub.end(1))
185
+ print(prefix(2) + 'Matching 0:', sub.matchingReln(0))
186
+ print(prefix(2) + 'Matching 1:', sub.matchingReln(1))
187
+
188
+ for f in t.triangles():
189
+ for g in t.triangles():
190
+ if g == f:
191
+ continue
192
+ sub = PillowTwoSphere.recognise(f, g)
193
+ if sub:
194
+ print(prefix(1) + 'Pillow 2-sphere')
195
+ print(prefix(2) + 'Triangles:', f.index(), g.index())
196
+ print(prefix(2) + 'Equator:',
197
+ f.edge(0).index(), f.edge(1).index(), f.edge(2).index())
198
+
199
+ for a in t.tetrahedra():
200
+ for b in t.tetrahedra():
201
+ if b == a:
202
+ continue
203
+ sub = SnappedTwoSphere.recognise(a, b)
204
+ if sub:
205
+ print(prefix(1) + 'Snapped 2-sphere')
206
+ print(prefix(2) + 'Tet:', a.index(), b.index())
207
+ ball = sub.snappedBall(0)
208
+ print(prefix(2) + 'Equator:',
209
+ ball.tetrahedron().edge(ball.equatorEdge()).index())
210
+
211
+
212
+ for tet in t.tetrahedra():
213
+ sub = LayeredSolidTorus.recogniseFromBase(tet)
214
+ if sub:
215
+ print(prefix(1) + 'Layered solid torus: ' + sub.name())
216
+ print(prefix(2) + 'Base:', sub.base().index())
217
+ print(prefix(2) + 'Top:', sub.topLevel().index())
218
+ print(prefix(2) + 'Cuts:', sub.meridinalCuts(0),
219
+ sub.meridinalCuts(1), sub.meridinalCuts(2))
220
+ print(prefix(2) + 'Edges:',
221
+ sub.topEdge(0, 0), sub.topEdge(0, 1), '/',
222
+ sub.topEdge(1, 0), sub.topEdge(1, 1), '/',
223
+ sub.topEdge(2, 0), sub.topEdge(2, 1))
224
+
225
+ for tet in t.tetrahedra():
226
+ sub = SnappedBall.recognise(tet)
227
+ if sub:
228
+ print(prefix(1) + 'Snapped 3-ball')
229
+ print(prefix(2) + 'Tet:', tet.index())
230
+ print(prefix(2) + 'Internal faces:',
231
+ sub.internalFace(0), sub.internalFace(1))
232
+
233
+ for tet in t.tetrahedra():
234
+ for p in Perm4.S4:
235
+ if p[0] > p[3]:
236
+ continue
237
+ sub = SpiralSolidTorus.recognise(tet, p)
238
+ if sub:
239
+ if not sub.isCanonical():
240
+ continue
241
+ msg = 'Spiral:'
242
+ for i in range(sub.size()):
243
+ msg = msg + ' ' + str(sub.tetrahedron(i).index()) + \
244
+ '/' + str(sub.vertexRoles(i))
245
+ print(prefix(1) + msg)
246
+
247
+ def describeSig(sig):
248
+ describe(Triangulation3.fromIsoSig(sig), sig)
249
+
250
+ # The following isosigs are the complete output of tricensus -sNfit<n>:
251
+
252
+ t1 = [ 'bkaajj', 'bkaajn', 'bkaagb', 'bkaagj' ]
253
+ t2 = [ 'cMcabbjqw', 'cMcabbjxr', 'cMcabbjaj', 'cMcabbjak', 'cMcabbjqs',
254
+ 'cMcabbgqw', 'cMcabbgaj', 'cPcbbbaaa', 'cPcbbbaai', 'cPcbbbqxh',
255
+ 'cPcbbbajs', 'cPcbbbahh' ]
256
+ t3 = [ 'dLQbcbchhww', 'dLQbcbchxwn', 'dLQbcbchhjw', 'dLQbcbchxjn',
257
+ 'dLQbcbchhjs', 'dLQbcbchxjj', 'dLQbccchhrw' ]
258
+ t4 = [ 'eLAkbcbddhhwhr', 'eLAkbcbddhhwqj', 'eLAkbcbddhxwqs', 'eLAkbcbddhhjhr',
259
+ 'eLAkbcbddhhjqj', 'eLAkbcbddhhwqn', 'eLAkbcbddhxjqs', 'eLAkbcbddhhjhk',
260
+ 'eLAkbcbddhhjqn', 'eLAkbcbddhxjqw', 'eLAkbccddemkiw', 'eLAkbccddemker',
261
+ 'eLAkbccddrrhrr', 'eLAkbccddemkij', 'eLAkbccddemken', 'eLAkbccddrrhrn',
262
+ 'eLMkbcdddhhhqx', 'eLPkbcdddhrrnk', 'eLPkbcddddrwos' ]
263
+ t5 = [ 'fLAMcbcbdeehhwhhw', 'fLAMcbcbdeehhwqqs', 'fLAMcbcbdeehhwhxn',
264
+ 'fLAMcbcbdeehxwxhw', 'fLAMcbcbdeehhwqxk', 'fLAMcbcbdeehxwqhr',
265
+ 'fLAMcbcbdeehhjhhw', 'fLAMcbcbdeehhjhxn', 'fLAMcbcbdeehhjqqs',
266
+ 'fLAMcbcbdeehhjqxk', 'fLAMcbcbdeehhwhxj', 'fLAMcbcbdeehxjxhw',
267
+ 'fLAMcbcbdeehhwqxr', 'fLAMcbcbdeehxjqhr', 'fLAMcbcbdeehhjhhs',
268
+ 'fLAMcbcbdeehhjqqw', 'fLAMcbcbdeehhjhxj', 'fLAMcbcbdeehxjxhs',
269
+ 'fLAMcbcbdeehhjqxr', 'fLAMcbcbdeehxjqhk', 'fLAMcbccdeeemkihr',
270
+ 'fLAMcbccdeeemkehw', 'fLAMcbccdeerrhrhw', 'fLAMcbccdeeemkiqj',
271
+ 'fLAMcbccdeeemkexn', 'fLAMcbccdeerrhrxn', 'fLAMcbccdeeemkihn',
272
+ 'fLAMcbccdeeemkehj', 'fLAMcbccdeerrhrhj', 'fLAMcbccdeeemkiqn',
273
+ 'fLAMcbccdeeemkexj', 'fLAMcbccdeerrhrxj', 'fLLQcacddeenkaikr',
274
+ 'fLLQcacddeejkaink', 'fLLQcaceeedjkuxkn', 'fLLQcacddeejkaikk',
275
+ 'fLLQcaceeedjkuxkj', 'fLLQcacddeejkaikr', 'fLLQcacddeejkainj',
276
+ 'fLLQcacddeenkaink', 'fLLQcaceeednkuxkn', 'fLLQcacddeenkaikk',
277
+ 'fLLQcacdeeenkqxvn', 'fLLQcacdeeenkaqnv', 'fLLQcacdeeejkqxvn',
278
+ 'fLLQcacdeeejkaqnv', 'fLMPcbcdeeehhhhwr', 'fLLQcbeddeehhnkxx',
279
+ 'fLLQcbededexxnxwx', 'fLLQcbededexxrxwx', 'fLLQcbeddeehhokum',
280
+ 'fLLQcbcdeeehwkiiq', 'fvPQcdecedekrsnrs', 'fvPQcceddeerrnskr' ]
281
+
282
+ # The following isosigs are from tricensus -sNfit<n>, after stripping
283
+ # out the layered lens spaces:
284
+
285
+ t6 = [ 'gLALQbcbefffxxnnmxm', 'gLALQbcbefffxxnndxd', 'gLALQbcbefffxxnnnxn',
286
+ 'gLALQbcbefffhhwsmmq', 'gLALQbcbefffhhwsuuq', 'gLALQbcbefffhhwsssq',
287
+ 'gLALQbcbefffhxwnmxm', 'gLALQbcbefffhxwndxd', 'gLALQbcbefffhxwnnxn',
288
+ 'gLALQbcbefffxhnsmmq', 'gLALQbcbefffxhnsuuq', 'gLALQbcbefffxhnsssq',
289
+ 'gLALQbcbefffxxjnmxm', 'gLALQbcbefffxxjndxd', 'gLALQbcbefffxxjnnxn',
290
+ 'gLALQbcbefffhhjsmmq', 'gLALQbcbefffhhjsuuq', 'gLALQbcbefffhhjsssq',
291
+ 'gLALQbcbefffhxjnmxm', 'gLALQbcbefffhxjndxd', 'gLALQbcbefffhxjnnxn',
292
+ 'gLALQbcbefffxhjsmmq', 'gLALQbcbefffxhjsuuq', 'gLALQbcbefffxhjsssq',
293
+ 'gLLAQaceefefjkuxxnn', 'gLLAQbcedfeftsajqnj', 'gLLAQbcedfeftsqsqwj',
294
+ 'gLLAQbcedfeftsasqnj', 'gLLAQbcedfeftsqsxwk', 'gLLAQbcedfeftsasxnk',
295
+ 'gLLAQaceefefjkuxhnw', 'gLLAQbcedfeftsajhnr', 'gLLAQaceefefjkuxxnj',
296
+ 'gLLAQbcedfeftsajqnn', 'gLLAQbcedfeftsqsqww', 'gLLAQbcedfeftsasqnw',
297
+ 'gLLAQbcedfeftsqsxwr', 'gLLAQbcedfeftsasxnr', 'gLLAQaceefefjkuxhnj',
298
+ 'gLLAQbcedfeftsajhnn', 'gLLAQaceefefnkuxxnn', 'gLLAQbcedfeftsajqjj',
299
+ 'gLLAQbcedfeftsqsqsj', 'gLLAQbcedfeftsasqjj', 'gLLAQbcedfeftsqsxsk',
300
+ 'gLLAQbcedfeftsasxjk', 'gLLAQaceefefnkuxhnw', 'gLLAQbcedfeftsajhjr',
301
+ 'gLLAQaceefefnkuxxnj', 'gLLAQbcedfeftsajqjn', 'gLLAQbcedfeftsqsqsw',
302
+ 'gLLAQbcedfeftsasqjw', 'gLLAQbcedfeftsqsxsr', 'gLLAQbcedfeftsasxjr',
303
+ 'gLLAQaceefefnkuxhnj', 'gLLAQbcedfeftsajhjn', 'gLLPQcdcfeffqsjhqos',
304
+ 'gLLPQcdcfeffqsjahos', 'gLLPQcdcfeffhsrhqos', 'gLLPQcdcfeffhsrahos',
305
+ 'gLLPQcdcfeffqsnhqos', 'gLLPQcdcfeffqsnahos', 'gLLPQcdcfeffhsnhqos',
306
+ 'gLLPQcdcfeffhsnahos', 'gLLAQacdefffnkqxqlu', 'gLLAQacdefffnkxxxxa',
307
+ 'gLLAQacdefffnkaqqul', 'gLLAQacdefffnkaaxxa', 'gLLAQacdefffnbxxxxa',
308
+ 'gLLAQacdefffnsaaxxa', 'gLLAQbedeeffxxrxxhj', 'gLLAQbedeeffxxrxxhw',
309
+ 'gLLAQacdefffjkqxqlu', 'gLLAQacdefffjkxxxxa', 'gLLAQacdefffjkaqqul',
310
+ 'gLLAQacdefffjkaaxxa', 'gLLAQacdefffjbxxxxa', 'gLLAQacdefffjsaaxxa',
311
+ 'gLLMQacdefefjkankjj', 'gLLPQaceedffjkxkjnn', 'gLLMQacdefefjkaknkr',
312
+ 'gLLMQacdefefjkakkkj', 'gLLMQacdefefnkaknrr', 'gLLMQacdefefjkakkrk',
313
+ 'gLLMQacdefefjkankjk', 'gLLPQaceedffjkxkjnj', 'gLLMQacdefefjkaknrr',
314
+ 'gLLMQacdefefjkakkrj', 'gLLPQaceedffjkxknnn', 'gLLMQacdefefnkaknkr',
315
+ 'gLLMQacdefefjkakkkk', 'gLLMQacdefefnkakkrk', 'gLLMQacdefefjkankkk',
316
+ 'gLLMQacdefefjkaknkn', 'gLLPQaceedffnkxknnn', 'gLLMQacdefefnkaknkn',
317
+ 'gLLMQacdefefnkakkkk', 'gLLMQacdefefnkankkk', 'gLLAQbcdeeffxkrllck',
318
+ 'gLLAQbcdeeffxkrllkw', 'gLLAQbcdeeffxkrllcr', 'gLLAQbcdeeffxkrllkj',
319
+ 'gLALQbccefffemkbtli', 'gLALQbccefffemkbemi', 'gLALQbccefffemkbsri',
320
+ 'gLALQbcceffflpkksuc', 'gLALQbcceffflpkkeux', 'gLALQbcceffflpkktua',
321
+ 'gLALQbccfefflpkusue', 'gLALQbccefffrrhutwf', 'gLALQbccefffrrhuswe',
322
+ 'gLALQbccfeffrrhwhwa', 'gLALQbccfeffrrbwbwa', 'gLALQbccefffnknnkan',
323
+ 'gLMzQbcdefffhhhhhxq', 'gLLAQccedffflnxkxvc', 'gLLAQccedfffhwxrxvc',
324
+ 'gLLAQbeddfffhhnkarw', 'gLLAQbeddfffhhokxjo', 'gLLMQbeefffehhaxhqa',
325
+ 'gLLPQbefefefhhxxqxh', 'gLLMQbeefffehhaqaqa', 'gLLPQbefefefjjjhhhf',
326
+ 'gLLPQbefefefjjjsqss', 'gLLMQbeefffehharhra', 'gLLAQbcedffftsajhos',
327
+ 'gLLAQbdedfffdwqsujs', 'gLLAQbdedfffdraolrj', 'gLLAQbdedfffendolgn',
328
+ 'gLLMQbcefefftsamqqs', 'gLLMQbcdfefftsommkw', 'gLLMQbcdfefftsmmriq',
329
+ 'gLLAQbddefffdwpjapq', 'gLLAQbddefffdwolaor', 'gLLPQcdeffefhsxxatn',
330
+ 'gLLPQceeffefhlatdee', 'gLLPQceeffefhtatdee', 'gLLPQceeffefhlataee',
331
+ 'gvLQQcdfeeffbqaqghh', 'gvLQQcedffefqsqsqjs', 'gvLQQdefdeffrwawrhh',
332
+ 'gvLQQdefdeffrrawwhh', 'gvLQQdefdeffrqawxhh', 'gvLQQcdefeffjwnpjhe',
333
+ 'gvLQQcdfeeffhqaqhhh', 'gvLQQcdeffefnxnnnxx', 'gvLQQdefdeffxqaqxhh',
334
+ 'gvLQQdefedffxqawrgg', 'gvLQQcdefeffndnbejx', 'gvLQQcdefeffpinjkje',
335
+ 'gvLQQcdefeffninjije', 'gvLQQcdefeffbwnpghe', 'gvLQQcdefeffbwdpikk',
336
+ 'gvLQQcdefeffncnhchx', 'gvLQQcdefeffncpjcjs', 'gvLQQcdefeffnwnpkhe',
337
+ 'gvLQQedfedffrwawrhh', 'gvLQQcedffeffsfhqjh', 'gvLQQcdefeffffjmfuu',
338
+ 'gvLQQcdefeffffomfum', 'gvLQQcdefeffffomfhm', 'gvLQQcdfeeffjjassaa',
339
+ 'gvLQQcdefeffdwnplhe', 'gvLQQcdefeffnjndspx', 'gvLQQcedffefvksidsi' ]
340
+
341
+ # The following isosigs are hand-picked from the non-orientable census with
342
+ # 7 and 8 tetrahedra, to collect blocked SFS pairs, other more exotic
343
+ # block types and manifolds, and pillow 2-spheres:
344
+
345
+ t7 = [ 'hLALAkbcceffggrrhutwun', 'hLALAkbcceffggrrhutwdk',
346
+ 'hLAwPkbccdgfggemkijjjq', 'hLAwMkbccdfgggemkiwrwa',
347
+ 'hLAwPkbccdgfggrrhrnnnx', 'hLAwMkbccdfgggrrhrrwar',
348
+ 'hLAwMkbccdfgggrrbrqwar', 'hLALPkbccefgggrrhuwrfs',
349
+ 'hLALPkbccefgggrrhurgsf', 'hLAvQkbccefgggrrhhgrwb',
350
+ 'hLLAPkbedegfggjjhqjxox', 'hLLAPkbedegfggjjjqjsja',
351
+ 'hLvAQkbefegfgghaxqahha', 'hLvAQkbefegfggjajqassa',
352
+ 'hLvAQkbefegfggjajqashf', 'hvLPQkcdefggfgqhhvvaxq',
353
+ 'hvLPQkcdefggfgqhhxaaxq', 'hvLPQkcdefgfggqqjqqjqq',
354
+ 'hvLPQkcdefgfggqqxwrrrq', 'hvLPQkcdefgfggqqxqqxqq',
355
+ 'hvLPQkcdefgfggdeiqqxqp', 'hvLPQkcedfggfgnnnvvaxn',
356
+ 'hvLPQkcdefggfgtssdjkkw', 'hvLPQkcedfggfgpnnvvawn',
357
+ 'hvLPQkcdefgfggffxqqjqo', 'hvLPQkcedfgfggnnkffeiw',
358
+ 'hvLPQkcedfgfggnnkrweiw', 'hvLPQkcedfgfggwwrwrrrr',
359
+ 'hvLPQkcedfgfggwwrffsfk', 'hvLPQkcedfgfggnpkkdrid',
360
+ 'hvLAQkcdfegfggjqajpmpt', 'hvLAQkcdfegfggjqajooof',
361
+ 'hvLAQkcdfegfggjdajpmpd', 'hvLAQkcdegffggttncseas' ]
362
+
363
+ t8 = [ 'iLALAMcbcceffghhrrhutwuxn', 'iLALAMcbccfefghhrrhuhwhhw',
364
+ 'iLALMMcbcceffghhrrhuestxk', 'iLALAMcbcceffghhrrhutwdxk',
365
+ 'iLALAMcbccfefghhrrhuhwahr', 'iLALMMcbcceffghhrrhuesexn',
366
+ 'iLALAMcbcceffghhrrhutwdqj', 'iLALAMcbccfefghhrrhuhwaqj',
367
+ 'iLALMMcbcceffghhrrhuesehw', 'iLALAMcbcceffghhrrhutwuhw',
368
+ 'iLALAMcbccfefghhrrhuhwhxn', 'iLALMMcbcceffghhrrhuestqs',
369
+ 'iLALAMcbcceffghhrrhutwuxj', 'iLALAMcbccfefghhrrhuhwhhj',
370
+ 'iLALMMcbcceffghhrrhuestxr', 'iLALAMcbcceffghhrrhutwdxr',
371
+ 'iLALAMcbccfefghhrrhuhwahk', 'iLALMMcbcceffghhrrhuesexj',
372
+ 'iLALAMcbcceffghhrrhutwdqw', 'iLALAMcbccfefghhrrhuhwaqn',
373
+ 'iLALMMcbcceffghhrrhuesehs', 'iLALAMcbcceffghhrrhutwuhj',
374
+ 'iLALAMcbccfefghhrrhuhwhxj', 'iLALMMcbcceffghhrrhuestqw',
375
+ 'iLAwLQcbccdfgghhrrhrntxnk', 'iLAwMMcbccdfgghhrrhwwlukr',
376
+ 'iLAwLQcbccdfhhghrrhrnamnn', 'iLAwMMcbccdfgghhrrhrriarr',
377
+ 'iLAwLQcbccdfgghhrrhrntxkk', 'iLAwMMcbccdfgghhrrhwwlucw',
378
+ 'iLAwLQcbccdfhhhgrrhrnamkn', 'iLAwMMcbccdfgghhrrhrriaww',
379
+ 'iLAwLQcbccdfgghhrrhrntxkr', 'iLAwMMcbccdfgghhrrhwwlucs',
380
+ 'iLAwLQcbccdfhhhgrrhrnamkj', 'iLAwMMcbccdfgghhrrhrriaws',
381
+ 'iLAwLQcbccdfgghhrrhrntxnj', 'iLAwMMcbccdfgghhrrhwwlukn',
382
+ 'iLAwLQcbccdfhhghrrhrnamrn', 'iLAwMMcbccdfgghhrrhrriarn',
383
+ 'iLALzQcbccefhgghrrhuwuswr', 'iLAvAQcbccefghghrrhhwwhsn',
384
+ 'iLALLQcbcceggfhhrrhugsnuj', 'iLALzQcbccefhgghrrhuwdjjj',
385
+ 'iLAvAQcbccefghghrrhhwranw', 'iLALLQcbccegfghhrrhugjjdr',
386
+ 'iLALzQcbccefhgghrrhuwdswk', 'iLAvAQcbccefghghrrhhwrhrn',
387
+ 'iLALLQcbccegfghhrrhugjjuj', 'iLALzQcbccefhgghrrhuwdssj',
388
+ 'iLAvAQcbccefghghrrhhwrhnr', 'iLALLQcbccegfghhrrhugwjun',
389
+ 'iLALzQcbccefhgghrrhuwussr', 'iLAvAQcbccefghghrrhhwwhsr',
390
+ 'iLALLQcbcceggfhhrrhugsjuj', 'iLALzQcbccefhgghrrhuwdjkj',
391
+ 'iLAvAQcbccefghghrrhhwrans', 'iLALLQcbccegfghhrrhugwjdr',
392
+ 'iLALzQcbccefhgghrrhuwdswj', 'iLAvAQcbccefghghrrhhwrhnn',
393
+ 'iLALLQcbccegfghhrrhugwjuj', 'iLALzQcbccefhgghrrhuwdjjk',
394
+ 'iLAvAQcbccefghghrrhhwrarw', 'iLALLQcbccegfghhrrhugjjdk',
395
+ 'iLALzQcbccefhgghrrhuwdssk', 'iLAvAQcbccefghghrrhhwrhrr',
396
+ 'iLALLQcbccegfghhrrhugjjun', 'iLALzQcbccefhgghrrhuwussn',
397
+ 'iLAvAQcbccefghghrrhhwwhwr', 'iLALLQcbcceggfhhrrhugsjun',
398
+ 'iLLALQcadddhhghgjsajsaajn', 'iLLALQcadddhhghgjsajsaqjw',
399
+ 'iLAMLPcbccdeghhhemkehwrwa', 'iLAMLPcbccdeghhhrrhwqjpqp',
400
+ 'iLAMLPcbccdeghhhlpkuhrwar', 'iLAMLPcbccdeghhhemkexjjqj',
401
+ 'iLAMLPcbccdeghhhemkihrwar', 'iLAMLPcbccdeghhhlpklqwrwa',
402
+ 'iLAMLPcbccdeghhhemkiqjjqj', 'iLAMLPcbccdeghhhlpklxrrhr',
403
+ 'iLAMLPcbccdeghhhrrhrhwrwa', 'iLAMLPcbccdeghhhrrhwqjjqj',
404
+ 'iLAMLPcbccdeghhhrrhrxjjqj', 'iLAMLPcbccdeghhhrrbrhxrwa',
405
+ 'iLAwLQcbccdfhghhrrhrnhxnv', 'iLAwLQcbccdfhghhrrhrnahvn',
406
+ 'iLAwwQcbccdfghhhrrhrrxhgw', 'iLAwwQcbccdfghhhrrhrraxgw',
407
+ 'iLALzQcbccefhghhrrhuwusqx', 'iLALLQcbccegghhhrrhugstiu',
408
+ 'iLAvAQcbccefghhhrrhhwwhml', 'iLLLQPccegffghhhkknknknka',
409
+ 'iLLLQPccegffghhhkknqhknna', 'iLLvQQccdfeghghhhsaqllqxr',
410
+ 'iLLvQQccdfehghghhsaquuahr', 'iLLvQQccdfeghghhhsaqxaiin',
411
+ 'iLLvQQccdfeghhghhsaqlllmn', 'iLLvQQccdfeghhghhsawlllsn',
412
+ 'iLLvQQccdfeghghhhsawvvodn', 'iLLvQQccdfeghhghhsanqqesn',
413
+ 'iLLvQQccdfeghhghhsaqptttr', 'iLLvQQccdfehgghhhsaqeiiir',
414
+ 'iLLvQQccdfeghhghqxaqhhhxh', 'iLLvQQccdfehgghhqxaqaaaqh',
415
+ 'iLLvQQccdfeghhghqsaqhhhxj', 'iLLLMQcceefghghhkkaakqqvq',
416
+ 'iLLLMQcceefghghhjjaajedve', 'iLvMQPcbefgfehhhjaaaaaaas' ]
417
+
418
+ # The following isosigs are hand-picked from the 9-tetrahedron census to
419
+ # pick up blocked SFS triples:
420
+
421
+ t9 = [ 'jLALMLQbcceffhiiiemkbtilubc', 'jLALALQbccfefihiilpkusudego',
422
+ 'jLALALQbccfefihiilpkusuuero' ]
423
+
424
+ # TODO: We still have nothing in this list that contains a snapped 2-sphere
425
+ # (mainly because such things do not appear in the census).
426
+
427
+ for i in t1:
428
+ describeSig(i)
429
+
430
+ for i in t2:
431
+ describeSig(i)
432
+
433
+ for i in t3:
434
+ describeSig(i)
435
+
436
+ for i in t4:
437
+ describeSig(i)
438
+
439
+ for i in t5:
440
+ describeSig(i)
441
+
442
+ for i in t6:
443
+ describeSig(i)
444
+
445
+ for i in t7:
446
+ describeSig(i)
447
+
448
+ for i in t8:
449
+ describeSig(i)
450
+
451
+ for i in t9:
452
+ describeSig(i)
453
+