nodeslicer/tests/visual
2026-09-27 18:04:45 +03:00
..
images transforms and path operations 2026-09-27 18:04:45 +03:00
__init__.py transforms and path operations 2026-09-27 18:04:45 +03:00
index.html transforms and path operations 2026-09-27 18:04:45 +03:00
README.md transforms and path operations 2026-09-27 18:04:45 +03:00
visualize_path_operations.py transforms and path operations 2026-09-27 18:04:45 +03:00

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.

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