diff options
Diffstat (limited to 'tests')
69 files changed, 257 insertions, 34 deletions
diff --git a/tests/.gitignore b/tests/.gitignore index a0bddd4..6121a29 100644 --- a/tests/.gitignore +++ b/tests/.gitignore @@ -2,8 +2,7 @@ /*.a /*-output /*.scad -out.txt -out.png +out.* /CMakeFiles /CMakeCache.txt /CTestTestfile.cmake diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 70e56c6..e9f2b74 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -204,15 +204,16 @@ inclusion(BOOST_ROOT Boost_INCLUDE_DIRS) add_definitions(-DBOOST_FILESYSTEM_VERSION=3) # Use V3 for boost 1.44-1.45 # Mac OS X -if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") +if(APPLE) FIND_LIBRARY(COCOA_LIBRARY Cocoa REQUIRED) -endif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") + FIND_LIBRARY(APP_SERVICES_LIBRARY ApplicationServices) +endif() # Eigen # Turn off Eigen SIMD optimization -if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Darwin") +if(NOT APPLE) if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "^FreeBSD") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DEIGEN_DONT_ALIGN") endif() @@ -240,7 +241,7 @@ if (NOT EIGEN_INCLUDE_DIR) find_path(EIGEN_INCLUDE_DIR Eigen/Core HINTS /usr/local/include/eigen3) elseif (${CMAKE_SYSTEM_NAME} MATCHES "NetBSD") find_path(EIGEN_INCLUDE_DIR Eigen/Core HINTS /usr/pkg/include/eigen3) - elseif (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") + elseif (APPLE) find_path(EIGEN_INCLUDE_DIR Eigen/Core HINTS /opt/local/include/eigen3) else() find_path(EIGEN_INCLUDE_DIR Eigen/Core HINTS /usr/include/eigen3) @@ -483,7 +484,7 @@ set(CTEST_ENVIRONMENT "${CTEST_ENVIRONMENT};OPENSCADPATH=${CMAKE_CURRENT_SOURCE_ # Platform specific settings -if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") +if(APPLE) message(STATUS "Offscreen OpenGL Context - using Apple CGL") set(OFFSCREEN_CTX_SOURCE "OffscreenContextCGL.mm" CACHE TYPE STRING) set(OFFSCREEN_IMGUTILS_SOURCE "imageutils-macosx.cc" CACHE TYPE STRING) @@ -507,6 +508,7 @@ set(CORE_SOURCES ../src/linalg.cc ../src/handle_dep.cc ../src/value.cc + ../src/calc.cc ../src/expr.cc ../src/func.cc ../src/localscope.cc @@ -516,6 +518,7 @@ set(CORE_SOURCES ../src/context.cc ../src/modcontext.cc ../src/evalcontext.cc + ../src/feature.cc ../src/csgterm.cc ../src/csgtermnormalizer.cc ../src/polyset.cc @@ -629,7 +632,7 @@ target_link_libraries(cgalcachetest tests-cgal ${TESTS-CGAL-LIBRARIES} ${GLEW_LI # add_executable(openscad_nogui ../src/openscad.cc) set_target_properties(openscad_nogui PROPERTIES COMPILE_FLAGS "-fno-strict-aliasing -DEIGEN_DONT_ALIGN -DENABLE_CGAL -DENABLE_OPENCSG ${CGAL_CXX_FLAGS_INIT}") -target_link_libraries(openscad_nogui tests-offscreen tests-cgal tests-nocgal ${TESTS-CORE-LIBRARIES} ${TESTS-CGAL-LIBRARIES} ${GLEW_LIBRARY} ${OPENCSG_LIBRARY} ${COCOA_LIBRARY} ) +target_link_libraries(openscad_nogui tests-offscreen tests-cgal tests-nocgal ${TESTS-CORE-LIBRARIES} ${TESTS-CGAL-LIBRARIES} ${GLEW_LIBRARY} ${OPENCSG_LIBRARY} ${COCOA_LIBRARY} ${APP_SERVICES_LIBRARY}) # # GUI binary tests @@ -796,12 +799,12 @@ configure_file(${CMAKE_SOURCE_DIR}/../testdata/scad/templates/import_dxf-tests-t # Find all scad files file(GLOB FEATURES_FILES ${CMAKE_SOURCE_DIR}/../testdata/scad/features/*.scad) -file(GLOB BUGS_FILES ${CMAKE_SOURCE_DIR}/../testdata/scad/bugs/*.scad) file(GLOB SCAD_DXF_FILES ${CMAKE_SOURCE_DIR}/../testdata/scad/dxf/*.scad) file(GLOB FUNCTION_FILES ${CMAKE_SOURCE_DIR}/../testdata/scad/functions/*.scad) file(GLOB EXAMPLE_FILES ${CMAKE_SOURCE_DIR}/../examples/*.scad) list(APPEND ECHO_FILES ${FUNCTION_FILES} + ${CMAKE_SOURCE_DIR}/../testdata/scad/features/for-tests.scad ${CMAKE_SOURCE_DIR}/../testdata/scad/misc/echo-tests.scad ${CMAKE_SOURCE_DIR}/../testdata/scad/misc/escape-test.scad ${CMAKE_SOURCE_DIR}/../testdata/scad/misc/parser-tests.scad @@ -831,19 +834,18 @@ list(APPEND DUMPTEST_FILES ${CMAKE_SOURCE_DIR}/../testdata/scad/misc/escape-test ${CMAKE_SOURCE_DIR}/../testdata/scad/misc/localfiles_dir/localfiles-compatibility-test.scad ${CMAKE_SOURCE_DIR}/../testdata/scad/misc/allexpressions.scad ${CMAKE_SOURCE_DIR}/../testdata/scad/misc/allfunctions.scad - ${CMAKE_SOURCE_DIR}/../testdata/scad/misc/allmodules.scad - ${CMAKE_SOURCE_DIR}/../testdata/scad/bugs/stl-cgal-convert_to_Polyhedron-crash.scad) + ${CMAKE_SOURCE_DIR}/../testdata/scad/misc/allmodules.scad) list(APPEND CGALPNGTEST_FILES ${FEATURES_FILES} ${SCAD_DXF_FILES} ${EXAMPLE_FILES}) list(APPEND CGALPNGTEST_FILES ${CMAKE_SOURCE_DIR}/../testdata/scad/misc/include-tests.scad ${CMAKE_SOURCE_DIR}/../testdata/scad/misc/use-tests.scad ${CMAKE_SOURCE_DIR}/../testdata/scad/bugs/transform-nan-inf-tests.scad - ${CMAKE_SOURCE_DIR}/../testdata/scad/bugs/stl-cgal-convert_to_Polyhedron-crash.scad ${CMAKE_SOURCE_DIR}/../testdata/scad/misc/localfiles-test.scad - ${CMAKE_SOURCE_DIR}/../testdata/scad/misc/localfiles_dir/localfiles-compatibility-test.scad) + ${CMAKE_SOURCE_DIR}/../testdata/scad/misc/localfiles_dir/localfiles-compatibility-test.scad + ${CMAKE_SOURCE_DIR}/../testdata/scad/misc/rotate-empty-bbox.scad + ${CMAKE_SOURCE_DIR}/../testdata/scad/misc/empty-shape-tests.scad) list(APPEND OPENCSGTEST_FILES ${CGALPNGTEST_FILES}) -list(APPEND OPENCSGTEST_FILES ${CMAKE_SOURCE_DIR}/../testdata/scad/bugs/bbox-transform-bug.scad) list(APPEND OPENCSGTEST_FILES ${CMAKE_SOURCE_DIR}/../testdata/scad/bugs/intersection-prune-test.scad) list(APPEND THROWNTOGETHERTEST_FILES ${OPENCSGTEST_FILES}) @@ -861,10 +863,6 @@ disable_tests(openscad-csgpng_child-background) disable_tests(opencsgtest_example006 cgalpngtest_example006) disable_tests(openscad-csgpng_example006 openscad-cgalpng_example006) -# NefPolyhedron->Polyhedron conversion failures. No images for OpenCSG/Thrown -disable_tests(opencsgtest_stl-cgal-convert_to_Polyhedron-crash) -disable_tests(throwntogethertest_stl-cgal-convert_to_Polyhedron-crash) - # These tests only makes sense in OpenCSG mode disable_tests(cgalpngtest_child-background cgalpngtest_highlight-and-background-modifier @@ -888,6 +886,30 @@ set_test_config(Heavy opencsgtest_minkowski3-tests cgalpngtest_intersection-tests cgalpngtest_text-search-test) +# Bugs + +list(APPEND BUGS_FILES ${CMAKE_SOURCE_DIR}/../testdata/scad/bugs/issue495.scad + ${CMAKE_SOURCE_DIR}/../testdata/scad/bugs/issue495b.scad + ${CMAKE_SOURCE_DIR}/../testdata/scad/bugs/issue541.scad + ${CMAKE_SOURCE_DIR}/../testdata/scad/bugs/issue578.scad + ${CMAKE_SOURCE_DIR}/../testdata/scad/bugs/issue578b.scad + ${CMAKE_SOURCE_DIR}/../testdata/scad/bugs/issue582.scad + ${CMAKE_SOURCE_DIR}/../testdata/scad/bugs/issue584.scad + ${CMAKE_SOURCE_DIR}/../testdata/scad/bugs/issue585.scad + ${CMAKE_SOURCE_DIR}/../testdata/scad/bugs/issue591.scad + ${CMAKE_SOURCE_DIR}/../testdata/scad/bugs/issue593.scad) + +list(APPEND OPENCSGTEST_FILES ${BUGS_FILES}) +list(APPEND CGALPNGTEST_FILES ${BUGS_FILES}) +foreach(FILE ${BUGS_FILES}) + get_test_fullname(opencsgtest ${FILE} TEST_FULLNAME) + set_test_config(Bugs ${TEST_FULLNAME}) + get_test_fullname(cgalpngtest ${FILE} TEST_FULLNAME) + set_test_config(Bugs ${TEST_FULLNAME}) +endforeach() + +# Examples + foreach(FILE ${EXAMPLE_FILES}) get_test_fullname(cgalpngtest ${FILE} TEST_FULLNAME) set_test_config(Examples ${TEST_FULLNAME}) @@ -974,6 +996,11 @@ add_cmdline_test(throwntogethertest EXE ${OPENSCAD_BINPATH} ARGS --preview=throw # with anything. It's self-contained and returns != 0 on error add_cmdline_test(cgalstlsanitytest EXE ${CMAKE_SOURCE_DIR}/cgalstlsanitytest SUFFIX txt ARGS ${OPENSCAD_BINPATH} FILES ${CGALSTLSANITYTEST_FILES}) +# Add experimental tests + +add_cmdline_test(echotest EXE ${OPENSCAD_BINPATH} ARGS --enable=concat -o SUFFIX echo FILES ${CMAKE_SOURCE_DIR}/../testdata/scad/experimental/concat-tests.scad) + + # Tests using the actual OpenSCAD binary # non-ASCII filenames diff --git a/tests/cgalcachetest.cc b/tests/cgalcachetest.cc index 598879c..67d3313 100644 --- a/tests/cgalcachetest.cc +++ b/tests/cgalcachetest.cc @@ -126,7 +126,7 @@ int main(int argc, char **argv) currentdir = boosty::stringy(fs::current_path()); - parser_init(boosty::stringy(fs::path(argv[0]).branch_path()), false); + parser_init(boosty::stringy(fs::path(argv[0]).branch_path())); add_librarydir(boosty::stringy(fs::path(argv[0]).branch_path() / "../libraries")); ModuleContext top_ctx; diff --git a/tests/csgtexttest.cc b/tests/csgtexttest.cc index 0be3123..97902f6 100644 --- a/tests/csgtexttest.cc +++ b/tests/csgtexttest.cc @@ -77,7 +77,7 @@ int main(int argc, char **argv) currentdir = boosty::stringy( fs::current_path() ); - parser_init(boosty::stringy(fs::path(argv[0]).branch_path()), false); + parser_init(boosty::stringy(fs::path(argv[0]).branch_path())); add_librarydir(boosty::stringy(fs::path(argv[0]).branch_path() / "../libraries")); ModuleContext top_ctx; diff --git a/tests/modulecachetest.cc b/tests/modulecachetest.cc index 423cffc..5531461 100644 --- a/tests/modulecachetest.cc +++ b/tests/modulecachetest.cc @@ -73,7 +73,7 @@ int main(int argc, char **argv) currentdir = boosty::stringy( fs::current_path() ); - parser_init(boosty::stringy(fs::path(argv[0]).branch_path()), false); + parser_init(boosty::stringy(fs::path(argv[0]).branch_path())); add_librarydir(boosty::stringy(fs::path(argv[0]).branch_path() / "../libraries")); ModuleContext top_ctx; diff --git a/tests/regression/cgalpngtest/background-modifier-expected.png b/tests/regression/cgalpngtest/background-modifier-expected.png Binary files differindex e003a87..dd2391c 100644 --- a/tests/regression/cgalpngtest/background-modifier-expected.png +++ b/tests/regression/cgalpngtest/background-modifier-expected.png diff --git a/tests/regression/cgalpngtest/difference-2d-tests-expected.png b/tests/regression/cgalpngtest/difference-2d-tests-expected.png Binary files differnew file mode 100644 index 0000000..1476953 --- /dev/null +++ b/tests/regression/cgalpngtest/difference-2d-tests-expected.png diff --git a/tests/regression/cgalpngtest/difference-tests-expected.png b/tests/regression/cgalpngtest/difference-tests-expected.png Binary files differindex e672c48..bd27d89 100644 --- a/tests/regression/cgalpngtest/difference-tests-expected.png +++ b/tests/regression/cgalpngtest/difference-tests-expected.png diff --git a/tests/regression/cgalpngtest/empty-shape-tests-expected.png b/tests/regression/cgalpngtest/empty-shape-tests-expected.png Binary files differnew file mode 100644 index 0000000..50d838c --- /dev/null +++ b/tests/regression/cgalpngtest/empty-shape-tests-expected.png diff --git a/tests/regression/cgalpngtest/intersection-tests-expected.png b/tests/regression/cgalpngtest/intersection-tests-expected.png Binary files differindex d287e5f..0d40a99 100644 --- a/tests/regression/cgalpngtest/intersection-tests-expected.png +++ b/tests/regression/cgalpngtest/intersection-tests-expected.png diff --git a/tests/regression/cgalpngtest/issue495-expected.png b/tests/regression/cgalpngtest/issue495-expected.png Binary files differnew file mode 100644 index 0000000..6302d94 --- /dev/null +++ b/tests/regression/cgalpngtest/issue495-expected.png diff --git a/tests/regression/cgalpngtest/issue495b-expected.png b/tests/regression/cgalpngtest/issue495b-expected.png Binary files differnew file mode 100644 index 0000000..6302d94 --- /dev/null +++ b/tests/regression/cgalpngtest/issue495b-expected.png diff --git a/tests/regression/cgalpngtest/issue541-expected.png b/tests/regression/cgalpngtest/issue541-expected.png Binary files differnew file mode 100644 index 0000000..231e016 --- /dev/null +++ b/tests/regression/cgalpngtest/issue541-expected.png diff --git a/tests/regression/cgalpngtest/issue578-expected.png b/tests/regression/cgalpngtest/issue578-expected.png Binary files differnew file mode 100644 index 0000000..e4fde15 --- /dev/null +++ b/tests/regression/cgalpngtest/issue578-expected.png diff --git a/tests/regression/cgalpngtest/issue578b-expected.png b/tests/regression/cgalpngtest/issue578b-expected.png Binary files differnew file mode 100644 index 0000000..fd42ff7 --- /dev/null +++ b/tests/regression/cgalpngtest/issue578b-expected.png diff --git a/tests/regression/cgalpngtest/issue582-expected.png b/tests/regression/cgalpngtest/issue582-expected.png Binary files differnew file mode 100644 index 0000000..6b9d018 --- /dev/null +++ b/tests/regression/cgalpngtest/issue582-expected.png diff --git a/tests/regression/cgalpngtest/issue584-expected.png b/tests/regression/cgalpngtest/issue584-expected.png Binary files differnew file mode 100644 index 0000000..b191b94 --- /dev/null +++ b/tests/regression/cgalpngtest/issue584-expected.png diff --git a/tests/regression/cgalpngtest/issue585-expected.png b/tests/regression/cgalpngtest/issue585-expected.png Binary files differnew file mode 100644 index 0000000..00c70a0 --- /dev/null +++ b/tests/regression/cgalpngtest/issue585-expected.png diff --git a/tests/regression/cgalpngtest/issue591-expected.png b/tests/regression/cgalpngtest/issue591-expected.png Binary files differnew file mode 100644 index 0000000..07e1559 --- /dev/null +++ b/tests/regression/cgalpngtest/issue591-expected.png diff --git a/tests/regression/cgalpngtest/linear_extrude-tests-expected.png b/tests/regression/cgalpngtest/linear_extrude-tests-expected.png Binary files differindex c85142e..597b148 100644 --- a/tests/regression/cgalpngtest/linear_extrude-tests-expected.png +++ b/tests/regression/cgalpngtest/linear_extrude-tests-expected.png diff --git a/tests/regression/cgalpngtest/minkowski2-tests-expected.png b/tests/regression/cgalpngtest/minkowski2-tests-expected.png Binary files differindex ebdbc74..806153b 100644 --- a/tests/regression/cgalpngtest/minkowski2-tests-expected.png +++ b/tests/regression/cgalpngtest/minkowski2-tests-expected.png diff --git a/tests/regression/cgalpngtest/minkowski3-tests-expected.png b/tests/regression/cgalpngtest/minkowski3-tests-expected.png Binary files differindex 6d74961..2d2965a 100644 --- a/tests/regression/cgalpngtest/minkowski3-tests-expected.png +++ b/tests/regression/cgalpngtest/minkowski3-tests-expected.png diff --git a/tests/regression/cgalpngtest/nothing-decimal-comma-separated-expected.png b/tests/regression/cgalpngtest/nothing-decimal-comma-separated-expected.png Binary files differnew file mode 100644 index 0000000..5c4279e --- /dev/null +++ b/tests/regression/cgalpngtest/nothing-decimal-comma-separated-expected.png diff --git a/tests/regression/cgalpngtest/primitive-inf-tests-expected.png b/tests/regression/cgalpngtest/primitive-inf-tests-expected.png Binary files differnew file mode 100644 index 0000000..50d838c --- /dev/null +++ b/tests/regression/cgalpngtest/primitive-inf-tests-expected.png diff --git a/tests/regression/cgalpngtest/rotate-empty-bbox-expected.png b/tests/regression/cgalpngtest/rotate-empty-bbox-expected.png Binary files differnew file mode 100644 index 0000000..f3fa75f --- /dev/null +++ b/tests/regression/cgalpngtest/rotate-empty-bbox-expected.png diff --git a/tests/regression/cgalpngtest/stl-cgal-convert_to_Polyhedron-crash-expected.png b/tests/regression/cgalpngtest/stl-cgal-convert_to_Polyhedron-crash-expected.png Binary files differdeleted file mode 100644 index 318cbaa..0000000 --- a/tests/regression/cgalpngtest/stl-cgal-convert_to_Polyhedron-crash-expected.png +++ /dev/null diff --git a/tests/regression/dumptest/background-modifier-expected.csg b/tests/regression/dumptest/background-modifier-expected.csg index 4d6d019..0f69ec3 100644 --- a/tests/regression/dumptest/background-modifier-expected.csg +++ b/tests/regression/dumptest/background-modifier-expected.csg @@ -18,4 +18,10 @@ group() { } } } + multmatrix([[1, 0, 0, 25], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { + minkowski(convexity = 0) { + %cube(size = [10, 10, 10], center = true); + cube(size = [5, 5, 5], center = true); + } + } } diff --git a/tests/regression/dumptest/difference-2d-tests-expected.csg b/tests/regression/dumptest/difference-2d-tests-expected.csg new file mode 100644 index 0000000..7bc257d --- /dev/null +++ b/tests/regression/dumptest/difference-2d-tests-expected.csg @@ -0,0 +1,36 @@ +group() { + difference() { + square(size = [10, 10], center = true); + circle($fn = 0, $fa = 12, $fs = 2, r = 4); + } + multmatrix([[1, 0, 0, 12], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { + difference() { + square(size = [10, 10], center = true); + multmatrix([[1, 0, 0, 2], [0, 1, 0, 2], [0, 0, 1, 0], [0, 0, 0, 1]]) { + circle($fn = 0, $fa = 12, $fs = 2, r = 2); + } + multmatrix([[1, 0, 0, -2], [0, 1, 0, -2], [0, 0, 1, 0], [0, 0, 0, 1]]) { + circle($fn = 0, $fa = 12, $fs = 2, r = 2); + } + } + } + multmatrix([[1, 0, 0, 12], [0, 1, 0, 12], [0, 0, 1, 0], [0, 0, 0, 1]]) { + difference() { + square(size = [0, 10], center = true); + circle($fn = 0, $fa = 12, $fs = 2, r = 4); + } + } + multmatrix([[1, 0, 0, 0], [0, 1, 0, 12], [0, 0, 1, 0], [0, 0, 0, 1]]) { + difference() { + group(); + square(size = [10, 10], center = true); + circle($fn = 0, $fa = 12, $fs = 2, r = 4); + } + } + multmatrix([[1, 0, 0, 24], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { + difference() { + square(size = [10, 10], center = true); + sphere($fn = 0, $fa = 12, $fs = 2, r = 4); + } + } +} diff --git a/tests/regression/dumptest/difference-tests-expected.csg b/tests/regression/dumptest/difference-tests-expected.csg index d5d2bb3..8ff8a24 100644 --- a/tests/regression/dumptest/difference-tests-expected.csg +++ b/tests/regression/dumptest/difference-tests-expected.csg @@ -5,12 +5,6 @@ group() { cube(size = [10, 10, 10], center = true); cylinder($fn = 0, $fa = 12, $fs = 2, h = 20, r1 = 4, r2 = 4, center = true); } - multmatrix([[1, 0, 0, 12], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { - difference() { - cube(size = [10, 10, 10], center = true); - cylinder($fn = 0, $fa = 12, $fs = 2, h = 10.5, r1 = 4, r2 = 4, center = true); - } - } multmatrix([[1, 0, 0, 0], [0, 1, 0, 12], [0, 0, 1, 0], [0, 0, 0, 1]]) { difference() { cube(size = [10, 10, 10], center = true); @@ -42,4 +36,17 @@ group() { cylinder($fn = 0, $fa = 12, $fs = 2, h = 20, r1 = 4, r2 = 4, center = true); } } + multmatrix([[1, 0, 0, 24], [0, 1, 0, -12], [0, 0, 1, 0], [0, 0, 0, 1]]) { + difference() { + group(); + cube(size = [10, 10, 10], center = true); + cylinder($fn = 0, $fa = 12, $fs = 2, h = 20, r1 = 4, r2 = 4, center = true); + } + } + multmatrix([[1, 0, 0, 12], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { + difference() { + cube(size = [10, 10, 10], center = true); + circle($fn = 0, $fa = 12, $fs = 2, r = 6); + } + } } diff --git a/tests/regression/dumptest/for-tests-expected.csg b/tests/regression/dumptest/for-tests-expected.csg index b61d9cd..4f79afc 100644 --- a/tests/regression/dumptest/for-tests-expected.csg +++ b/tests/regression/dumptest/for-tests-expected.csg @@ -128,4 +128,36 @@ group() { cylinder($fn = 0, $fa = 12, $fs = 2, h = 1, r1 = 5, r2 = 5, center = false); } } + group(); + group(); + group(); + group(); + group() { + group(); + } + group() { + group(); + } + group(); + group() { + group(); + } + group(); + group(); + group(); + group() { + group(); + } + group(); + group(); + group(); + group(); + group(); + group(); + group(); + group(); + group(); + group(); + group(); + group(); } diff --git a/tests/regression/dumptest/intersection-tests-expected.csg b/tests/regression/dumptest/intersection-tests-expected.csg index bfb5077..1091c8d 100644 --- a/tests/regression/dumptest/intersection-tests-expected.csg +++ b/tests/regression/dumptest/intersection-tests-expected.csg @@ -54,4 +54,23 @@ group() { } } } + multmatrix([[1, 0, 0, 0], [0, 1, 0, -12], [0, 0, 1, 0], [0, 0, 0, 1]]) { + intersection() { + cylinder($fn = 0, $fa = 12, $fs = 2, h = 5, r1 = 4, r2 = 4, center = true); + cube(size = [0, 0, 0], center = false); + } + } + multmatrix([[1, 0, 0, 12], [0, 1, 0, -12], [0, 0, 1, 0], [0, 0, 0, 1]]) { + intersection() { + cube(size = [5, 5, 5], center = true); + circle($fn = 0, $fa = 12, $fs = 2, r = 2); + } + } + multmatrix([[1, 0, 0, 24], [0, 1, 0, -12], [0, 0, 1, 0], [0, 0, 0, 1]]) { + intersection() { + group(); + cube(size = [5, 5, 5], center = true); + cylinder($fn = 0, $fa = 12, $fs = 2, h = 20, r1 = 2, r2 = 2, center = true); + } + } } diff --git a/tests/regression/dumptest/linear_extrude-tests-expected.csg b/tests/regression/dumptest/linear_extrude-tests-expected.csg index a0deb81..539412d 100644 --- a/tests/regression/dumptest/linear_extrude-tests-expected.csg +++ b/tests/regression/dumptest/linear_extrude-tests-expected.csg @@ -21,8 +21,13 @@ group() { } } multmatrix([[1, 0, 0, 0], [0, 1, 0, 20], [0, 0, 1, 0], [0, 0, 0, 1]]) { - linear_extrude(height = 20, center = false, convexity = 1, twist = 45, slices = 2, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) { - square(size = [10, 10], center = false); + linear_extrude(height = 20, center = false, convexity = 1, twist = 30, slices = 2, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) { + difference() { + square(size = [10, 10], center = false); + multmatrix([[1, 0, 0, 1], [0, 1, 0, 1], [0, 0, 1, 0], [0, 0, 0, 1]]) { + square(size = [8, 8], center = false); + } + } } } multmatrix([[1, 0, 0, 19], [0, 1, 0, 20], [0, 0, 1, 0], [0, 0, 0, 1]]) { diff --git a/tests/regression/dumptest/minkowski2-tests-expected.csg b/tests/regression/dumptest/minkowski2-tests-expected.csg index ec67feb..75c5559 100644 --- a/tests/regression/dumptest/minkowski2-tests-expected.csg +++ b/tests/regression/dumptest/minkowski2-tests-expected.csg @@ -29,4 +29,16 @@ group() { } } } + multmatrix([[1, 0, 0, 0], [0, 1, 0, -20], [0, 0, 1, 0], [0, 0, 0, 1]]) { + minkowski(convexity = 0) { + square(size = [10, 10], center = false); + } + } + multmatrix([[1, 0, 0, -20], [0, 1, 0, -20], [0, 0, 1, 0], [0, 0, 0, 1]]) { + minkowski(convexity = 0) { + square(size = [10, 10], center = false); + square(size = [2, 2], center = true); + circle($fn = 0, $fa = 12, $fs = 2, r = 1); + } + } } diff --git a/tests/regression/dumptest/minkowski3-tests-expected.csg b/tests/regression/dumptest/minkowski3-tests-expected.csg index 7dc82e1..0f82691 100644 --- a/tests/regression/dumptest/minkowski3-tests-expected.csg +++ b/tests/regression/dumptest/minkowski3-tests-expected.csg @@ -29,6 +29,11 @@ group() { } } } + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { + minkowski(convexity = 0) { + cube(size = [10, 10, 5], center = false); + } + } minkowski(convexity = 0); minkowski(convexity = 0); } diff --git a/tests/regression/dumptest/primitive-inf-tests-expected.csg b/tests/regression/dumptest/primitive-inf-tests-expected.csg new file mode 100644 index 0000000..1827d7e --- /dev/null +++ b/tests/regression/dumptest/primitive-inf-tests-expected.csg @@ -0,0 +1,10 @@ +group() { + cube(size = [inf, inf, inf], center = false); + cube(size = [0, 0, inf], center = false); + cylinder($fn = 0, $fa = 12, $fs = 2, h = 10, r1 = inf, r2 = inf, center = false); + cylinder($fn = 0, $fa = 12, $fs = 2, h = 10, r1 = 1, r2 = inf, center = false); + cylinder($fn = 0, $fa = 12, $fs = 2, h = inf, r1 = 1, r2 = 1, center = false); + sphere($fn = 0, $fa = 12, $fs = 2, r = inf); + polygon(points = [[0, 0, 0], [1, 0, 0], [1, inf, 0]], paths = undef, convexity = 1); + polyhedron(points = [[inf, 0, 0], [-1, 0, 0], [0, 1, 0], [0, -1, 0], [0, 0, 1], [0, 0, -1]], faces = [[0, 4, 2], [0, 2, 5], [0, 3, 4], [0, 5, 3], [1, 2, 4], [1, 5, 2], [1, 4, 3], [1, 3, 5]], convexity = 1); +} diff --git a/tests/regression/dumptest/stl-cgal-convert_to_Polyhedron-crash-expected.csg b/tests/regression/dumptest/stl-cgal-convert_to_Polyhedron-crash-expected.csg deleted file mode 100644 index acad52f..0000000 --- a/tests/regression/dumptest/stl-cgal-convert_to_Polyhedron-crash-expected.csg +++ /dev/null @@ -1,5 +0,0 @@ -group() { - render(convexity = 1) { - import(file = "stl-cgal-convert_to_Polyhedron-crash.stl", layer = "", origin = [0, 0], scale = 1, convexity = 1, $fn = 0, $fa = 12, $fs = 2); - } -} diff --git a/tests/regression/echotest/concat-tests-expected.echo b/tests/regression/echotest/concat-tests-expected.echo new file mode 100644 index 0000000..58b41d0 --- /dev/null +++ b/tests/regression/echotest/concat-tests-expected.echo @@ -0,0 +1,43 @@ +ECHO: "--- empty" +ECHO: [] +ECHO: [] +ECHO: [] +ECHO: [] +ECHO: "--- single elements" +ECHO: [undef] +ECHO: [true] +ECHO: [3] +ECHO: ["abc"] +ECHO: [[0 : 1 : 10]] +ECHO: "--- single vectors" +ECHO: [1, 2, 3] +ECHO: [[1, 2, 3]] +ECHO: [[[1, 2, 3]]] +ECHO: [[[1, 2, [3, 4], 5]]] +ECHO: "--- multiple elements" +ECHO: [3, 3] +ECHO: [1, 2, 3] +ECHO: [1, 2, 3, 4, 5] +ECHO: [1, "text", false, [1 : 0.5 : 3]] +ECHO: "--- vector / element" +ECHO: [3, 4, undef] +ECHO: [3, 4, 5, 6] +ECHO: [3, 4, 5, 6, true] +ECHO: [3, 4, "5", 6, "test"] +ECHO: [3, 4, true, 6, [4 : 1 : 3]] +ECHO: "--- element / vector" +ECHO: [3] +ECHO: [3, 3, 4] +ECHO: [true, 3, [4]] +ECHO: ["9", 1, 2, 3] +ECHO: [[6 : 2 : 9], 3, [4]] +ECHO: "--- vector / vector" +ECHO: [3, 4] +ECHO: [[], 3, 4] +ECHO: [[2, 4], 3, 4] +ECHO: [5, 6, "d", [3, 4]] +ECHO: [[1, 0, 0], [2, 0, 0], 3, 0, 0] +ECHO: [[1, 0, 0], [2, 0, 0], [3, 0, 0]] +ECHO: [[1, 0, 0], [2, 0, 0], [3, 0, 0], [4, 4, 4], [5, 5, 5]] +ECHO: "--- recursive function" +ECHO: [[1, 1], [2, 4], [3, 9], [4, 16], [5, 25], [6, 36], [7, 49], [8, 64], [9, 81], [10, 100]] diff --git a/tests/regression/echotest/for-tests-expected.echo b/tests/regression/echotest/for-tests-expected.echo new file mode 100644 index 0000000..7820a41 --- /dev/null +++ b/tests/regression/echotest/for-tests-expected.echo @@ -0,0 +1,27 @@ +DEPRECATED: Using ranges of the form [begin:end] with begin value greater than the end value is deprecated. +DEPRECATED: Using ranges of the form [begin:end] with begin value greater than the end value is deprecated. +WARNING: Bad range parameter in for statement: too many elements (4294967295). +ECHO: nan +ECHO: inf +ECHO: -inf +WARNING: Bad range parameter in for statement: too many elements (4294967295). +ECHO: "INF", 0 +ECHO: "-INF", 0 +WARNING: Bad range parameter in for statement: too many elements (4294967295). +ECHO: "INF", 0 +WARNING: Bad range parameter in for statement: too many elements (4294967295). +ECHO: "-INF", 1 +WARNING: Bad range parameter in for statement: too many elements (4294967295). +DEPRECATED: Using ranges of the form [begin:end] with begin value greater than the end value is deprecated. +WARNING: Bad range parameter in for statement: too many elements (4294967295). +DEPRECATED: Using ranges of the form [begin:end] with begin value greater than the end value is deprecated. +WARNING: Bad range parameter in for statement: too many elements (4294967295). +WARNING: Bad range parameter in for statement: too many elements (4294967295). +WARNING: Bad range parameter in for statement: too many elements (4294967295). +WARNING: Bad range parameter in for statement: too many elements (4294967295). +WARNING: Bad range parameter in for statement: too many elements (4294967295). +WARNING: Bad range parameter in for statement: too many elements (4294967295). +WARNING: Bad range parameter in for statement: too many elements (4294967295). +WARNING: Bad range parameter in for statement: too many elements (4294967295). +WARNING: Bad range parameter in for statement: too many elements (4294967295). +WARNING: Bad range parameter in for statement: too many elements (4294967295). diff --git a/tests/regression/opencsgtest/background-modifier-expected.png b/tests/regression/opencsgtest/background-modifier-expected.png Binary files differindex 9cf7db0..bd5df80 100644 --- a/tests/regression/opencsgtest/background-modifier-expected.png +++ b/tests/regression/opencsgtest/background-modifier-expected.png diff --git a/tests/regression/opencsgtest/difference-2d-tests-expected.png b/tests/regression/opencsgtest/difference-2d-tests-expected.png Binary files differnew file mode 100644 index 0000000..ec45e77 --- /dev/null +++ b/tests/regression/opencsgtest/difference-2d-tests-expected.png diff --git a/tests/regression/opencsgtest/difference-tests-expected.png b/tests/regression/opencsgtest/difference-tests-expected.png Binary files differindex 8db2742..69a4ac2 100644 --- a/tests/regression/opencsgtest/difference-tests-expected.png +++ b/tests/regression/opencsgtest/difference-tests-expected.png diff --git a/tests/regression/opencsgtest/empty-shape-tests-expected.png b/tests/regression/opencsgtest/empty-shape-tests-expected.png Binary files differnew file mode 100644 index 0000000..50d838c --- /dev/null +++ b/tests/regression/opencsgtest/empty-shape-tests-expected.png diff --git a/tests/regression/opencsgtest/intersection-tests-expected.png b/tests/regression/opencsgtest/intersection-tests-expected.png Binary files differindex 772e2dc..3cc588f 100644 --- a/tests/regression/opencsgtest/intersection-tests-expected.png +++ b/tests/regression/opencsgtest/intersection-tests-expected.png diff --git a/tests/regression/opencsgtest/issue495-expected.png b/tests/regression/opencsgtest/issue495-expected.png Binary files differnew file mode 100644 index 0000000..5d012bf --- /dev/null +++ b/tests/regression/opencsgtest/issue495-expected.png diff --git a/tests/regression/opencsgtest/issue495b-expected.png b/tests/regression/opencsgtest/issue495b-expected.png Binary files differnew file mode 100644 index 0000000..5d012bf --- /dev/null +++ b/tests/regression/opencsgtest/issue495b-expected.png diff --git a/tests/regression/opencsgtest/issue541-expected.png b/tests/regression/opencsgtest/issue541-expected.png Binary files differnew file mode 100644 index 0000000..231e016 --- /dev/null +++ b/tests/regression/opencsgtest/issue541-expected.png diff --git a/tests/regression/opencsgtest/issue578-expected.png b/tests/regression/opencsgtest/issue578-expected.png Binary files differnew file mode 100644 index 0000000..e4fde15 --- /dev/null +++ b/tests/regression/opencsgtest/issue578-expected.png diff --git a/tests/regression/opencsgtest/issue578b-expected.png b/tests/regression/opencsgtest/issue578b-expected.png Binary files differnew file mode 100644 index 0000000..fd42ff7 --- /dev/null +++ b/tests/regression/opencsgtest/issue578b-expected.png diff --git a/tests/regression/opencsgtest/issue582-expected.png b/tests/regression/opencsgtest/issue582-expected.png Binary files differnew file mode 100644 index 0000000..6b9d018 --- /dev/null +++ b/tests/regression/opencsgtest/issue582-expected.png diff --git a/tests/regression/opencsgtest/issue584-expected.png b/tests/regression/opencsgtest/issue584-expected.png new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/tests/regression/opencsgtest/issue584-expected.png diff --git a/tests/regression/opencsgtest/issue585-expected.png b/tests/regression/opencsgtest/issue585-expected.png Binary files differnew file mode 100644 index 0000000..bc9d333 --- /dev/null +++ b/tests/regression/opencsgtest/issue585-expected.png diff --git a/tests/regression/opencsgtest/issue591-expected.png b/tests/regression/opencsgtest/issue591-expected.png Binary files differnew file mode 100644 index 0000000..07e1559 --- /dev/null +++ b/tests/regression/opencsgtest/issue591-expected.png diff --git a/tests/regression/opencsgtest/linear_extrude-tests-expected.png b/tests/regression/opencsgtest/linear_extrude-tests-expected.png Binary files differindex cbbdc11..faba00e 100644 --- a/tests/regression/opencsgtest/linear_extrude-tests-expected.png +++ b/tests/regression/opencsgtest/linear_extrude-tests-expected.png diff --git a/tests/regression/opencsgtest/minkowski2-tests-expected.png b/tests/regression/opencsgtest/minkowski2-tests-expected.png Binary files differindex 062f1ed..8e7e96e 100644 --- a/tests/regression/opencsgtest/minkowski2-tests-expected.png +++ b/tests/regression/opencsgtest/minkowski2-tests-expected.png diff --git a/tests/regression/opencsgtest/minkowski3-tests-expected.png b/tests/regression/opencsgtest/minkowski3-tests-expected.png Binary files differindex 1f0d572..4ef31a9 100644 --- a/tests/regression/opencsgtest/minkowski3-tests-expected.png +++ b/tests/regression/opencsgtest/minkowski3-tests-expected.png diff --git a/tests/regression/opencsgtest/nothing-decimal-comma-separated-expected.png b/tests/regression/opencsgtest/nothing-decimal-comma-separated-expected.png Binary files differnew file mode 100644 index 0000000..5c4279e --- /dev/null +++ b/tests/regression/opencsgtest/nothing-decimal-comma-separated-expected.png diff --git a/tests/regression/opencsgtest/primitive-inf-tests-expected.png b/tests/regression/opencsgtest/primitive-inf-tests-expected.png Binary files differnew file mode 100644 index 0000000..50d838c --- /dev/null +++ b/tests/regression/opencsgtest/primitive-inf-tests-expected.png diff --git a/tests/regression/opencsgtest/rotate-empty-bbox-expected.png b/tests/regression/opencsgtest/rotate-empty-bbox-expected.png Binary files differnew file mode 100644 index 0000000..182a879 --- /dev/null +++ b/tests/regression/opencsgtest/rotate-empty-bbox-expected.png diff --git a/tests/regression/throwntogethertest/background-modifier-expected.png b/tests/regression/throwntogethertest/background-modifier-expected.png Binary files differindex 499b92f..00533e6 100644 --- a/tests/regression/throwntogethertest/background-modifier-expected.png +++ b/tests/regression/throwntogethertest/background-modifier-expected.png diff --git a/tests/regression/throwntogethertest/difference-2d-tests-expected.png b/tests/regression/throwntogethertest/difference-2d-tests-expected.png Binary files differnew file mode 100644 index 0000000..ee2015e --- /dev/null +++ b/tests/regression/throwntogethertest/difference-2d-tests-expected.png diff --git a/tests/regression/throwntogethertest/difference-tests-expected.png b/tests/regression/throwntogethertest/difference-tests-expected.png Binary files differindex 7a61f42..c694884 100644 --- a/tests/regression/throwntogethertest/difference-tests-expected.png +++ b/tests/regression/throwntogethertest/difference-tests-expected.png diff --git a/tests/regression/throwntogethertest/empty-shape-tests-expected.png b/tests/regression/throwntogethertest/empty-shape-tests-expected.png Binary files differnew file mode 100644 index 0000000..50d838c --- /dev/null +++ b/tests/regression/throwntogethertest/empty-shape-tests-expected.png diff --git a/tests/regression/throwntogethertest/intersection-tests-expected.png b/tests/regression/throwntogethertest/intersection-tests-expected.png Binary files differindex f6cc56f..6dee3c6 100644 --- a/tests/regression/throwntogethertest/intersection-tests-expected.png +++ b/tests/regression/throwntogethertest/intersection-tests-expected.png diff --git a/tests/regression/throwntogethertest/linear_extrude-tests-expected.png b/tests/regression/throwntogethertest/linear_extrude-tests-expected.png Binary files differindex cbbdc11..faba00e 100644 --- a/tests/regression/throwntogethertest/linear_extrude-tests-expected.png +++ b/tests/regression/throwntogethertest/linear_extrude-tests-expected.png diff --git a/tests/regression/throwntogethertest/minkowski2-tests-expected.png b/tests/regression/throwntogethertest/minkowski2-tests-expected.png Binary files differindex a511f37..1118260 100644 --- a/tests/regression/throwntogethertest/minkowski2-tests-expected.png +++ b/tests/regression/throwntogethertest/minkowski2-tests-expected.png diff --git a/tests/regression/throwntogethertest/minkowski3-tests-expected.png b/tests/regression/throwntogethertest/minkowski3-tests-expected.png Binary files differindex 6ba0161..4ef31a9 100644 --- a/tests/regression/throwntogethertest/minkowski3-tests-expected.png +++ b/tests/regression/throwntogethertest/minkowski3-tests-expected.png diff --git a/tests/regression/throwntogethertest/nothing-decimal-comma-separated-expected.png b/tests/regression/throwntogethertest/nothing-decimal-comma-separated-expected.png Binary files differnew file mode 100644 index 0000000..5c4279e --- /dev/null +++ b/tests/regression/throwntogethertest/nothing-decimal-comma-separated-expected.png diff --git a/tests/regression/throwntogethertest/primitive-inf-tests-expected.png b/tests/regression/throwntogethertest/primitive-inf-tests-expected.png Binary files differnew file mode 100644 index 0000000..50d838c --- /dev/null +++ b/tests/regression/throwntogethertest/primitive-inf-tests-expected.png diff --git a/tests/regression/throwntogethertest/rotate-empty-bbox-expected.png b/tests/regression/throwntogethertest/rotate-empty-bbox-expected.png Binary files differnew file mode 100644 index 0000000..4408dc1 --- /dev/null +++ b/tests/regression/throwntogethertest/rotate-empty-bbox-expected.png |