Move root experiment scripts into their papers' experiments/ folders
Relocate the standalone Python scripts from the repo root into the
experiments/ folder of the paper each one belongs to:
plane_depth_sequencing/experiments/
plane_depth_sequencing.py, draw_quad_sequence.py,
draw_quad_sequence_diagram.py, extract_sequence.py,
plane_depth_sequencing_figure.py, quad_sequence_coloring_check.py
colored_edge_flip_classes/experiments/ colored_edge_flip_class_survey.py
colored_pentagon_contractions/experiments/ colored_pentagon_contractions.py
plane_diamond_coloring/experiments/ plane_diamond_coloring.py
Each file that imports lib.* (still in the repo root) or the sibling
plane_depth_sequencing module gets a sys.path shim that prepends the
repo root (computed three levels up) and, where needed, its own dir.
Imports verified to resolve from a neutral working directory.
flip_symmetric_census.py is intentionally left in the root.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
"""Extract sequence data for diagram."""
|
||||
import os, sys
|
||||
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) # sibling experiment modules
|
||||
from sage.all import graphs # type: ignore
|
||||
from sage.misc.randstate import set_random_seed # type: ignore
|
||||
from plane_depth_sequencing import (
|
||||
quadrilateral_sequencing,
|
||||
_quad_vertices,
|
||||
_level_edge_of_face,
|
||||
_quad_type
|
||||
)
|
||||
|
||||
set_random_seed(42)
|
||||
g = graphs.RandomTriangulation(7)
|
||||
g.is_planar(set_embedding=True)
|
||||
embedding = g.get_embedding()
|
||||
faces = g.faces(embedding)
|
||||
outer_cycle = [u for u, _ in faces[0]]
|
||||
|
||||
result = quadrilateral_sequencing(g, outer_cycle)
|
||||
sequence = result['sequence']
|
||||
move_codes = result['move_codes']
|
||||
depth_labelling = result['depth_labelling']
|
||||
|
||||
move_names = {0: "AD", 1: "LA", 2: "J", 3: "RC"}
|
||||
|
||||
print("sequence_data = [")
|
||||
for i, quad in enumerate(sequence[:4]):
|
||||
quad_type = _quad_type(quad, depth_labelling)
|
||||
f1, f2 = list(quad)
|
||||
level_edge = _level_edge_of_face(f1, depth_labelling)
|
||||
e1, e2 = list(level_edge)
|
||||
a = next(v for v in f1 if v not in level_edge)
|
||||
b = next(v for v in f2 if v not in level_edge)
|
||||
ordered_verts = [e1, a, e2, b]
|
||||
move = move_names[move_codes[i-1]] if i > 0 else ""
|
||||
depths_str = [depth_labelling[v] for v in ordered_verts]
|
||||
print(f' {{"vertices": {sorted(_quad_vertices(quad))}, "ordered": {ordered_verts}, "depths": {depths_str}, "move": "Q_{i+1}^{{{move}}}", "type": "{quad_type}"}},')
|
||||
print("]")
|
||||
Reference in New Issue
Block a user