From 4a463fd8b95a12de0cbf7abcdb37d35243f3c4d9 Mon Sep 17 00:00:00 2001
From: Adrian Mariano <avm4@cornell.edu>
Date: Sat, 11 Sep 2021 19:35:05 -0400
Subject: [PATCH] fix tests

---
 tests/test_geometry.scad   | 20 ++++-----
 tests/test_primitives.scad |  4 +-
 tests/test_transforms.scad | 85 +-------------------------------------
 vnf.scad                   | 49 ----------------------
 4 files changed, 12 insertions(+), 146 deletions(-)

diff --git a/tests/test_geometry.scad b/tests/test_geometry.scad
index 8dc44d8..86a459c 100644
--- a/tests/test_geometry.scad
+++ b/tests/test_geometry.scad
@@ -7,7 +7,6 @@ include <../std.scad>
 
 
 test_point_on_segment();
-test_point_left_of_line2d();
 test_collinear();
 test_point_line_distance();
 test_segment_distance();
@@ -31,7 +30,6 @@ test_point_plane_distance();
 
 test__general_plane_line_intersection();
 test_plane_line_angle();
-test_normalize_plane();
 test_plane_line_intersection();
 test_polygon_line_intersection();
 test_plane_intersection();
@@ -90,13 +88,13 @@ function info_str(list,i=0,string=chr(10)) =
     : info_str(list,i+1,str(string,str(list[i][0],_valstr(list[i][1]),chr(10))));
 
 
