mirror of
https://github.com/JustinSDK/dotSCAD.git
synced 2025-08-12 09:44:16 +02:00
refactor to use assertEqualNum
This commit is contained in:
@@ -35,7 +35,7 @@ function round_pts(points, float_digits = 4) =
|
||||
let(n = pow(10, float_digits))
|
||||
[for(pt = points) mul_round_pt(pt, n) / n];
|
||||
|
||||
module assertEqualPoint(expected, actual, float_digits = 4) {
|
||||
module assertEqualPoint(expected, actual, epsilon = 0.0001) {
|
||||
leng_expected = len(expected);
|
||||
leng_actual = len(actual);
|
||||
|
||||
@@ -46,27 +46,19 @@ module assertEqualPoint(expected, actual, float_digits = 4) {
|
||||
", but: ", leng_actual)
|
||||
);
|
||||
} else {
|
||||
n = pow(10, float_digits);
|
||||
|
||||
shifted_expected = mul_round_pt(
|
||||
expected, n
|
||||
);
|
||||
|
||||
shifted_actual = mul_round_pt(
|
||||
actual, n
|
||||
);
|
||||
|
||||
if(shifted_expected != shifted_actual) {
|
||||
fail(
|
||||
"Point",
|
||||
str("expected: ", shifted_expected / n,
|
||||
", but: ", shifted_actual / n)
|
||||
);
|
||||
for(elem = (expected - actual)) {
|
||||
if(abs(elem) > epsilon) {
|
||||
fail(
|
||||
"Point",
|
||||
str("expected: ", expected,
|
||||
", but: ", actual)
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module assertEqualPoints(expected, actual, float_digits = 4) {
|
||||
module assertEqualPoints(expected, actual, epsilon = 0.0001) {
|
||||
leng_expected = len(expected);
|
||||
leng_actual = len(actual);
|
||||
|
||||
@@ -78,20 +70,17 @@ module assertEqualPoints(expected, actual, float_digits = 4) {
|
||||
);
|
||||
} else {
|
||||
for(i = [0:len(actual) - 1]) {
|
||||
assertEqualPoint(expected[i], actual[i], float_digits);
|
||||
assertEqualPoint(expected[i], actual[i], epsilon);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module assertEqual(expected, actual, float_digits = 4) {
|
||||
r_expected = is_num(expected) ? round_n(expected, float_digits) : expected;
|
||||
r_actual = is_num(actual) ? round_n(actual, float_digits) : actual;
|
||||
|
||||
if(r_expected != r_actual) {
|
||||
module assertEqualNum(expected, actual, epsilon = 0.0001) {
|
||||
if(abs(expected - actual) > epsilon) {
|
||||
fail(
|
||||
"Equality",
|
||||
str("expected: ", r_expected,
|
||||
", but: ", r_actual)
|
||||
str("expected: ", expected,
|
||||
", but: ", actual)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@@ -14,7 +14,7 @@ module test_archimedean_spiral() {
|
||||
|
||||
expected_points = [[-5, 0], [-3.3333, -5.7735], [1.9153, -7.6542], [6.9287, -5.6121], [9.7591, -1.1017], [9.7906, 4.1666], [7.2895, 8.7588], [3.0136, 11.7181], [-2.0901, 12.5895], [-7.0994, 11.3524], [-11.25, 8.3116], [-14.0047, 3.9802], [-15.0734, -1.03], [-14.3991, -6.0996], [-12.1214, -10.6703], [-8.5301, -14.2915], [-4.013, -16.6466], [0.9931, -17.5619], [6.0464, -17.0006], [10.7367, -15.0488], [14.7127, -11.8925], [17.7005, -7.7927], [19.5144, -3.0584], [20.0591, 1.9792], [19.327, 6.9904], [17.3894, 11.6667], [14.385, 15.7377], [10.5054, 18.9824], [5.9805, 21.2371], [1.0622, 22.3994], [-3.9897, 22.4281], [-8.9216, 21.3404], [-13.4974, 19.2066], [-17.5086, 16.1426], [-20.7812, 12.3017], [-23.1817, 7.8645], [-24.6193, 3.0301], [-25.0472, -1.9943], [-24.4614, -7.0016], [-22.8983, -11.7935], [-20.4309, -16.1876], [-17.1632, -20.0228], [-13.2255, -23.1648], [-8.7672, -25.5085], [-3.9513, -26.9808], [1.0527, -27.5407], [6.0742, -27.1795], [10.9476, -25.9189], [15.5171, -23.8091], [19.6415, -20.9256], [23.1974, -17.3655], [26.0825, -13.2437], [28.2172, -8.6885], [29.5463, -3.8373], [30.0392, 1.168], [29.6895, 6.1848], [28.5147, 11.0741], [26.5539, 15.704], [23.8664, 19.9529], [20.5291, 23.7124], [16.6337, 26.8894], [12.2839, 29.4078], [7.5924, 31.21], [2.6774, 32.2573], [-2.3402, 32.5302], [-7.3397, 32.0283], [-12.2036, 30.7692], [-16.8203, 28.7878], [-21.0862, 26.1347], [-24.9077, 22.8745], [-28.2033, 19.084], [-30.9046, 14.8497], [-32.9575, 10.2661], [-34.3228, 5.4333], [-34.9764, 0.4543], [-34.9096, -4.5667], [-34.1286, -9.5267], [-32.6536, -14.326], [-30.5187, -18.8701], [-27.77, -23.0711], [-24.4648, -26.8496], [-20.67, -30.1356], [-16.4604, -32.8699], [-11.9176, -35.0046], [-7.1276, -36.5038], [-2.1794, -37.3437], [2.8365, -37.513], [7.83, -37.0127], [12.713, -35.8552], [17.4007, -34.0647], [21.8134, -31.6755], [25.8769, -28.7318], [29.5245, -25.2864], [32.6974, -21.3997], [35.3456, -17.1384], [37.4285, -12.5742], [38.9152, -7.7828], [39.7851, -2.8422], [40.0275, 2.1685], [39.6416, 7.1699]];
|
||||
|
||||
expected_angles = [180, 240, 285, 321, 354, 384, 411, 436, 460, 483, 504, 525, 544, 563, 582, 600, 617, 634, 650, 666, 682, 697, 712, 726, 740, 754, 768, 782, 795, 808, 821, 833, 846, 858, 870, 882, 893, 905, 916, 928, 939, 950, 961, 972, 982, 993, 1003, 1013, 1024, 1034, 1044, 1054, 1063, 1073, 1083, 1092, 1102, 1111, 1120, 1130, 1139, 1148, 1157, 1166, 1175, 1183, 1192, 1201, 1209, 1218, 1226, 1235, 1243, 1252, 1260, 1268, 1276, 1284, 1292, 1300, 1308, 1316, 1324, 1332, 1339, 1347, 1355, 1362, 1370, 1378, 1385, 1393, 1400, 1407, 1415, 1422, 1429, 1436, 1444, 1451];
|
||||
expected_angles = [181, 241, 285, 321, 354, 384, 411, 436, 460, 483, 504, 525, 544, 563, 582, 600, 617, 634, 650, 666, 682, 697, 712, 726, 740, 754, 768, 782, 795, 808, 821, 833, 846, 858, 870, 882, 893, 905, 916, 928, 939, 950, 961, 972, 982, 993, 1003, 1013, 1024, 1034, 1044, 1054, 1063, 1073, 1083, 1092, 1102, 1111, 1120, 1130, 1139, 1148, 1157, 1166, 1175, 1183, 1192, 1201, 1209, 1218, 1226, 1235, 1243, 1252, 1260, 1268, 1276, 1284, 1292, 1300, 1308, 1316, 1324, 1332, 1339, 1347, 1355, 1362, 1370, 1378, 1385, 1393, 1400, 1407, 1415, 1422, 1429, 1436, 1444, 1451];
|
||||
|
||||
actual_points = [for(pa = points_angles) pa[0]];
|
||||
// ceil for annoying float errors when echoing...XD
|
||||
@@ -23,7 +23,7 @@ module test_archimedean_spiral() {
|
||||
assertEqualPoints(expected_points, actual_points);
|
||||
|
||||
for(i = [0:0]) {
|
||||
assertEqual(expected_angles[i], actual_angles[i]);
|
||||
assertEqualNum(expected_angles[i], actual_angles[i]);
|
||||
}
|
||||
}
|
||||
|
||||
|
File diff suppressed because one or more lines are too long
@@ -13,7 +13,7 @@ module test_bend() {
|
||||
expected_angle = 11.25;
|
||||
|
||||
assertEqualPoints(expected_points, points);
|
||||
assertEqual(expected_angle, angle);
|
||||
assertEqualNum(expected_angle, angle);
|
||||
}
|
||||
|
||||
bend(size = [x, y, z], angle = 270)
|
||||
|
@@ -13,11 +13,11 @@ module test_ellipse_extrude() {
|
||||
expected_zs = [0, 0.392295, 0.782172, 1.16723, 1.54508, 1.91342, 2.26995, 2.61249, 2.93893, 3.24724, 3.53553, 3.80203, 4.04508, 4.2632, 4.45503, 4.6194, 4.75528, 4.86185, 4.93844, 4.98459, 5];
|
||||
|
||||
for(i = [0:len(expected_fs) - 1]) {
|
||||
assertEqual(expected_fs[i], child_fs[i]);
|
||||
assertEqualNum(expected_fs[i], child_fs[i]);
|
||||
}
|
||||
|
||||
for(i = [0:len(expected_zs) - 1]) {
|
||||
assertEqual(expected_zs[i], pre_zs[i]);
|
||||
assertEqualNum(expected_zs[i], pre_zs[i]);
|
||||
}
|
||||
|
||||
|
||||
|
@@ -23,7 +23,7 @@ module test_golden_spiral() {
|
||||
assertEqualPoints(expected_pts, actual_pts);
|
||||
|
||||
for(i = [0:len(expected_angles) - 1]) {
|
||||
assertEqual(
|
||||
assertEqualNum(
|
||||
expected_angles[i],
|
||||
actual_angles[i]
|
||||
);
|
||||
|
@@ -10,7 +10,7 @@ module test_hexagons_lv2() {
|
||||
include <hexagons.scad>;
|
||||
|
||||
module test_each_hexagon(hex_r, pts_all_lines) {
|
||||
assertEqual(19, hex_r);
|
||||
assertEqualNum(19, hex_r);
|
||||
|
||||
expects = [
|
||||
[[-34.641, 0], [0, 0], [34.641, 0]],
|
||||
@@ -40,7 +40,7 @@ module test_hexagons_lv3() {
|
||||
include <hexagons.scad>;
|
||||
|
||||
module test_each_hexagon(hex_r, pts_all_lines) {
|
||||
assertEqual(19, hex_r);
|
||||
assertEqualNum(19, hex_r);
|
||||
|
||||
expects = [
|
||||
[[-69.282, 0], [-34.641, 0], [0, 0], [34.641, 0], [69.282, 0]],
|
||||
|
@@ -12,7 +12,7 @@ module test_hull_polyline2d() {
|
||||
module test_line_segment(index, point1, point2, radius) {
|
||||
assertEqualPoint(points[index - 1], point1);
|
||||
assertEqualPoint(points[index], point2);
|
||||
assertEqual(line_width, radius * 2);
|
||||
assertEqualNum(line_width, radius * 2);
|
||||
}
|
||||
|
||||
hull_polyline2d(
|
||||
|
@@ -17,7 +17,7 @@ module test_hull_polyline3d() {
|
||||
module test_line_segment(index, point1, point2, radius) {
|
||||
assertEqualPoint(points[index - 1], point1);
|
||||
assertEqualPoint(points[index], point2);
|
||||
assertEqual(thickness, radius * 2);
|
||||
assertEqualNum(thickness, radius * 2);
|
||||
}
|
||||
|
||||
hull_polyline3d(
|
||||
@@ -47,7 +47,7 @@ module test_hull_polyline3d_helix() {
|
||||
module test_line_segment(index, point1, point2, radius) {
|
||||
assertEqualPoint(points[index - 1], point1);
|
||||
assertEqualPoint(points[index], point2);
|
||||
assertEqual(thickness, radius * 2);
|
||||
assertEqualNum(thickness, radius * 2);
|
||||
}
|
||||
|
||||
for(i = [0:7]) {
|
||||
|
@@ -19,10 +19,10 @@ module test_line2d() {
|
||||
}
|
||||
|
||||
module test_line2d_line(angle, length, width, frags) {
|
||||
assertEqual(0, angle);
|
||||
assertEqual(5, length);
|
||||
assertEqual(1, width);
|
||||
assertEqual(24, frags);
|
||||
assertEqualNum(0, angle);
|
||||
assertEqualNum(5, length);
|
||||
assertEqualNum(1, width);
|
||||
assertEqualNum(24, frags);
|
||||
}
|
||||
|
||||
line2d(p1 = p1, p2 = p2, width = width);
|
||||
@@ -41,10 +41,10 @@ module test_line2d() {
|
||||
}
|
||||
|
||||
module test_line2d_line(angle, length, width, frags) {
|
||||
assertEqual(0, angle);
|
||||
assertEqual(5, length);
|
||||
assertEqual(1, width);
|
||||
assertEqual(24, frags);
|
||||
assertEqualNum(0, angle);
|
||||
assertEqualNum(5, length);
|
||||
assertEqualNum(1, width);
|
||||
assertEqualNum(24, frags);
|
||||
}
|
||||
|
||||
line2d(p1 = p1, p2 = p2, width = width,
|
||||
@@ -64,10 +64,10 @@ module test_line2d() {
|
||||
}
|
||||
|
||||
module test_line2d_line(angle, length, width, frags) {
|
||||
assertEqual(0, angle);
|
||||
assertEqual(5, length);
|
||||
assertEqual(1, width);
|
||||
assertEqual(24, frags);
|
||||
assertEqualNum(0, angle);
|
||||
assertEqualNum(5, length);
|
||||
assertEqualNum(1, width);
|
||||
assertEqualNum(24, frags);
|
||||
}
|
||||
|
||||
line2d(p1 = p1, p2 = p2, width = width,
|
||||
|
@@ -13,17 +13,17 @@ module test_line3d() {
|
||||
|
||||
module test_line3d_butt(p, r, frags, length, angles) {
|
||||
assertEqualPoint(p1, p);
|
||||
assertEqual(thickness / 2, r);
|
||||
assertEqual(fn, frags);
|
||||
assertEqual(14.2829, length);
|
||||
assertEqualNum(thickness / 2, r);
|
||||
assertEqualNum(fn, frags);
|
||||
assertEqualNum(14.2829, length);
|
||||
assertEqualPoint([0, 45.5618, 11.3099], angles);
|
||||
}
|
||||
|
||||
module test_line3d_cap(p, r, frags, cap_leng, angles) {
|
||||
assert(p == p1 || p == p2);
|
||||
assertEqual(thickness / 2, r);
|
||||
assertEqual(fn, frags);
|
||||
assertEqual(0.3536, cap_leng);
|
||||
assertEqualNum(thickness / 2, r);
|
||||
assertEqualNum(fn, frags);
|
||||
assertEqualNum(0.3536, cap_leng);
|
||||
assertEqualPoint([0, 45.5618, 11.3099], angles);
|
||||
}
|
||||
|
||||
@@ -43,9 +43,9 @@ module test_line3d() {
|
||||
|
||||
module test_line3d_butt(p, r, frags, length, angles) {
|
||||
assertEqualPoint(p1, p);
|
||||
assertEqual(thickness / 2, r);
|
||||
assertEqual(fn, frags);
|
||||
assertEqual(14.2829, length);
|
||||
assertEqualNum(thickness / 2, r);
|
||||
assertEqualNum(fn, frags);
|
||||
assertEqualNum(14.2829, length);
|
||||
assertEqualPoint([0, 45.5618, 11.3099], angles);
|
||||
}
|
||||
|
||||
@@ -70,17 +70,17 @@ module test_line3d() {
|
||||
|
||||
module test_line3d_butt(p, r, frags, length, angles) {
|
||||
assertEqualPoint(p1, p);
|
||||
assertEqual(thickness / 2, r);
|
||||
assertEqual(fn, frags);
|
||||
assertEqual(14.2829, length);
|
||||
assertEqualNum(thickness / 2, r);
|
||||
assertEqualNum(fn, frags);
|
||||
assertEqualNum(14.2829, length);
|
||||
assertEqualPoint([0, 45.5618, 11.3099], angles);
|
||||
}
|
||||
|
||||
module test_line3d_cap(p, r, frags, cap_leng, angles) {
|
||||
assert(p == p1 || p == p2);
|
||||
assertEqual(thickness / 2, r);
|
||||
assertEqual(fn, frags);
|
||||
assertEqual(0.5043, cap_leng);
|
||||
assertEqualNum(thickness / 2, r);
|
||||
assertEqualNum(fn, frags);
|
||||
assertEqualNum(0.5043, cap_leng);
|
||||
assertEqualPoint([0, 45.5618, 11.3099], angles);
|
||||
}
|
||||
|
||||
|
@@ -6,8 +6,8 @@ module test_parse_number() {
|
||||
include <split_str.scad>;
|
||||
include <parse_number.scad>;
|
||||
|
||||
assertEqual(11, parse_number("10") + 1);
|
||||
assertEqual(-0.1, parse_number("-1.1") + 1);
|
||||
assertEqualNum(11, parse_number("10") + 1);
|
||||
assertEqualNum(-0.1, parse_number("-1.1") + 1);
|
||||
}
|
||||
|
||||
test_parse_number();
|
||||
|
@@ -11,7 +11,7 @@ module test_polyline2d() {
|
||||
module assertCorrectSegment(index, point1, point2, width) {
|
||||
assertEqualPoint(points[index - 1], point1);
|
||||
assertEqualPoint(points[index], point2);
|
||||
assertEqual(line_width, width);
|
||||
assertEqualNum(line_width, width);
|
||||
}
|
||||
|
||||
module assertCorrectCaps(startStyle, endStyle, index, p1Style, p2Style) {
|
||||
|
@@ -17,7 +17,7 @@ module test_polyline3d() {
|
||||
module assertCorrectSegment(expected, actual, thickness) {
|
||||
assertEqualPoint(expected[0], actual[0]);
|
||||
assertEqualPoint(expected[1], actual[1]);
|
||||
assertEqual(line_thickness, thickness);
|
||||
assertEqualNum(line_thickness, thickness);
|
||||
}
|
||||
|
||||
module assertCorrectCaps(leng_pts, startStyle, endStyle, index, p1Style, p2Style) {
|
||||
|
@@ -5,7 +5,7 @@ module test_split_str() {
|
||||
include <sub_str.scad>;
|
||||
include <split_str.scad>;
|
||||
|
||||
assertEqual(["hello", "world"], split_str("hello,world", ","));
|
||||
assert(["hello", "world"] == split_str("hello,world", ","));
|
||||
}
|
||||
|
||||
test_split_str();
|
@@ -4,8 +4,8 @@ module test_sub_str() {
|
||||
include <unittest.scad>;
|
||||
include <sub_str.scad>;
|
||||
|
||||
assertEqual("hello", sub_str("helloworld", 0, 5));
|
||||
assertEqual("world", sub_str("helloworld", 5));
|
||||
assert("hello" == sub_str("helloworld", 0, 5));
|
||||
assert("world" == sub_str("helloworld", 5));
|
||||
}
|
||||
|
||||
test_sub_str();
|
Reference in New Issue
Block a user