Skip to content

Commit 2999c75

Browse files
committed
Fix HPS construction test + triminx prism generator
1 parent 145adf6 commit 2999c75

3 files changed

Lines changed: 37 additions & 19 deletions

File tree

crates/hyperpuzzle/src/tests/hps_construction.rs

Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
use std::io::Write;
1+
use std::{io::Write, sync::Arc};
22

33
use eyre::Result;
4-
use hyperpuzzle_core::{Puzzle, PuzzleLintOutput};
4+
use hyperpuzzle_core::{Catalog, CatalogMetadata, Puzzle, PuzzleLintOutput};
55

66
use super::{load_new_catalog, time_it};
77

@@ -17,13 +17,13 @@ fn lint_all_puzzle_definitions() -> Result<(), String> {
1717

1818
let mut out = String::new();
1919

20-
for entry in &*catalog.puzzle_list {
20+
for entry in puzzles_in_list(&catalog) {
2121
if !LINT_EXPERIMENTAL && entry.tags.is_experimental() {
2222
continue;
2323
}
2424

2525
let puzzle_lint_output = time_it(format!("Linting puzzle {}", entry.id), || {
26-
PuzzleLintOutput::from_meta(entry)
26+
PuzzleLintOutput::from_meta(&entry)
2727
})
2828
.0;
2929

@@ -68,14 +68,14 @@ fn build_all_puzzles() -> Result<(), String> {
6868
let mut failed = vec![];
6969
let mut times = vec![];
7070
let t1 = std::time::Instant::now();
71-
for entry in &*catalog.puzzle_list {
71+
for entry in puzzles_in_list(&catalog) {
7272
if entry.tags.has_present("big") {
73-
println!("Skipping big puzzle {} ({})", entry.name, entry.id,);
73+
println!("Skipping big puzzle {} ({})", entry.name, entry.id);
7474
continue;
7575
}
7676

7777
if entry.tags.is_experimental() {
78-
println!("Skipping experimental puzzle {} ({})", entry.name, entry.id,);
78+
println!("Skipping experimental puzzle {} ({})", entry.name, entry.id);
7979
continue;
8080
}
8181

@@ -127,3 +127,21 @@ fn build_7x7x7x7() {
127127
result.expect("failed to build puzzle");
128128
println!("Done in {time:?}");
129129
}
130+
131+
fn puzzles_in_list(catalog: &Catalog) -> Vec<Arc<CatalogMetadata>> {
132+
catalog
133+
.puzzle_list
134+
.iter()
135+
.map(|entry| {
136+
if let Some(g) = &catalog.puzzles.generators.get(&entry.id.to_string())
137+
&& !g.params.is_empty()
138+
&& let Ok(default_generated_meta) =
139+
catalog.get_puzzle_metadata_blocking(&g.default_id())
140+
{
141+
default_generated_meta
142+
} else {
143+
Arc::clone(entry)
144+
}
145+
})
146+
.collect()
147+
}

hps/puzzles/ft_prisms.hps

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,8 @@ add_puzzle_generator(
7373
// Slice layers
7474
add_layers(#twists.base_axis, @util/layers.inclusive(h, -h, height))
7575
add_layers(#twists.side_axis, polygon.shallow_cut_depths(width))
76-
if #twists.opposite_side_axis != null {
77-
add_layers(#twists.opposite_side_axis, @util/layers.opposite_depths(polygon.shallow_cut_depths(width)))
76+
if #twists.side_opposite_axis != null {
77+
add_layers(#twists.side_opposite_axis, @util/layers.opposite_depths(polygon.shallow_cut_depths(width)))
7878
}
7979
}
8080
},
@@ -138,8 +138,8 @@ add_puzzle_generator(
138138
// Slice layers
139139
add_layers(#twists.base_axis, @util/layers.inclusive(h, -h, height))
140140
add_layers(#twists.side_axis, polygon.full_cut_depths(width))
141-
if #twists.opposite_side_axis != null {
142-
add_layers(#twists.opposite_side_axis, @util/layers.opposite_depths(polygon.full_cut_depths(width)))
141+
if #twists.side_opposite_axis != null {
142+
add_layers(#twists.side_opposite_axis, @util/layers.opposite_depths(polygon.full_cut_depths(width)))
143143
}
144144
}
145145
},
@@ -187,15 +187,15 @@ add_twist_system_generator(
187187
add_twist(base_axis, #sym.thru([1, 0]), gizmo_pole_distance = 1)
188188
add_twist(side_axis, #sym.thru([2, 0]), gizmo_pole_distance = 1)
189189

190-
opposite_side_axis = null
190+
side_opposite_axis = null
191191
if n == 3 {
192-
opposite_side_axis = add_axis(
193-
shape.opposite_side_pole,
194-
shape.opposite_side_names,
192+
side_opposite_axis = add_axis(
193+
shape.side_opposite_pole,
194+
shape.side_opposite_names,
195195
)
196-
add_twist(opposite_side_axis, #sym.thru([0, 2]), gizmo_pole_distance = 1)
196+
add_twist(side_opposite_axis, #sym.thru([0, 2]), gizmo_pole_distance = 1)
197197
}
198-
export opposite_side_axis
198+
export side_opposite_axis
199199
}
200200

201201
// Add global twist directions

hps/shapes/prisms/polygonal_prism.hps

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@ export fn new(n: Nat, t: Transform) -> Map {
3636
export side_pole = polygon.edge_pole
3737
export side_names = "a${polygon.edge_names}"
3838

39-
export opposite_side_pole = polygon.opposite_edge_pole
40-
export opposite_side_names = "a${polygon.opposite_edge_names}"
39+
export side_opposite_pole = polygon.edge_opposite_pole
40+
export side_opposite_names = "a${polygon.edge_opposite_names}"
4141
}
4242

4343
export fn facet_colors_list(n: Nat) -> List[Map] {

0 commit comments

Comments
 (0)