-module test_normalize_plane(){
+module test__normalize_plane(){
     plane = rands(-5,5,4,seed=333)+[10,0,0,0];
-    plane2 = normalize_plane(plane);
+    plane2 = _normalize_plane(plane);
     assert_approx(norm(point3d(plane2)),1);
     assert_approx(plane*plane2[3],plane2*plane[3]);
 }
-*test_normalize_plane();
+test__normalize_plane();
 
 module test_plane_line_intersection(){
     line = [rands(-1,1,3,seed=74),rands(-1,1,3,seed=99)+[2,0,0]];
@@ -148,7 +146,7 @@ module test_plane_intersection(){
 module test_plane_offset(){
     plane = rands(-1,1,4)+[2,0,0,0]; // a valid plane
     info = info_str([["plane = ",plane]]);
-    assert_approx(plane_offset(plane), normalize_plane(plane)[3],info);
+    assert_approx(plane_offset(plane), _normalize_plane(plane)[3],info);
     assert_approx(plane_offset([1,1,1,1]), 1/sqrt(3),info);
 }
 *test_plane_offset();
@@ -301,12 +299,12 @@ module test_point_on_segment() {
 *test_point_on_segment();
 
 
-module test_point_left_of_line2d() {
-    assert(point_left_of_line2d([ -3,  0], [[-10,-10], [10,10]]) > 0);
-    assert(point_left_of_line2d([  0,  0], [[-10,-10], [10,10]]) == 0);
-    assert(point_left_of_line2d([  3,  0], [[-10,-10], [10,10]]) < 0);
+module test__point_left_of_line2d() {
+    assert(_point_left_of_line2d([ -3,  0], [[-10,-10], [10,10]]) > 0);
+    assert(_point_left_of_line2d([  0,  0], [[-10,-10], [10,10]]) == 0);
+    assert(_point_left_of_line2d([  3,  0], [[-10,-10], [10,10]]) < 0);
 }
-*test_point_left_of_line2d();
+test__point_left_of_line2d();
 
 module test_collinear() {
     assert(collinear([-10,-10], [-15, -16], [10,10]) == false);
diff --git a/tests/test_primitives.scad b/tests/test_primitives.scad
index e8671be..b90cf24 100644
--- a/tests/test_primitives.scad
+++ b/tests/test_primitives.scad
@@ -17,8 +17,8 @@ module test_circle() {
     for (pt = circle(r=100)) {
         assert(approx(norm(pt),100));
     }
-    assert(polygon_is_clockwise(circle(d=200)));
-    assert(polygon_is_clockwise(circle(r=100)));
+    assert(is_polygon_clockwise(circle(d=200)));
+    assert(is_polygon_clockwise(circle(r=100)));
     assert(len(circle(d=100,$fn=6)) == 6);
     assert(len(circle(d=100,$fn=36)) == 36);
 }
diff --git a/tests/test_transforms.scad b/tests/test_transforms.scad
index a7e9cb8..947e695 100644
--- a/tests/test_transforms.scad
+++ b/tests/test_transforms.scad
@@ -217,32 +217,6 @@ module test_zflip() {
 test_zflip();
 
 
-module test_xyflip() {
-    assert_approx(xyflip(), [[0,1,0,0],[1,0,0,0],[0,0,1,0],[0,0,0,1]]);
-    assert_approx(xyflip(p=[1,2,3]), [2,1,3]);
-    // Verify that module at least doesn't crash.
-    xyflip() nil();
-}
-test_xyflip();
-
-
-module test_xzflip() {
-    assert_approx(xzflip(), [[0,0,1,0],[0,1,0,0],[1,0,0,0],[0,0,0,1]]);
-    assert_approx(xzflip(p=[1,2,3]), [3,2,1]);
-    // Verify that module at least doesn't crash.
-    xzflip() nil();
-}
-test_xzflip();
-
-
-module test_yzflip() {
-    assert_approx(yzflip(), [[1,0,0,0],[0,0,1,0],[0,1,0,0],[0,0,0,1]]);
-    assert_approx(yzflip(p=[1,2,3]), [1,3,2]);
-    // Verify that module at least doesn't crash.
-    yzflip() nil();
-}
-test_yzflip();
-
 
 module test_rot() {
     pts2d = 50 * [for (x=[-1,0,1],y=[-1,0,1]) [x,y]];
@@ -403,67 +377,10 @@ module test_zrot() {
 test_zrot();
 
 
-module test_xyrot() {
-    vals = [-270,-135,-90,45,0,30,45,90,135,147,180];
-    path = path3d(pentagon(d=100), 50);
-    for (a=vals) {
-        m = affine3d_rot_by_axis(RIGHT+BACK,a);
-        assert_approx(xyrot(a), m);
-        assert_approx(xyrot(a, p=path[0]), apply(m, path[0]));
-        assert_approx(xyrot(a, p=path), apply(m, path));
-        // Verify that module at least doesn't crash.
-        xyrot(a) nil();
-    }
-}
-test_xyrot();
-
-
-module test_xzrot() {
-    vals = [-270,-135,-90,45,0,30,45,90,135,147,180];
-    path = path3d(pentagon(d=100), 50);
-    for (a=vals) {
-        m = affine3d_rot_by_axis(RIGHT+UP,a);
-        assert_approx(xzrot(a), m);
-        assert_approx(xzrot(a, p=path[0]), apply(m, path[0]));
-        assert_approx(xzrot(a, p=path), apply(m, path));
-        // Verify that module at least doesn't crash.
-        xzrot(a) nil();
-    }
-}
-test_xzrot();
-
-
-module test_yzrot() {
-    vals = [-270,-135,-90,45,0,30,45,90,135,147,180];
-    path = path3d(pentagon(d=100), 50);
-    for (a=vals) {
-        m = affine3d_rot_by_axis(BACK+UP,a);
-        assert_approx(yzrot(a), m);
-        assert_approx(yzrot(a, p=path[0]), apply(m, path[0]));
-        assert_approx(yzrot(a, p=path), apply(m, path));
-        // Verify that module at least doesn't crash.
-        yzrot(a) nil();
-    }
-}
-test_yzrot();
-
-
-module test_xyzrot() {
-    vals = [-270,-135,-90,45,0,30,45,90,135,147,180];
-    path = path3d(pentagon(d=100), 50);
-    for (a=vals) {
-        m = affine3d_rot_by_axis(RIGHT+BACK+UP,a);
-        assert_approx(xyzrot(a), m);
-        assert_approx(xyzrot(a, p=path[0]), apply(m, path[0]));
-        assert_approx(xyzrot(a, p=path), apply(m, path));
-        // Verify that module at least doesn't crash.
-        xyzrot(a) nil();
-    }
-}
-test_xyzrot();
 
 module test_frame_map() {
     assert(approx(frame_map(x=[1,1,0], y=[-1,1,0]), affine3d_zrot(45)));
+    assert(approx(frame_map(x=[0,1,0], y=[0,0,1]), rot(v=[1,1,1],a=120)));
 }
 test_frame_map();
 
diff --git a/vnf.scad b/vnf.scad
index e59b328..df9a010 100644
--- a/vnf.scad
+++ b/vnf.scad
@@ -773,35 +773,6 @@ function _split_polygon_at_y(poly, y) =
     ) out;
 
 
-function _split_polygon_at_z(poly, z) =
-    let(
-        zs = subindex(poly,2)
-    ) (min(zs) >= z || max(zs) <= z)? [poly] :
-    let(
-        poly2 = [
-            for (p = pair(poly,true)) each [
-                p[0],
-                if(
-                    (p[0].z < z && p[1].z > z) ||
-                    (p[1].z < z && p[0].z > z)
-                ) let(
-                    u = (z - p[0].z) / (p[1].z - p[0].z)
-                ) [
-                    u*(p[1].x-p[0].x)+p[0].x,
-                    u*(p[1].y-p[0].y)+p[0].y,
-                    z,  // Important for later exact match tests
-                ]
-            ]
-        ],
-        out1 = [for (p = poly2) if(p.z <= z) p],
-        out2 = [for (p = poly2) if(p.z >= z) p],
-        out3 = [
-            if (len(out1)>=3) each split_path_at_self_crossings(close_path(out1), closed=false),
-            if (len(out2)>=3) each split_path_at_self_crossings(close_path(out2), closed=false),
-        ],
-        out = [for (p=out3) if (len(p) > 2) cleanup_path(p)]
-    ) out;
-
 
 /// Function: _split_polygons_at_each_x()
 // Usage:
@@ -845,26 +816,6 @@ function _split_polygons_at_each_y(polys, ys, _i=0) =
     );
 
 
-/// Internal Function: _split_polygons_at_each_z()
-// Usage:
-//   splitpolys = split_polygons_at_each_z(polys, zs);
-/// Topics: Geometry, Polygons, Intersections
-// Description:
-//   Given a list of 3D polygons, splits all of them wherever they cross any Z value given in `zs`.
-// Arguments:
-//   polys = A list of 3D polygons to split.
-//   zs = A list of scalar Z values to split at.
-function split_polygons_at_each_z(polys, zs, _i=0) =
-    assert( [for (poly=polys) if (!is_path(poly,3)) 1] == [], "Expects list of 3D paths.")
-    assert( is_vector(zs), "The split value list should contain only numbers." )
-    _i>=len(zs)? polys :
-    split_polygons_at_each_z(
-        [
-            for (poly = polys)
-            each _split_polygon_at_z(poly, zs[_i])
-        ], zs, _i=_i+1
-    );
-
 
 // Function&Module: vnf_validate()
 // Usage: As Function