diff options
Diffstat (limited to 'testdata/scad/functions/concat-tests.scad')
-rw-r--r-- | testdata/scad/functions/concat-tests.scad | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/testdata/scad/functions/concat-tests.scad b/testdata/scad/functions/concat-tests.scad new file mode 100644 index 0000000..0bcb903 --- /dev/null +++ b/testdata/scad/functions/concat-tests.scad @@ -0,0 +1,53 @@ +u = undef; + +echo("--- empty"); +echo(concat()); +echo(concat([])); +echo(concat([], [])); +echo(concat([], [], [])); + +echo("--- single elements"); +echo(concat(u)); +echo(concat(true)); +echo(concat(3)); +echo(concat("abc")); +echo(concat([0:1:10])); + +echo("--- single vectors"); +echo(concat([1, 2, 3])); +echo(concat([[1, 2, 3]])); +echo(concat([[[1, 2, 3]]])); +echo(concat([[[1, 2, [3, 4], 5]]])); + +echo("--- multiple elements"); +echo(concat(3, 3)); +echo(concat(1, 2, 3)); +echo(concat(1, 2, 3, 4, 5)); +echo(concat(1, "text", false, [1:0.5:3])); + +echo("--- vector / element"); +echo(concat([3, 4], u)); +echo(concat([3, 4, 5], 6)); +echo(concat([3, 4, 5, 6], true)); +echo(concat([3, 4, "5", 6], "test")); +echo(concat([3, 4, true, 6], [4:1:3])); + +echo("--- element / vector"); +echo(concat(3, [])); +echo(concat(3, [3, 4])); +echo(concat(true, [3, [4]])); +echo(concat("9", [1, 2, 3])); +echo(concat([6:2:9], [3, [4]])); + +echo("--- vector / vector"); +echo(concat([], [3, 4])); +echo(concat([[]], [3, 4])); +echo(concat([[2, 4]], [3, 4])); +echo(concat([5, 6], ["d", [3, 4]])); +echo(concat([[1, 0, 0], [2, 0, 0]], [3, 0, 0])); +echo(concat([[1, 0, 0], [2, 0, 0]], [[3, 0, 0]])); +echo(concat([[1, 0, 0], [2, 0, 0], [3, 0, 0]], [[4, 4, 4], [5, 5, 5]])); + +echo("--- recursive function"); +function r(i) = i > 0 ? concat(r(i - 1), [[i, i * i]]) : []; +echo(r(10)); |