mirror of
https://github.com/revarbat/BOSL2.git
synced 2025-09-01 07:23:00 +02:00
A broad review of input data check and code format
Some functions were changed for sake of clarity or better performance.
This commit is contained in:
@@ -2,10 +2,10 @@ include<../std.scad>
|
||||
include<../polyhedra.scad>
|
||||
|
||||
|
||||
$fn=96;
|
||||
|
||||
if (true) {
|
||||
|
||||
$fn=96;
|
||||
|
||||
// Display of all solids with insphere, midsphere and circumsphere
|
||||
|
||||
for(i=[0:len(_polyhedra_)-1]) {
|
||||
|
@@ -1,38 +1,7 @@
|
||||
include <../std.scad>
|
||||
|
||||
// List/Array Ops
|
||||
|
||||
module test_repeat() {
|
||||
assert(repeat(1, 4) == [1,1,1,1]);
|
||||
assert(repeat(8, [2,3]) == [[8,8,8], [8,8,8]]);
|
||||
assert(repeat(0, [2,2,3]) == [[[0,0,0],[0,0,0]], [[0,0,0],[0,0,0]]]);
|
||||
assert(repeat([1,2,3],3) == [[1,2,3], [1,2,3], [1,2,3]]);
|
||||
}
|
||||
test_repeat();
|
||||
|
||||
|
||||
module test_in_list() {
|
||||
assert(in_list("bar", ["foo", "bar", "baz"]));
|
||||
assert(!in_list("bee", ["foo", "bar", "baz"]));
|
||||
assert(in_list("bar", [[2,"foo"], [4,"bar"], [3,"baz"]], idx=1));
|
||||
assert(!in_list(undef, [3,4,5]));
|
||||
assert(in_list(undef,[3,4,undef,5]));
|
||||
assert(!in_list(3,[]));
|
||||
assert(!in_list(3,[4,5,[3]]));
|
||||
|
||||
}
|
||||
test_in_list();
|
||||
|
||||
|
||||
module test_slice() {
|
||||
assert(slice([3,4,5,6,7,8,9], 3, 5) == [6,7]);
|
||||
assert(slice([3,4,5,6,7,8,9], 2, -1) == [5,6,7,8,9]);
|
||||
assert(slice([3,4,5,6,7,8,9], 1, 1) == []);
|
||||
assert(slice([3,4,5,6,7,8,9], 6, -1) == [9]);
|
||||
assert(slice([3,4,5,6,7,8,9], 2, -2) == [5,6,7,8]);
|
||||
}
|
||||
test_slice();
|
||||
|
||||
// Section: List Query Operations
|
||||
|
||||
module test_select() {
|
||||
l = [3,4,5,6,7,8,9];
|
||||
@@ -49,6 +18,71 @@ module test_select() {
|
||||
test_select();
|
||||
|
||||
|
||||
module test_slice() {
|
||||
assert(slice([3,4,5,6,7,8,9], 3, 5) == [6,7]);
|
||||
assert(slice([3,4,5,6,7,8,9], 2, -1) == [5,6,7,8,9]);
|
||||
assert(slice([3,4,5,6,7,8,9], 1, 1) == []);
|
||||
assert(slice([3,4,5,6,7,8,9], 6, -1) == [9]);
|
||||
assert(slice([3,4,5,6,7,8,9], 2, -2) == [5,6,7,8]);
|
||||
assert(slice([], 2, -2) == []);
|
||||
}
|
||||
test_slice();
|
||||
|
||||
|
||||
module test_in_list() {
|
||||
assert(in_list("bar", ["foo", "bar", "baz"]));
|
||||
assert(!in_list("bee", ["foo", "bar", "baz"]));
|
||||
assert(in_list("bar", [[2,"foo"], [4,"bar"], [3,"baz"]], idx=1));
|
||||
|
||||
assert(!in_list("bee", ["foo", "bar", ["bee"]]));
|
||||
assert(in_list(NAN, [NAN])==false);
|
||||
}
|
||||
test_in_list();
|
||||
|
||||
|
||||
module test_min_index() {
|
||||
assert(min_index([5,3,9,6,2,7,8,2,1])==8);
|
||||
assert(min_index([5,3,9,6,2,7,8,2,7],all=true)==[4,7]);
|
||||
// assert(min_index([],all=true)==[]);
|
||||
}
|
||||
test_min_index();
|
||||
|
||||
|
||||
module test_max_index() {
|
||||
assert(max_index([5,3,9,6,2,7,8,9,1])==2);
|
||||
assert(max_index([5,3,9,6,2,7,8,9,7],all=true)==[2,7]);
|
||||
// assert(max_index([],all=true)==[]);
|
||||
}
|
||||
test_max_index();
|
||||
|
||||
|
||||
module test_list_increasing() {
|
||||
assert(list_increasing([1,2,3,4]) == true);
|
||||
assert(list_increasing([1,3,2,4]) == false);
|
||||
assert(list_increasing([4,3,2,1]) == false);
|
||||
}
|
||||
test_list_increasing();
|
||||
|
||||
|
||||
module test_list_decreasing() {
|
||||
assert(list_decreasing([1,2,3,4]) == false);
|
||||
assert(list_decreasing([4,2,3,1]) == false);
|
||||
assert(list_decreasing([4,3,2,1]) == true);
|
||||
}
|
||||
test_list_decreasing();
|
||||
|
||||
// Section: Basic List Generation
|
||||
|
||||
module test_repeat() {
|
||||
assert(repeat(1, 4) == [1,1,1,1]);
|
||||
assert(repeat(8, [2,3]) == [[8,8,8], [8,8,8]]);
|
||||
assert(repeat(0, [2,2,3]) == [[[0,0,0],[0,0,0]], [[0,0,0],[0,0,0]]]);
|
||||
assert(repeat([1,2,3],3) == [[1,2,3], [1,2,3], [1,2,3]]);
|
||||
assert(repeat(4, [2,-1]) == [[], []]);
|
||||
}
|
||||
test_repeat();
|
||||
|
||||
|
||||
module test_list_range() {
|
||||
assert(list_range(4) == [0,1,2,3]);
|
||||
assert(list_range(n=4, step=2) == [0,2,4,6]);
|
||||
@@ -66,6 +100,8 @@ test_list_range();
|
||||
|
||||
module test_reverse() {
|
||||
assert(reverse([3,4,5,6]) == [6,5,4,3]);
|
||||
assert(reverse("abcd") == ["d","c","b","a"]);
|
||||
assert(reverse([]) == []);
|
||||
}
|
||||
test_reverse();
|
||||
|
||||
@@ -90,6 +126,8 @@ module test_deduplicate() {
|
||||
assert(deduplicate(closed=true, [8,3,4,4,4,8,2,3,3,8,8]) == [8,3,4,8,2,3]);
|
||||
assert(deduplicate("Hello") == ["H","e","l","o"]);
|
||||
assert(deduplicate([[3,4],[7,1.99],[7,2],[1,4]],eps=0.1) == [[3,4],[7,2],[1,4]]);
|
||||
assert(deduplicate([], closed=true) == []);
|
||||
assert(deduplicate([[1,[1,[undef]]],[1,[1,[undef]]],[1,[2]],[1,[2,[0]]]])==[[1, [1,[undef]]],[1,[2]],[1,[2,[0]]]]);
|
||||
}
|
||||
test_deduplicate();
|
||||
|
||||
@@ -148,22 +186,6 @@ module test_list_bset() {
|
||||
test_list_bset();
|
||||
|
||||
|
||||
module test_list_increasing() {
|
||||
assert(list_increasing([1,2,3,4]) == true);
|
||||
assert(list_increasing([1,3,2,4]) == false);
|
||||
assert(list_increasing([4,3,2,1]) == false);
|
||||
}
|
||||
test_list_increasing();
|
||||
|
||||
|
||||
module test_list_decreasing() {
|
||||
assert(list_decreasing([1,2,3,4]) == false);
|
||||
assert(list_decreasing([4,2,3,1]) == false);
|
||||
assert(list_decreasing([4,3,2,1]) == true);
|
||||
}
|
||||
test_list_decreasing();
|
||||
|
||||
|
||||
module test_list_shortest() {
|
||||
assert(list_shortest(["foobar", "bazquxx", "abcd"]) == 4);
|
||||
}
|
||||
@@ -315,6 +337,13 @@ test_set_intersection();
|
||||
// Arrays
|
||||
|
||||
|
||||
module test_add_scalar() {
|
||||
assert(add_scalar([1,2,3],3) == [4,5,6]);
|
||||
assert(add_scalar([[1,2,3],[3,4,5]],3) == [[4,5,6],[6,7,8]]);
|
||||
}
|
||||
test_add_scalar();
|
||||
|
||||
|
||||
module test_subindex() {
|
||||
v = [[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]];
|
||||
assert(subindex(v,2) == [3, 7, 11, 15]);
|
||||
|
@@ -18,6 +18,10 @@ module test_typeof() {
|
||||
assert(typeof([0:1:5]) == "range");
|
||||
assert(typeof([-3:2:5]) == "range");
|
||||
assert(typeof([10:-2:-10]) == "range");
|
||||
assert(typeof([0:NAN:INF]) == "invalid");
|
||||
assert(typeof([0:"a":INF]) == "undef");
|
||||
assert(typeof([0:[]:INF]) == "undef");
|
||||
assert(typeof([true:1:INF]) == "undef");
|
||||
}
|
||||
test_typeof();
|
||||
|
||||
@@ -102,6 +106,8 @@ module test_is_int() {
|
||||
assert(!is_int(-99.1));
|
||||
assert(!is_int(99.1));
|
||||
assert(!is_int(undef));
|
||||
assert(!is_int(INF));
|
||||
assert(!is_int(NAN));
|
||||
assert(!is_int(false));
|
||||
assert(!is_int(true));
|
||||
assert(!is_int("foo"));
|
||||
@@ -124,6 +130,8 @@ module test_is_integer() {
|
||||
assert(!is_integer(-99.1));
|
||||
assert(!is_integer(99.1));
|
||||
assert(!is_integer(undef));
|
||||
assert(!is_integer(INF));
|
||||
assert(!is_integer(NAN));
|
||||
assert(!is_integer(false));
|
||||
assert(!is_integer(true));
|
||||
assert(!is_integer("foo"));
|
||||
@@ -166,6 +174,9 @@ module test_is_range() {
|
||||
assert(!is_range("foo"));
|
||||
assert(!is_range([]));
|
||||
assert(!is_range([3,4,5]));
|
||||
assert(!is_range([INF:4:5]));
|
||||
assert(!is_range([3:NAN:5]));
|
||||
assert(!is_range([3:4:"a"]));
|
||||
assert(is_range([3:1:5]));
|
||||
}
|
||||
test_is_nan();
|
||||
@@ -331,11 +342,25 @@ module test_scalar_vec3() {
|
||||
assert(scalar_vec3([3]) == [3,0,0]);
|
||||
assert(scalar_vec3([3,4]) == [3,4,0]);
|
||||
assert(scalar_vec3([3,4],dflt=1) == [3,4,1]);
|
||||
assert(scalar_vec3([3,"a"],dflt=1) == [3,"a",1]);
|
||||
assert(scalar_vec3([3,[2]],dflt=1) == [3,[2],1]);
|
||||
assert(scalar_vec3([3],dflt=1) == [3,1,1]);
|
||||
assert(scalar_vec3([3,4,5]) == [3,4,5]);
|
||||
assert(scalar_vec3([3,4,5,6]) == [3,4,5]);
|
||||
assert(scalar_vec3([3,4,5,6]) == [3,4,5]);
|
||||
}
|
||||
test_scalar_vec3();
|
||||
|
||||
|
||||
module test_segs() {
|
||||
assert_equal(segs(50,$fn=8), 8);
|
||||
assert_equal(segs(50,$fa=2,$fs=2), 158);
|
||||
assert(segs(1)==5);
|
||||
assert(segs(11)==30);
|
||||
// assert(segs(1/0)==5);
|
||||
// assert(segs(0/0)==5);
|
||||
// assert(segs(undef)==5);
|
||||
}
|
||||
test_segs();
|
||||
|
||||
// vim: expandtab tabstop=4 shiftwidth=4 softtabstop=4 nowrap
|
||||
|
@@ -17,13 +17,6 @@ module test_is_vector() {
|
||||
test_is_vector();
|
||||
|
||||
|
||||
module test_add_scalar() {
|
||||
assert(add_scalar([1,2,3],3) == [4,5,6]);
|
||||
assert(add_scalar([[1,2,3],[3,4,5]],3) == [[4,5,6],[6,7,8]]);
|
||||
}
|
||||
test_add_scalar();
|
||||
|
||||
|
||||
module test_vfloor() {
|
||||
assert_equal(vfloor([2.0, 3.14, 18.9, 7]), [2,3,18,7]);
|
||||
assert_equal(vfloor([-2.0, -3.14, -18.9, -7]), [-2,-4,-19,-7]);
|
||||
|
Reference in New Issue
Block a user