commit 8e0e7a2e804349d87ab4ff06e64e8923a75eaa36
parent 6dd7610f99ef6fe1bd0e57097266202f3da83ba9
Author: Vincent Forest <vincent.forest@meso-star.com>
Date: Fri, 13 Oct 2017 11:41:37 +0200
Test the s3dut_create_thick_truncated_super_shape function
Diffstat:
2 files changed, 187 insertions(+), 1 deletion(-)
diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt
@@ -60,7 +60,7 @@ if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_GNUCC)
set(MATH_LIB m)
endif()
-add_library(s3dut SHARED
+add_library(s3dut SHARED
${S3DUT_FILES_SRC} ${S3DUT_FILES_INC} ${S3DUT_FILES_INC_API})
set_target_properties(s3dut PROPERTIES
DEFINE_SYMBOL S3DUT_SHARED_BUILD
@@ -88,6 +88,7 @@ if(NOT NO_TEST)
new_test(test_s3dut_hemisphere)
new_test(test_s3dut_sphere)
new_test(test_s3dut_super_shape)
+ new_test(test_s3dut_thick_truncated_super_shape)
new_test(test_s3dut_thick_truncated_sphere)
new_test(test_s3dut_truncated_sphere)
diff --git a/src/test_s3dut_thick_truncated_super_shape.c b/src/test_s3dut_thick_truncated_super_shape.c
@@ -0,0 +1,185 @@
+/* Copyright (C) |Meso|Star> 2016-2017 (contact@meso-star.com)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "s3dut.h"
+#include "test_s3dut_utils.h"
+
+int
+main(int argc, char** argv)
+{
+ struct mem_allocator allocator;
+ struct s3dut_mesh* msh;
+ struct s3dut_mesh_data data;
+ struct s3dut_super_formula f0, f1;
+ double z_range[2];
+ (void)argc, (void)argv;
+
+ CHECK(mem_init_proxy_allocator(&allocator, &mem_default_allocator), RES_OK);
+
+ f0.A = 1; f0.B = 1; f0.M = 5; f0.N0 = 1; f0.N1 = 1; f0.N2 = 2;
+ f1.A = 1; f1.B = 1; f1.M = 5; f1.N0 = 1; f1.N1 = 1; f1.N2 = 3;
+
+ #define CREATE s3dut_create_thick_truncated_super_shape
+ CHECK(CREATE(NULL, NULL, NULL, 0, -1, 0, 0, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, NULL, 0, -1, 0, 0, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, &f1, 0, -1, 0, 0, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, &f1, 0, -1, 0, 0, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, NULL, 1, -1, 0, 0, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, NULL, 1, -1, 0, 0, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, &f1, 1, -1, 0, 0, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, &f1, 1, -1, 0, 0, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, NULL, 0, 0, 0, 0, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, NULL, 0, 0, 0, 0, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, &f1, 0, 0, 0, 0, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, &f1, 0, 0, 0, 0, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, NULL, 1, 0, 0, 0, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, NULL, 1, 0, 0, 0, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, &f1, 1, 0, 0, 0, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, &f1, 1, 0, 0, 0, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, NULL, 0, -1, 3, 0, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, NULL, 0, -1, 3, 0, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, &f1, 0, -1, 3, 0, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, &f1, 0, -1, 3, 0, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, NULL, 1, -1, 3, 0, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, NULL, 1, -1, 3, 0, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, &f1, 1, -1, 3, 0, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, &f1, 1, -1, 3, 0, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, NULL, 0, 0, 3, 0, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, NULL, 0, 0, 3, 0, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, &f1, 0, 0, 3, 0, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, &f1, 0, 0, 3, 0, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, NULL, 1, 0, 3, 0, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, NULL, 1, 0, 3, 0, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, &f1, 1, 0, 3, 0, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, &f1, 1, 0, 3, 0, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, NULL, 0, -1, 0, 2, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, NULL, 0, -1, 0, 2, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, &f1, 0, -1, 0, 2, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, &f1, 0, -1, 0, 2, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, NULL, 1, -1, 0, 2, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, NULL, 1, -1, 0, 2, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, &f1, 1, -1, 0, 2, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, &f1, 1, -1, 0, 2, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, NULL, 0, 0, 0, 2, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, NULL, 0, 0, 0, 2, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, &f1, 0, 0, 0, 2, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, &f1, 0, 0, 0, 2, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, NULL, 1, 0, 0, 2, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, NULL, 1, 0, 0, 2, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, &f1, 1, 0, 0, 2, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, &f1, 1, 0, 0, 2, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, NULL, 0, -1, 3, 2, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, NULL, 0, -1, 3, 2, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, &f1, 0, -1, 3, 2, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, &f1, 0, -1, 3, 2, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, NULL, 1, -1, 3, 2, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, NULL, 1, -1, 3, 2, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, &f1, 1, -1, 3, 2, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, &f1, 1, -1, 3, 2, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, NULL, 0, 0, 3, 2, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, NULL, 0, 0, 3, 2, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, &f1, 0, 0, 3, 2, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, &f1, 0, 0, 3, 2, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, NULL, 1, 0, 3, 2, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, NULL, 1, 0, 3, 2, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, &f1, 1, 0, 3, 2, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, &f1, 1, 0, 3, 2, NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, NULL, 0, -1, 0, 0, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, NULL, 0, -1, 0, 0, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, &f1, 0, -1, 0, 0, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, &f1, 0, -1, 0, 0, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, NULL, 1, -1, 0, 0, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, NULL, 1, -1, 0, 0, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, &f1, 1, -1, 0, 0, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, &f1, 1, -1, 0, 0, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, NULL, 0, 0, 0, 0, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, NULL, 0, 0, 0, 0, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, &f1, 0, 0, 0, 0, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, &f1, 0, 0, 0, 0, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, NULL, 1, 0, 0, 0, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, NULL, 1, 0, 0, 0, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, &f1, 1, 0, 0, 0, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, &f1, 1, 0, 0, 0, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, NULL, 0, -1, 3, 0, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, NULL, 0, -1, 3, 0, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, &f1, 0, -1, 3, 0, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, &f1, 0, -1, 3, 0, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, NULL, 1, -1, 3, 0, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, NULL, 1, -1, 3, 0, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, &f1, 1, -1, 3, 0, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, &f1, 1, -1, 3, 0, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, NULL, 0, 0, 3, 0, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, NULL, 0, 0, 3, 0, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, &f1, 0, 0, 3, 0, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, &f1, 0, 0, 3, 0, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, NULL, 1, 0, 3, 0, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, NULL, 1, 0, 3, 0, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, &f1, 1, 0, 3, 0, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, &f1, 1, 0, 3, 0, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, NULL, 0, -1, 0, 2, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, NULL, 0, -1, 0, 2, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, &f1, 0, -1, 0, 2, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, &f1, 0, -1, 0, 2, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, NULL, 1, -1, 0, 2, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, NULL, 1, -1, 0, 2, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, &f1, 1, -1, 0, 2, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, &f1, 1, -1, 0, 2, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, NULL, 0, 0, 0, 2, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, NULL, 0, 0, 0, 2, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, &f1, 0, 0, 0, 2, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, &f1, 0, 0, 0, 2, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, NULL, 1, 0, 0, 2, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, NULL, 1, 0, 0, 2, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, &f1, 1, 0, 0, 2, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, &f1, 1, 0, 0, 2, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, NULL, 0, -1, 3, 2, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, NULL, 0, -1, 3, 2, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, &f1, 0, -1, 3, 2, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, &f1, 0, -1, 3, 2, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, NULL, 1, -1, 3, 2, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, NULL, 1, -1, 3, 2, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, &f1, 1, -1, 3, 2, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, &f1, 1, -1, 3, 2, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, NULL, 0, 0, 3, 2, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, NULL, 0, 0, 3, 2, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, &f1, 0, 0, 3, 2, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, &f1, 0, 0, 3, 2, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, NULL, 1, 0, 3, 2, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, NULL, 1, 0, 3, 2, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, NULL, &f1, 1, 0, 3, 2, NULL, 0, &msh), RES_BAD_ARG);
+ CHECK(CREATE(NULL, &f0, &f1, 1, 0, 3, 2, NULL, 0, &msh), RES_OK);
+ CHECK(s3dut_mesh_ref_put(msh), RES_OK);
+
+ CHECK(CREATE(&allocator, &f0, &f1, 1, 0, 3, 2, NULL, 0, &msh), RES_OK);
+ CHECK(s3dut_mesh_ref_put(msh), RES_OK);
+
+ z_range[0] = -0.1, z_range[1] = 0.5;
+ CHECK(CREATE(&allocator, &f0, &f1, 1, 0.3, 32, 16, z_range, S3DUT_CAP_NEG_Z,
+ &msh), RES_OK);
+
+ CHECK(s3dut_mesh_get_data(msh, &data), RES_OK);
+ NCHECK(data.positions, NULL);
+ NCHECK(data.indices, NULL);
+
+ dump_mesh_data(stdout, &data);
+
+ CHECK(s3dut_mesh_ref_put(msh), RES_OK);
+
+ check_memory_allocator(&allocator);
+ mem_shutdown_proxy_allocator(&allocator);
+ CHECK(mem_allocated_size(), 0);
+ return 0;
+}
+