3.4 KiB
3.4 KiB
NodeSlicer Path Operations Visual Test Suite
This directory contains visual verifications and plots for all operations in the Path Operations node:
- Maximum Coverage (Union): Boolean union of all polygons layer-by-layer.
- Minimum Coverage: Per-layer intersection of all objects having paths on that layer (ignoring empty layers so single-object layers are preserved intact).
- Intersection: Standard boolean intersection across all inputs.
- Subtract: Difference subtracting subsequent inputs from first input.
- Exclusive Or (XOR): Symmetric difference across inputs.
- Zip Paths: Layer-by-layer toolpath stream interleaving.
- Extend Paths: Sequential toolpath concatenation.
Visual Gallery
Open index.html in your web browser to view the complete visual report with side-by-side before/after plots.
Summary of Test Cases
| ID | Operation | Test Title | Status | Image |
|---|---|---|---|---|
| TC01 | MAX_COVERAGE |
Maximum Coverage: Overlapping Squares | PASS | 01_max_coverage_overlapping_squares.png |
| TC02 | MAX_COVERAGE |
Maximum Coverage: Donut with Hole + Solid Box | PASS | 02_max_coverage_donut_and_box.png |
| TC03 | MIN_COVERAGE |
Minimum Coverage: Multi-Layer Staggered Objects | PASS | 03_min_coverage_staggered_layers.png |
| TC04 | MIN_COVERAGE |
Minimum Coverage: Two Overlapping Squares | PASS | 04_min_coverage_overlapping_squares.png |
| TC05 | MIN_COVERAGE |
Minimum Coverage: Single Object with Multiple Islands | PASS | 05_min_coverage_single_object_islands.png |
| TC06 | INTERSECTION |
Boolean Intersection: Multi-Layer Staggered | PASS | 06_intersection_staggered_layers.png |
| TC07 | SUBTRACT |
Subtract: Difference Creating Interior Hole | PASS | 07_subtract_hole_creation.png |
| TC08 | XOR |
Exclusive Or (XOR): Symmetric Difference | PASS | 08_xor_overlapping_squares.png |
| TC09 | ZIP |
Zip Paths: Layer-by-Layer Interleaving | PASS | 09_zip_paths_layer_interleaving.png |
| TC10 | EXTEND |
Extend Paths: Sequential Concatenation | PASS | 10_extend_paths_sequential.png |
| TC11 | MAX_COVERAGE |
Maximum Coverage: Concentric Perimeters (2 Inputs) | PASS | 11_max_coverage_concentric_perimeters.png |
| TC12 | MIN_COVERAGE |
Minimum Coverage: Concentric Perimeters (2 Inputs) | PASS | 12_min_coverage_concentric_perimeters.png |
| TC13 | MAX_COVERAGE |
Maximum Coverage: Single Input with Concentric Shells | PASS | 13_max_coverage_single_input_perimeters.png |
| TC14 | MIN_COVERAGE |
Minimum Coverage: Single Input with Concentric Shells | PASS | 14_min_coverage_single_input_perimeters.png |
Running Visual Tests
To regenerate all images and the HTML gallery, run:
.venv/bin/python -m unittest tests.test_visual_operations