include <console.scad>;
include <datatypes/datatypes-base.scad>;
include <datatypes/datatypes_table.scad>;
include <validation.scad>;
show_passing = true;
show_skipped = true;
echo( str("OpenSCAD Version ", version()) );
test_c =
[
["id", "identifier"],
["td", "description"],
["tv", "test value"]
];
test_r =
[
["t01", "The undefined value", undef],
["t03", "A range", [0:0.5:9]],
["t04", "A string", "A string"],
["t05", "Test list 01", ["orange","apple","grape","banana"]],
["t06", "Test list 02", ["b","a","n","a","n","a","s"]],
["t07", "Test list 03", [undef]],
["t08", "Test list 04", [[1,2],[2,3]]],
["t09", "Test list 05", ["ab",[1,2],[2,3],[4,5]]],
["t10", "Test list 06", [[1,2,3],[4,5,6],[7,8,9],["a","b","c"]]],
["t11", "Vector of integers 0 to 15", [for (i=[0:15]) i]]
];
good_c =
pmerge([concat(
"id", test_ids), concat(
"identifier", test_ids)]);
skip = -1;
good_r =
[
["defined_or_D",
"default",
[0:0.5:9],
"A string",
["orange","apple","grape","banana"],
["b","a","n","a","n","a","s"],
[undef],
[[1,2],[2,3]],
["ab",[1,2],[2,3],[4,5]],
[[1,2,3],[4,5,6],[7,8,9],["a","b","c"]],
[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
]
];
function get_value( vid ) =
get_table_v(test_r, test_c, vid,
"tv");
module run_test( fname, fresult, vid )
{
test_pass =
validate( cv=fresult, t=
"equals", ev=pass_value, pf=
true );
test_text =
validate( str(fname,
"(", get_value(vid),
")=", pass_value), fresult,
"equals", pass_value );
if ( pass_value != skip )
{
if ( !test_pass )
log_warn( str(vid,
"(", value_text,
") ", test_text) );
else if ( show_passing )
}
else if ( show_skipped )
log_info( str(vid,
" *skip*: '", fname,
"(", value_text,
")'") );
}
for (vid=test_ids) run_test(
"defined_or_D",
defined_or(get_value(vid),
"default"), vid );