diff options
author | sanine <sanine.not@pm.me> | 2023-02-12 23:53:22 -0600 |
---|---|---|
committer | sanine <sanine.not@pm.me> | 2023-02-12 23:53:22 -0600 |
commit | f1fe73d1909a2448a004a88362a1a532d0d4f7c3 (patch) | |
tree | ab37ae3837e2f858de2932bcee9f26e69fab3db1 /libs/assimp/test/unit | |
parent | f567ea1e2798fd3156a416e61f083ea3e6b95719 (diff) |
switch to tinyobj and nanovg from assimp and cairo
Diffstat (limited to 'libs/assimp/test/unit')
133 files changed, 0 insertions, 16012 deletions
diff --git a/libs/assimp/test/unit/AbstractImportExportBase.cpp b/libs/assimp/test/unit/AbstractImportExportBase.cpp deleted file mode 100644 index 31402f4..0000000 --- a/libs/assimp/test/unit/AbstractImportExportBase.cpp +++ /dev/null @@ -1,49 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "AbstractImportExportBase.h" - -using namespace ::Assimp; - -AbstractImportExportBase::~AbstractImportExportBase() { - // empty -} diff --git a/libs/assimp/test/unit/AbstractImportExportBase.h b/libs/assimp/test/unit/AbstractImportExportBase.h deleted file mode 100644 index 7651d2e..0000000 --- a/libs/assimp/test/unit/AbstractImportExportBase.h +++ /dev/null @@ -1,75 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2020, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#pragma once -#ifndef AI_ABSTRACTIMPORTEXPORTBASE_H_INC -#define AI_ABSTRACTIMPORTEXPORTBASE_H_INC - -#include "UnitTestPCH.h" - -// --------------------------------------------------------------------------- -/** Abstract base class to test import and export - */ - // --------------------------------------------------------------------------- -class AbstractImportExportBase : public ::testing::Test { -public: - /// @brief The class destructor. - virtual ~AbstractImportExportBase(); - - /// @brief The importer-test, will return true for successful import. - /// @return true for success, false for failure. - virtual bool importerTest(); - - /// @brief The exporter-test, will return true for successful import. - /// @return true for success, false for failure. - virtual bool exporterTest(); -}; - -inline -bool AbstractImportExportBase::importerTest() { - return true; -} - -inline -bool AbstractImportExportBase::exporterTest() { - return true; -} - -#endif // AI_ABSTRACTIMPORTEXPORTBASE_H_INC diff --git a/libs/assimp/test/unit/AssimpAPITest.cpp b/libs/assimp/test/unit/AssimpAPITest.cpp deleted file mode 100644 index b8739b0..0000000 --- a/libs/assimp/test/unit/AssimpAPITest.cpp +++ /dev/null @@ -1,62 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "UnitTestPCH.h" -#include <assimp/importerdesc.h> - -using namespace Assimp; - -class AssimpAPITest : public ::testing::Test { - // empty -}; - -TEST_F( AssimpAPITest, aiGetImporterDescTest ) { - const aiImporterDesc *desc( nullptr ); - desc = aiGetImporterDesc(nullptr); - EXPECT_EQ(nullptr, desc); - - desc = aiGetImporterDesc( "obj" ); - EXPECT_TRUE(nullptr != desc); -} - -TEST_F( AssimpAPITest, aiGetLastErrorTest ) { - const char *error = aiGetErrorString(); - EXPECT_NE(nullptr, error); -} diff --git a/libs/assimp/test/unit/AssimpAPITest_aiMatrix3x3.cpp b/libs/assimp/test/unit/AssimpAPITest_aiMatrix3x3.cpp deleted file mode 100644 index 90976ba..0000000 --- a/libs/assimp/test/unit/AssimpAPITest_aiMatrix3x3.cpp +++ /dev/null @@ -1,151 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "UnitTestPCH.h" -#include "MathTest.h" - -using namespace Assimp; - -class AssimpAPITest_aiMatrix3x3 : public AssimpMathTest { -protected: - virtual void SetUp() { - result_c = result_cpp = aiMatrix3x3(); - } - - aiMatrix3x3 result_c, result_cpp; -}; - -TEST_F(AssimpAPITest_aiMatrix3x3, aiIdentityMatrix3Test) { - // Force a non-identity matrix. - result_c = aiMatrix3x3(0,0,0,0,0,0,0,0,0); - aiIdentityMatrix3(&result_c); - EXPECT_EQ(result_cpp, result_c); -} - -TEST_F(AssimpAPITest_aiMatrix3x3, aiMatrix3FromMatrix4Test) { - const auto m = random_mat4(); - result_cpp = aiMatrix3x3(m); - aiMatrix3FromMatrix4(&result_c, &m); - EXPECT_EQ(result_cpp, result_c); -} - -TEST_F(AssimpAPITest_aiMatrix3x3, aiMatrix3FromQuaternionTest) { - const auto q = random_quat(); - result_cpp = q.GetMatrix(); - aiMatrix3FromQuaternion(&result_c, &q); - EXPECT_EQ(result_cpp, result_c); -} - -TEST_F(AssimpAPITest_aiMatrix3x3, aiMatrix3AreEqualTest) { - result_c = result_cpp = random_mat3(); - EXPECT_EQ(result_cpp == result_c, - (bool)aiMatrix3AreEqual(&result_cpp, &result_c)); -} - -TEST_F(AssimpAPITest_aiMatrix3x3, aiMatrix3AreEqualEpsilonTest) { - result_c = result_cpp = random_mat3(); - EXPECT_EQ(result_cpp.Equal(result_c, Epsilon), - (bool)aiMatrix3AreEqualEpsilon(&result_cpp, &result_c, Epsilon)); -} - -TEST_F(AssimpAPITest_aiMatrix3x3, aiMultiplyMatrix3Test) { - const auto m = random_mat3(); - result_c = result_cpp = random_mat3(); - result_cpp *= m; - aiMultiplyMatrix3(&result_c, &m); - EXPECT_EQ(result_cpp, result_c); -} - -TEST_F(AssimpAPITest_aiMatrix3x3, aiTransposeMatrix3Test) { - result_c = result_cpp = random_mat3(); - result_cpp.Transpose(); - aiTransposeMatrix3(&result_c); - EXPECT_EQ(result_cpp, result_c); -} - -TEST_F(AssimpAPITest_aiMatrix3x3, aiMatrix3InverseTest) { - // Use a predetermined matrix to prevent arbitrary - // cases where it could have a null determinant. - result_c = result_cpp = aiMatrix3x3( - 5, 2, 7, - 4, 6, 9, - 1, 8, 3); - result_cpp.Inverse(); - aiMatrix3Inverse(&result_c); - EXPECT_EQ(result_cpp, result_c); -} - -TEST_F(AssimpAPITest_aiMatrix3x3, aiMatrix3DeterminantTest) { - result_c = result_cpp = random_mat3(); - EXPECT_EQ(result_cpp.Determinant(), - aiMatrix3Determinant(&result_c)); -} - -TEST_F(AssimpAPITest_aiMatrix3x3, aiMatrix3RotationZTest) { - const float angle(RandPI.next()); - aiMatrix3x3::RotationZ(angle, result_cpp); - aiMatrix3RotationZ(&result_c, angle); - EXPECT_EQ(result_cpp, result_c); -} - -TEST_F(AssimpAPITest_aiMatrix3x3, aiMatrix3FromRotationAroundAxisTest) { - const float angle(RandPI.next()); - const auto axis = random_unit_vec3(); - aiMatrix3x3::Rotation(angle, axis, result_cpp); - aiMatrix3FromRotationAroundAxis(&result_c, &axis, angle); - EXPECT_EQ(result_cpp, result_c); -} - -TEST_F(AssimpAPITest_aiMatrix3x3, aiMatrix3TranslationTest) { - const auto axis = random_vec2(); - aiMatrix3x3::Translation(axis, result_cpp); - aiMatrix3Translation(&result_c, &axis); - EXPECT_EQ(result_cpp, result_c); -} - -TEST_F(AssimpAPITest_aiMatrix3x3, aiMatrix3FromToTest) { - // Use predetermined vectors to prevent running into division by zero. - const auto from = aiVector3D(1,2,1).Normalize(), to = aiVector3D(-1,1,1).Normalize(); - aiMatrix3x3::FromToMatrix(from, to, result_cpp); - aiMatrix3FromTo(&result_c, &from, &to); - EXPECT_EQ(result_cpp, result_c); -} diff --git a/libs/assimp/test/unit/AssimpAPITest_aiMatrix4x4.cpp b/libs/assimp/test/unit/AssimpAPITest_aiMatrix4x4.cpp deleted file mode 100644 index 9372bd9..0000000 --- a/libs/assimp/test/unit/AssimpAPITest_aiMatrix4x4.cpp +++ /dev/null @@ -1,259 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "UnitTestPCH.h" -#include "MathTest.h" - -using namespace Assimp; - -class AssimpAPITest_aiMatrix4x4 : public AssimpMathTest { -protected: - virtual void SetUp() { - result_c = result_cpp = aiMatrix4x4(); - } - - /* Generates a predetermined transformation matrix to use - for the aiDecompose functions to prevent running into - division by zero. */ - aiMatrix4x4 get_predetermined_transformation_matrix_for_decomposition() const { - aiMatrix4x4 t, r; - aiMatrix4x4::Translation(aiVector3D(14,-25,-8), t); - aiMatrix4x4::Rotation(Math::aiPi<float>() / 4.0f, aiVector3D(1).Normalize(), r); - return t * r; - } - - aiMatrix4x4 result_c, result_cpp; -}; - -TEST_F(AssimpAPITest_aiMatrix4x4, aiIdentityMatrix4Test) { - // Force a non-identity matrix. - result_c = aiMatrix4x4(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); - aiIdentityMatrix4(&result_c); - EXPECT_EQ(result_cpp, result_c); -} - -TEST_F(AssimpAPITest_aiMatrix4x4, aiMatrix4FromMatrix3Test) { - aiMatrix3x3 m = random_mat3(); - result_cpp = aiMatrix4x4(m); - aiMatrix4FromMatrix3(&result_c, &m); - EXPECT_EQ(result_cpp, result_c); -} - -TEST_F(AssimpAPITest_aiMatrix4x4, aiMatrix4FromScalingQuaternionPositionTest) { - const aiVector3D s = random_vec3(); - const aiQuaternion q = random_quat(); - const aiVector3D t = random_vec3(); - result_cpp = aiMatrix4x4(s, q, t); - aiMatrix4FromScalingQuaternionPosition(&result_c, &s, &q, &t); - EXPECT_EQ(result_cpp, result_c); -} - -TEST_F(AssimpAPITest_aiMatrix4x4, aiMatrix4AddTest) { - const aiMatrix4x4 temp = random_mat4(); - result_c = result_cpp = random_mat4(); - result_cpp = result_cpp + temp; - aiMatrix4Add(&result_c, &temp); - EXPECT_EQ(result_cpp, result_c); -} - -TEST_F(AssimpAPITest_aiMatrix4x4, aiMatrix4AreEqualTest) { - result_c = result_cpp = random_mat4(); - EXPECT_EQ(result_cpp == result_c, - (bool)aiMatrix4AreEqual(&result_cpp, &result_c)); -} - -TEST_F(AssimpAPITest_aiMatrix4x4, aiMatrix4AreEqualEpsilonTest) { - result_c = result_cpp = random_mat4(); - EXPECT_EQ(result_cpp.Equal(result_c, Epsilon), - (bool)aiMatrix4AreEqualEpsilon(&result_cpp, &result_c, Epsilon)); -} - -TEST_F(AssimpAPITest_aiMatrix4x4, aiMultiplyMatrix4Test) { - const auto m = random_mat4(); - result_c = result_cpp = random_mat4(); - result_cpp *= m; - aiMultiplyMatrix4(&result_c, &m); - EXPECT_EQ(result_cpp, result_c); -} - -TEST_F(AssimpAPITest_aiMatrix4x4, aiTransposeMatrix4Test) { - result_c = result_cpp = random_mat4(); - result_cpp.Transpose(); - aiTransposeMatrix4(&result_c); - EXPECT_EQ(result_cpp, result_c); -} - -TEST_F(AssimpAPITest_aiMatrix4x4, aiMatrix4InverseTest) { - // Use a predetermined matrix to prevent arbitrary - // cases where it could have a null determinant. - result_c = result_cpp = aiMatrix4x4( - 6, 10, 15, 3, - 14, 2, 12, 8, - 9, 13, 5, 16, - 4, 7, 11, 1); - result_cpp.Inverse(); - aiMatrix4Inverse(&result_c); - EXPECT_EQ(result_cpp, result_c); -} - -TEST_F(AssimpAPITest_aiMatrix4x4, aiMatrix4DeterminantTest) { - result_c = result_cpp = random_mat4(); - EXPECT_EQ(result_cpp.Determinant(), - aiMatrix4Determinant(&result_c)); -} - -TEST_F(AssimpAPITest_aiMatrix4x4, aiMatrix4IsIdentityTest) { - EXPECT_EQ(result_cpp.IsIdentity(), - (bool)aiMatrix4IsIdentity(&result_c)); -} - -TEST_F(AssimpAPITest_aiMatrix4x4, aiDecomposeMatrixTest) { - aiVector3D scaling_c, scaling_cpp, - position_c, position_cpp; - aiQuaternion rotation_c, rotation_cpp; - - result_c = result_cpp = get_predetermined_transformation_matrix_for_decomposition(); - result_cpp.Decompose(scaling_cpp, rotation_cpp, position_cpp); - aiDecomposeMatrix(&result_c, &scaling_c, &rotation_c, &position_c); - EXPECT_EQ(scaling_cpp, scaling_c); - EXPECT_EQ(position_cpp, position_c); - EXPECT_EQ(rotation_cpp, rotation_c); -} - -TEST_F(AssimpAPITest_aiMatrix4x4, aiMatrix4DecomposeIntoScalingEulerAnglesPositionTest) { - aiVector3D scaling_c, scaling_cpp, - rotation_c, rotation_cpp, - position_c, position_cpp; - - result_c = result_cpp = get_predetermined_transformation_matrix_for_decomposition(); - result_cpp.Decompose(scaling_cpp, rotation_cpp, position_cpp); - aiMatrix4DecomposeIntoScalingEulerAnglesPosition(&result_c, &scaling_c, &rotation_c, &position_c); - EXPECT_EQ(scaling_cpp, scaling_c); - EXPECT_EQ(position_cpp, position_c); - EXPECT_EQ(rotation_cpp, rotation_c); -} - -TEST_F(AssimpAPITest_aiMatrix4x4, aiMatrix4DecomposeIntoScalingAxisAnglePositionTest) { - aiVector3D scaling_c, scaling_cpp, - axis_c, axis_cpp, - position_c, position_cpp; - ai_real angle_c, angle_cpp; - - result_c = result_cpp = get_predetermined_transformation_matrix_for_decomposition(); - result_cpp.Decompose(scaling_cpp, axis_cpp, angle_cpp, position_cpp); - aiMatrix4DecomposeIntoScalingAxisAnglePosition(&result_c, &scaling_c, &axis_c, &angle_c, &position_c); - EXPECT_EQ(scaling_cpp, scaling_c); - EXPECT_EQ(axis_cpp, axis_c); - EXPECT_EQ(angle_cpp, angle_c); - EXPECT_EQ(position_cpp, position_c); -} - -TEST_F(AssimpAPITest_aiMatrix4x4, aiMatrix4DecomposeNoScalingTest) { - aiVector3D position_c, position_cpp; - aiQuaternion rotation_c, rotation_cpp; - - result_c = result_cpp = get_predetermined_transformation_matrix_for_decomposition(); - result_cpp.DecomposeNoScaling(rotation_cpp, position_cpp); - aiMatrix4DecomposeNoScaling(&result_c, &rotation_c, &position_c); - EXPECT_EQ(position_cpp, position_c); - EXPECT_EQ(rotation_cpp, rotation_c); -} - -TEST_F(AssimpAPITest_aiMatrix4x4, aiMatrix4FromEulerAnglesTest) { - const float x(RandPI.next()), - y(RandPI.next()), - z(RandPI.next()); - result_cpp.FromEulerAnglesXYZ(x, y, z); - aiMatrix4FromEulerAngles(&result_c, x, y, z); - EXPECT_EQ(result_cpp, result_c); -} - -TEST_F(AssimpAPITest_aiMatrix4x4, aiMatrix4RotationXTest) { - const float angle(RandPI.next()); - aiMatrix4x4::RotationX(angle, result_cpp); - aiMatrix4RotationX(&result_c, angle); - EXPECT_EQ(result_cpp, result_c); -} - -TEST_F(AssimpAPITest_aiMatrix4x4, aiMatrix4RotationYTest) { - const float angle(RandPI.next()); - aiMatrix4x4::RotationY(angle, result_cpp); - aiMatrix4RotationY(&result_c, angle); - EXPECT_EQ(result_cpp, result_c); -} - -TEST_F(AssimpAPITest_aiMatrix4x4, aiMatrix4RotationZTest) { - const float angle(RandPI.next()); - aiMatrix4x4::RotationZ(angle, result_cpp); - aiMatrix4RotationZ(&result_c, angle); - EXPECT_EQ(result_cpp, result_c); -} - -TEST_F(AssimpAPITest_aiMatrix4x4, aiMatrix4FromRotationAroundAxisTest) { - const float angle(RandPI.next()); - const auto axis = random_unit_vec3(); - aiMatrix4x4::Rotation(angle, axis, result_cpp); - aiMatrix4FromRotationAroundAxis(&result_c, &axis, angle); - EXPECT_EQ(result_cpp, result_c); -} - -TEST_F(AssimpAPITest_aiMatrix4x4, aiMatrix4TranslationTest) { - const auto axis = random_vec3(); - aiMatrix4x4::Translation(axis, result_cpp); - aiMatrix4Translation(&result_c, &axis); - EXPECT_EQ(result_cpp, result_c); -} - -TEST_F(AssimpAPITest_aiMatrix4x4, aiMatrix4ScalingTest) { - const auto scaling = random_vec3(); - aiMatrix4x4::Scaling(scaling, result_cpp); - aiMatrix4Scaling(&result_c, &scaling); - EXPECT_EQ(result_cpp, result_c); -} - -TEST_F(AssimpAPITest_aiMatrix4x4, aiMatrix4FromToTest) { - // Use predetermined vectors to prevent running into division by zero. - const auto from = aiVector3D(1,2,1).Normalize(), to = aiVector3D(-1,1,1).Normalize(); - aiMatrix4x4::FromToMatrix(from, to, result_cpp); - aiMatrix4FromTo(&result_c, &from, &to); - EXPECT_EQ(result_cpp, result_c); -} diff --git a/libs/assimp/test/unit/AssimpAPITest_aiQuaternion.cpp b/libs/assimp/test/unit/AssimpAPITest_aiQuaternion.cpp deleted file mode 100644 index 8f57bc5..0000000 --- a/libs/assimp/test/unit/AssimpAPITest_aiQuaternion.cpp +++ /dev/null @@ -1,135 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "UnitTestPCH.h" -#include "MathTest.h" - -using namespace Assimp; - -class AssimpAPITest_aiQuaternion : public AssimpMathTest { -protected: - virtual void SetUp() { - result_c = result_cpp = aiQuaternion(); - } - - aiQuaternion result_c, result_cpp; -}; - -TEST_F(AssimpAPITest_aiQuaternion, aiCreateQuaternionFromMatrixTest) { - // Use a predetermined transformation matrix - // to prevent running into division by zero. - aiMatrix3x3 m, r; - aiMatrix3x3::Translation(aiVector2D(14,-25), m); - aiMatrix3x3::RotationZ(Math::aiPi<float>() / 4.0f, r); - m = m * r; - - result_cpp = aiQuaternion(m); - aiCreateQuaternionFromMatrix(&result_c, &m); - EXPECT_EQ(result_cpp, result_c); -} - -TEST_F(AssimpAPITest_aiQuaternion, aiQuaternionFromEulerAnglesTest) { - const float x(RandPI.next()), - y(RandPI.next()), - z(RandPI.next()); - result_cpp = aiQuaternion(x, y, z); - aiQuaternionFromEulerAngles(&result_c, x, y, z); - EXPECT_EQ(result_cpp, result_c); -} - -TEST_F(AssimpAPITest_aiQuaternion, aiQuaternionFromAxisAngleTest) { - const float angle(RandPI.next()); - const aiVector3D axis(random_unit_vec3()); - result_cpp = aiQuaternion(axis, angle); - aiQuaternionFromAxisAngle(&result_c, &axis, angle); - EXPECT_EQ(result_cpp, result_c); -} - -TEST_F(AssimpAPITest_aiQuaternion, aiQuaternionFromNormalizedQuaternionTest) { - const auto qvec3 = random_unit_vec3(); - result_cpp = aiQuaternion(qvec3); - aiQuaternionFromNormalizedQuaternion(&result_c, &qvec3); - EXPECT_EQ(result_cpp, result_c); -} - -TEST_F(AssimpAPITest_aiQuaternion, aiQuaternionAreEqualTest) { - result_c = result_cpp = random_quat(); - EXPECT_EQ(result_cpp == result_c, - (bool)aiQuaternionAreEqual(&result_cpp, &result_c)); -} - -TEST_F(AssimpAPITest_aiQuaternion, aiQuaternionAreEqualEpsilonTest) { - result_c = result_cpp = random_quat(); - EXPECT_EQ(result_cpp.Equal(result_c, Epsilon), - (bool)aiQuaternionAreEqualEpsilon(&result_cpp, &result_c, Epsilon)); -} - -TEST_F(AssimpAPITest_aiQuaternion, aiQuaternionNormalizeTest) { - result_c = result_cpp = random_quat(); - aiQuaternionNormalize(&result_c); - EXPECT_EQ(result_cpp.Normalize(), result_c); -} - -TEST_F(AssimpAPITest_aiQuaternion, aiQuaternionConjugateTest) { - result_c = result_cpp = random_quat(); - aiQuaternionConjugate(&result_c); - EXPECT_EQ(result_cpp.Conjugate(), result_c); -} - -TEST_F(AssimpAPITest_aiQuaternion, aiQuaternionMultiplyTest) { - const aiQuaternion temp = random_quat(); - result_c = result_cpp = random_quat(); - result_cpp = result_cpp * temp; - aiQuaternionMultiply(&result_c, &temp); - EXPECT_EQ(result_cpp, result_c); -} - -TEST_F(AssimpAPITest_aiQuaternion, aiQuaternionInterpolateTest) { - // Use predetermined quaternions to prevent division by zero - // during slerp calculations. - const float INTERPOLATION(0.5f); - const auto q1 = aiQuaternion(aiVector3D(-1,1,1).Normalize(), Math::aiPi<float>() / 4.0f); - const auto q2 = aiQuaternion(aiVector3D(1,2,1).Normalize(), Math::aiPi<float>() / 2.0f); - aiQuaternion::Interpolate(result_cpp, q1, q2, INTERPOLATION); - aiQuaternionInterpolate(&result_c, &q1, &q2, INTERPOLATION); - EXPECT_EQ(result_cpp, result_c); -} diff --git a/libs/assimp/test/unit/AssimpAPITest_aiVector2D.cpp b/libs/assimp/test/unit/AssimpAPITest_aiVector2D.cpp deleted file mode 100644 index 44bb34a..0000000 --- a/libs/assimp/test/unit/AssimpAPITest_aiVector2D.cpp +++ /dev/null @@ -1,140 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "UnitTestPCH.h" -#include "MathTest.h" - -using namespace Assimp; - -class AssimpAPITest_aiVector2D : public AssimpMathTest { -protected: - virtual void SetUp() { - result_c = result_cpp = aiVector2D(); - temp = random_vec2(); // Generates a random 2D vector != null vector. - } - - aiVector2D result_c, result_cpp, temp; -}; - -TEST_F(AssimpAPITest_aiVector2D, aiVector2AreEqualTest) { - result_c = result_cpp = random_vec2(); - EXPECT_EQ(result_cpp == result_c, - (bool)aiVector2AreEqual(&result_cpp, &result_c)); -} - -TEST_F(AssimpAPITest_aiVector2D, aiVector2AreEqualEpsilonTest) { - result_c = result_cpp = random_vec2(); - EXPECT_EQ(result_cpp.Equal(result_c, Epsilon), - (bool)aiVector2AreEqualEpsilon(&result_cpp, &result_c, Epsilon)); -} - -TEST_F(AssimpAPITest_aiVector2D, aiVector2AddTest) { - result_c = result_cpp = random_vec2(); - result_cpp += temp; - aiVector2Add(&result_c, &temp); - EXPECT_EQ(result_cpp, result_c); -} - -TEST_F(AssimpAPITest_aiVector2D, aiVector2SubtractTest) { - result_c = result_cpp = random_vec2(); - result_cpp -= temp; - aiVector2Subtract(&result_c, &temp); - EXPECT_EQ(result_cpp, result_c); -} - -TEST_F(AssimpAPITest_aiVector2D, aiVector2ScaleTest) { - const float FACTOR = RandNonZero.next(); - result_c = result_cpp = random_vec2(); - result_cpp *= FACTOR; - aiVector2Scale(&result_c, FACTOR); - EXPECT_EQ(result_cpp, result_c); -} - -TEST_F(AssimpAPITest_aiVector2D, aiVector2SymMulTest) { - result_c = result_cpp = random_vec2(); - result_cpp = result_cpp.SymMul(temp); - aiVector2SymMul(&result_c, &temp); - EXPECT_EQ(result_cpp, result_c); -} - -TEST_F(AssimpAPITest_aiVector2D, aiVector2DivideByScalarTest) { - const float DIVISOR = RandNonZero.next(); - result_c = result_cpp = random_vec2(); - result_cpp /= DIVISOR; - aiVector2DivideByScalar(&result_c, DIVISOR); - EXPECT_EQ(result_cpp, result_c); -} - -TEST_F(AssimpAPITest_aiVector2D, aiVector2DivideByVectorTest) { - result_c = result_cpp = random_vec2(); - result_cpp = result_cpp / temp; - aiVector2DivideByVector(&result_c, &temp); - EXPECT_EQ(result_cpp, result_c); -} - -TEST_F(AssimpAPITest_aiVector2D, aiVector2LengthTest) { - result_c = result_cpp = random_vec2(); - EXPECT_EQ(result_cpp.Length(), aiVector2Length(&result_c)); -} - -TEST_F(AssimpAPITest_aiVector2D, aiVector2SquareLengthTest) { - result_c = result_cpp = random_vec2(); - EXPECT_EQ(result_cpp.SquareLength(), aiVector2SquareLength(&result_c)); -} - -TEST_F(AssimpAPITest_aiVector2D, aiVector2NegateTest) { - result_c = result_cpp = random_vec2(); - aiVector2Negate(&result_c); - EXPECT_EQ(-result_cpp, result_c); -} - -TEST_F(AssimpAPITest_aiVector2D, aiVector2DotProductTest) { - result_c = result_cpp = random_vec2(); - EXPECT_EQ(result_cpp * result_c, - aiVector2DotProduct(&result_cpp, &result_c)); -} - -TEST_F(AssimpAPITest_aiVector2D, aiVector2NormalizeTest) { - result_c = result_cpp = random_vec2(); - aiVector2Normalize(&result_c); - EXPECT_EQ(result_cpp.Normalize(), result_c); -} diff --git a/libs/assimp/test/unit/AssimpAPITest_aiVector3D.cpp b/libs/assimp/test/unit/AssimpAPITest_aiVector3D.cpp deleted file mode 100644 index c752116..0000000 --- a/libs/assimp/test/unit/AssimpAPITest_aiVector3D.cpp +++ /dev/null @@ -1,185 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "UnitTestPCH.h" -#include "MathTest.h" - -using namespace Assimp; - -class AssimpAPITest_aiVector3D : public AssimpMathTest { -protected: - virtual void SetUp() { - result_c = result_cpp = aiVector3D(); - temp = random_vec3(); // Generates a random 3D vector != null vector. - } - - aiVector3D result_c, result_cpp, temp; -}; - -TEST_F(AssimpAPITest_aiVector3D, aiVector3AreEqualTest) { - result_c = result_cpp = random_vec3(); - EXPECT_EQ(result_cpp == result_c, - (bool)aiVector3AreEqual(&result_cpp, &result_c)); -} - -TEST_F(AssimpAPITest_aiVector3D, aiVector3AreEqualEpsilonTest) { - result_c = result_cpp = random_vec3(); - EXPECT_EQ(result_cpp.Equal(result_c, Epsilon), - (bool)aiVector3AreEqualEpsilon(&result_cpp, &result_c, Epsilon)); -} - -TEST_F(AssimpAPITest_aiVector3D, aiVector3LessThanTest) { - result_c = result_cpp = random_vec3(); - EXPECT_EQ(result_cpp < temp, - (bool)aiVector3LessThan(&result_c, &temp)); -} - -TEST_F(AssimpAPITest_aiVector3D, aiVector3AddTest) { - result_c = result_cpp = random_vec3(); - result_cpp += temp; - aiVector3Add(&result_c, &temp); - EXPECT_EQ(result_cpp, result_c); -} - -TEST_F(AssimpAPITest_aiVector3D, aiVector3SubtractTest) { - result_c = result_cpp = random_vec3(); - result_cpp -= temp; - aiVector3Subtract(&result_c, &temp); - EXPECT_EQ(result_cpp, result_c); -} - -TEST_F(AssimpAPITest_aiVector3D, aiVector3ScaleTest) { - const float FACTOR = RandNonZero.next(); - result_c = result_cpp = random_vec3(); - result_cpp *= FACTOR; - aiVector3Scale(&result_c, FACTOR); - EXPECT_EQ(result_cpp, result_c); -} - -TEST_F(AssimpAPITest_aiVector3D, aiVector3SymMulTest) { - result_c = result_cpp = random_vec3(); - result_cpp = result_cpp.SymMul(temp); - aiVector3SymMul(&result_c, &temp); - EXPECT_EQ(result_cpp, result_c); -} - -TEST_F(AssimpAPITest_aiVector3D, aiVector3DivideByScalarTest) { - const float DIVISOR = RandNonZero.next(); - result_c = result_cpp = random_vec3(); - result_cpp /= DIVISOR; - aiVector3DivideByScalar(&result_c, DIVISOR); - EXPECT_EQ(result_cpp, result_c); -} - -TEST_F(AssimpAPITest_aiVector3D, aiVector3DivideByVectorTest) { - result_c = result_cpp = random_vec3(); - result_cpp = result_cpp / temp; - aiVector3DivideByVector(&result_c, &temp); - EXPECT_EQ(result_cpp, result_c); -} - -TEST_F(AssimpAPITest_aiVector3D, aiVector3LengthTest) { - result_c = result_cpp = random_vec3(); - EXPECT_EQ(result_cpp.Length(), aiVector3Length(&result_c)); -} - -TEST_F(AssimpAPITest_aiVector3D, aiVector3SquareLengthTest) { - result_c = result_cpp = random_vec3(); - EXPECT_EQ(result_cpp.SquareLength(), aiVector3SquareLength(&result_c)); -} - -TEST_F(AssimpAPITest_aiVector3D, aiVector3NegateTest) { - result_c = result_cpp = random_vec3(); - aiVector3Negate(&result_c); - EXPECT_EQ(-result_cpp, result_c); -} - -TEST_F(AssimpAPITest_aiVector3D, aiVector3DotProductTest) { - result_c = result_cpp = random_vec3(); - EXPECT_EQ(result_cpp * result_c, - aiVector3DotProduct(&result_cpp, &result_c)); -} - -TEST_F(AssimpAPITest_aiVector3D, aiVector3CrossProductTest) { - result_c = result_cpp = random_vec3(); - result_cpp = result_cpp ^ temp; - aiVector3CrossProduct(&result_c, &result_c, &temp); - EXPECT_EQ(result_cpp, result_c); -} - -TEST_F(AssimpAPITest_aiVector3D, aiVector3NormalizeTest) { - result_c = result_cpp = random_vec3(); - aiVector3Normalize(&result_c); - EXPECT_EQ(result_cpp.Normalize(), result_c); -} - -TEST_F(AssimpAPITest_aiVector3D, aiVector3NormalizeSafeTest) { - result_c = result_cpp = random_vec3(); - aiVector3NormalizeSafe(&result_c); - EXPECT_EQ(result_cpp.NormalizeSafe(), result_c); -} - -TEST_F(AssimpAPITest_aiVector3D, aiVector3RotateByQuaternionTest) { - aiVector3D v_c, v_cpp; - v_c = v_cpp = random_vec3(); - const auto q = random_quat(); - aiVector3RotateByQuaternion(&v_c, &q); - EXPECT_EQ(q.Rotate(v_cpp), v_c); -} - -TEST_F(AssimpAPITest_aiVector3D, aiTransformVecByMatrix3Test) { - const auto m = random_mat3(); - aiVector3D v_c, v_cpp; - v_c = v_cpp = random_vec3(); - v_cpp *= m; - aiTransformVecByMatrix3(&v_c, &m); - EXPECT_EQ(v_cpp, v_c); -} - -TEST_F(AssimpAPITest_aiVector3D, aiTransformVecByMatrix4Test) { - const auto m = random_mat4(); - aiVector3D v_c, v_cpp; - v_c = v_cpp = random_vec3(); - v_cpp *= m; - aiTransformVecByMatrix4(&v_c, &m); - EXPECT_EQ(v_cpp, v_c); -} diff --git a/libs/assimp/test/unit/CCompilerTest.c b/libs/assimp/test/unit/CCompilerTest.c deleted file mode 100644 index 68dfdf0..0000000 --- a/libs/assimp/test/unit/CCompilerTest.c +++ /dev/null @@ -1,9 +0,0 @@ - -/* This is just a small test to check whether Assimp's API compiles from C */ - -#include <assimp/postprocess.h> -#include <assimp/scene.h> -#include <assimp/version.h> -#include <assimp/config.h> -#include <assimp/cimport.h> -#include <assimp/cexport.h> diff --git a/libs/assimp/test/unit/Common/uiScene.cpp b/libs/assimp/test/unit/Common/uiScene.cpp deleted file mode 100644 index 87001ce..0000000 --- a/libs/assimp/test/unit/Common/uiScene.cpp +++ /dev/null @@ -1,109 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ - -#include "UnitTestPCH.h" - -#include <assimp/scene.h> -#include <assimp/SceneCombiner.h> - -using namespace Assimp; - -class utScene : public ::testing::Test { -protected: - aiScene *scene; - - void SetUp() override { - scene = new aiScene; - } - - void TearDown() override { - delete scene; - scene = nullptr; - } -}; - -TEST_F(utScene, findNodeTest) { - scene->mRootNode = new aiNode(); - scene->mRootNode->mName.Set("test"); - aiNode *child = new aiNode; - child->mName.Set("child"); - scene->mRootNode->addChildren(1, &child); - aiNode *found = scene->mRootNode->FindNode("child"); - EXPECT_EQ(child, found); -} - -TEST_F(utScene, sceneHasContentTest) { - EXPECT_FALSE(scene->HasAnimations()); - EXPECT_FALSE(scene->HasMaterials()); - EXPECT_FALSE(scene->HasMeshes()); - EXPECT_FALSE(scene->HasCameras()); - EXPECT_FALSE(scene->HasLights()); - EXPECT_FALSE(scene->HasTextures()); -} - -TEST_F(utScene, getShortFilenameTest) { - std::string long_filename1 = "foo_bar/name"; - const char *name1 = scene->GetShortFilename(long_filename1.c_str()); - EXPECT_NE(nullptr, name1); - - std::string long_filename2 = "foo_bar\\name"; - const char *name2 = scene->GetShortFilename(long_filename2.c_str()); - EXPECT_NE(nullptr, name2); -} - -TEST_F(utScene, deepCopyTest) { - scene->mRootNode = new aiNode(); - - scene->mNumMeshes = 1; - scene->mMeshes = new aiMesh *[scene->mNumMeshes] (); - scene->mMeshes[0] = new aiMesh (); - - scene->mMeshes[0]->SetTextureCoordsName (0, aiString ("test")); - - { - aiScene* copied = nullptr; - SceneCombiner::CopyScene(&copied,scene); - delete copied; - } -} - -TEST_F(utScene, getEmbeddedTextureTest) { -} diff --git a/libs/assimp/test/unit/Common/utAssertHandler.cpp b/libs/assimp/test/unit/Common/utAssertHandler.cpp deleted file mode 100644 index a2585fe..0000000 --- a/libs/assimp/test/unit/Common/utAssertHandler.cpp +++ /dev/null @@ -1,110 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ - -#include "UnitTestPCH.h" - -/// Ensure this test has asserts on, even if the build type doesn't have asserts by default. -#if !defined(ASSIMP_BUILD_DEBUG) -#define ASSIMP_BUILD_DEBUG -#endif - -#include <assimp/ai_assert.h> -#include <code/Common/AssertHandler.h> - -namespace -{ - /// An exception which is thrown by the testAssertHandler - struct TestAssertException - { - TestAssertException(const char* failedExpression, const char* file, int line) - : m_failedExpression(failedExpression) - , m_file(file) - , m_line(line) - { - } - - std::string m_failedExpression; - std::string m_file; - int m_line; - }; - - /// Swap the default handler, which aborts, by one which throws. - void testAssertHandler(const char* failedExpression, const char* file, int line) - { - throw TestAssertException(failedExpression, file, line); - } - - /// Ensure that the default assert handler is restored after the test is finished. - struct ReplaceHandlerScope - { - ReplaceHandlerScope() - { - Assimp::setAiAssertHandler(testAssertHandler); - } - - ~ReplaceHandlerScope() - { - Assimp::setAiAssertHandler(Assimp::defaultAiAssertHandler); - } - }; -} - -TEST(utAssertHandler, replaceWithThrow) -{ - ReplaceHandlerScope scope; - - try - { - ai_assert((2 + 2 == 5) && "Sometimes people put messages here"); - EXPECT_TRUE(false); - } - catch(const TestAssertException& e) - { - EXPECT_STREQ(e.m_failedExpression.c_str(), "(2 + 2 == 5) && \"Sometimes people put messages here\""); - EXPECT_STREQ(e.m_file.c_str(), __FILE__); - EXPECT_GT(e.m_line, 0); - EXPECT_LT(e.m_line, __LINE__); - } - catch(...) - { - EXPECT_TRUE(false); - } -} diff --git a/libs/assimp/test/unit/Common/utBase64.cpp b/libs/assimp/test/unit/Common/utBase64.cpp deleted file mode 100644 index 8b0a60e..0000000 --- a/libs/assimp/test/unit/Common/utBase64.cpp +++ /dev/null @@ -1,72 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ - -#include "UnitTestPCH.h" -#include "TestIOSystem.h" - -#include <assimp/Base64.hpp> - -using namespace std; -using namespace Assimp; - -class Base64Test : public ::testing::Test { -public: - virtual void SetUp() { - } - - virtual void TearDown() { - } -}; - -static const std::vector<uint8_t> assimpStringBinary = { 97, 115, 115, 105, 109, 112 }; -static const std::string assimpStringEncoded = "YXNzaW1w"; - -TEST_F( Base64Test, encodeTest ) { - EXPECT_EQ( "", Base64::Encode (std::vector<uint8_t>{}) ); - EXPECT_EQ( "Vg==", Base64::Encode (std::vector<uint8_t>{ 86 }) ); - EXPECT_EQ( assimpStringEncoded, Base64::Encode (assimpStringBinary) ); -} - -TEST_F( Base64Test, decodeTest ) { - EXPECT_EQ( std::vector<uint8_t> {}, Base64::Decode ("") ); - EXPECT_EQ( std::vector<uint8_t> { 86 }, Base64::Decode ("Vg==") ); - EXPECT_EQ( assimpStringBinary, Base64::Decode (assimpStringEncoded) ); -} diff --git a/libs/assimp/test/unit/Common/utLineSplitter.cpp b/libs/assimp/test/unit/Common/utLineSplitter.cpp deleted file mode 100644 index 0a97f72..0000000 --- a/libs/assimp/test/unit/Common/utLineSplitter.cpp +++ /dev/null @@ -1,71 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "UnitTestPCH.h" - -#include <assimp/LineSplitter.h> -#include <assimp/DefaultIOSystem.h> -#include <string> - -using namespace Assimp; - -class utLineSplitter : public ::testing::Test { - // empty -}; - -TEST_F(utLineSplitter, tokenizetest) { - DefaultIOSystem fs; - IOStream* file = fs.Open(ASSIMP_TEST_MODELS_DIR"/ParsingFiles/linesplitter_tokenizetest.txt", "rb"); - - StreamReaderLE stream(file); - LineSplitter myLineSplitter(stream); -} - -TEST_F( utLineSplitter, issue212Test) { - DefaultIOSystem fs; - IOStream* file = fs.Open(ASSIMP_TEST_MODELS_DIR"/ParsingFiles/linesplitter_emptyline_test.txt", "rb"); - - StreamReaderLE stream(file); - LineSplitter myLineSplitter(stream); - myLineSplitter++; - EXPECT_THROW( myLineSplitter++, std::logic_error ); -} diff --git a/libs/assimp/test/unit/Common/utMesh.cpp b/libs/assimp/test/unit/Common/utMesh.cpp deleted file mode 100644 index 77a7113..0000000 --- a/libs/assimp/test/unit/Common/utMesh.cpp +++ /dev/null @@ -1,97 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ - -#include "UnitTestPCH.h" - -#include <assimp/mesh.h> - -using namespace Assimp; - -class utMesh : public ::testing::Test { -protected: - aiMesh* mesh = nullptr; - - void SetUp() override { - mesh = new aiMesh; - } - - void TearDown() override { - delete mesh; - mesh = nullptr; - } -}; - -TEST_F(utMesh, emptyMeshHasNoContentTest) { - EXPECT_EQ(0u, mesh->mName.length); - EXPECT_FALSE(mesh->HasPositions()); - EXPECT_FALSE(mesh->HasFaces()); - EXPECT_FALSE(mesh->HasNormals()); - EXPECT_FALSE(mesh->HasTangentsAndBitangents()); - EXPECT_FALSE(mesh->HasVertexColors(0)); - EXPECT_FALSE(mesh->HasVertexColors(AI_MAX_NUMBER_OF_COLOR_SETS)); - EXPECT_FALSE(mesh->HasTextureCoords(0)); - EXPECT_FALSE(mesh->HasTextureCoords(AI_MAX_NUMBER_OF_TEXTURECOORDS)); - EXPECT_EQ(0u, mesh->GetNumUVChannels()); - EXPECT_EQ(0u, mesh->GetNumColorChannels()); - EXPECT_FALSE(mesh->HasBones()); - EXPECT_FALSE(mesh->HasTextureCoordsName(0)); - EXPECT_FALSE(mesh->HasTextureCoordsName(AI_MAX_NUMBER_OF_TEXTURECOORDS)); -} - -TEST_F(utMesh, setTextureCoordsName) { - EXPECT_FALSE(mesh->HasTextureCoordsName(0)); - const aiString texcoords_name("texcoord_name"); - mesh->SetTextureCoordsName(0, texcoords_name); - EXPECT_TRUE(mesh->HasTextureCoordsName(0u)); - EXPECT_FALSE(mesh->HasTextureCoordsName(1u)); - ASSERT_NE(nullptr, mesh->mTextureCoordsNames); - ASSERT_NE(nullptr, mesh->mTextureCoordsNames[0]); - EXPECT_STREQ(texcoords_name.C_Str(), mesh->mTextureCoordsNames[0]->C_Str()); - EXPECT_STREQ(texcoords_name.C_Str(), mesh->GetTextureCoordsName(0)->C_Str()); - - // Now clear the name - mesh->SetTextureCoordsName(0, aiString()); - EXPECT_FALSE(mesh->HasTextureCoordsName(0)); - ASSERT_NE(nullptr, mesh->mTextureCoordsNames); - EXPECT_EQ(nullptr, mesh->mTextureCoordsNames[0]); - EXPECT_EQ(nullptr, mesh->GetTextureCoordsName(0)); -} - diff --git a/libs/assimp/test/unit/Common/utSpatialSort.cpp b/libs/assimp/test/unit/Common/utSpatialSort.cpp deleted file mode 100644 index 0684e83..0000000 --- a/libs/assimp/test/unit/Common/utSpatialSort.cpp +++ /dev/null @@ -1,120 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "UnitTestPCH.h" - -#include <assimp/SpatialSort.h> - -using namespace Assimp; - -class utSpatialSort : public ::testing::Test { -public - : - aiVector3D *vecs; - -protected: - void SetUp() override { - ::srand(static_cast<unsigned>(time(0))); - vecs = new aiVector3D[100]; - for (size_t i = 0; i < 100; ++i) { - vecs[i].x = static_cast<float>(rand()) / (static_cast<float>(RAND_MAX / 100)); - vecs[i].y = static_cast<float>(rand()) / (static_cast<float>(RAND_MAX / 100)); - vecs[i].z = static_cast<float>(rand()) / (static_cast<float>(RAND_MAX / 100)); - } - } - - void TearDown() override { - delete[] vecs; - } -}; - -TEST_F( utSpatialSort, findIdenticalsTest ) { - SpatialSort sSort; - sSort.Fill(vecs, 100, sizeof(aiVector3D)); - - std::vector<unsigned int> indices; - sSort.FindIdenticalPositions(vecs[0], indices); - EXPECT_EQ(1u, indices.size()); -} - -TEST_F(utSpatialSort, findPositionsTest) { - SpatialSort sSort; - sSort.Fill(vecs, 100, sizeof(aiVector3D)); - - std::vector<unsigned int> indices; - sSort.FindPositions(vecs[0], 0.01f, indices); - EXPECT_EQ(1u, indices.size()); -} - -TEST_F(utSpatialSort, highlyDisplacedPositionsTest) { - // Make a cube of positions, and then query it using the SpatialSort object. - constexpr unsigned int verticesPerAxis = 10; - constexpr ai_real step = 0.001f; - // Note the large constant offset here. - constexpr ai_real offset = 5000.0f - (0.5f * verticesPerAxis * step); - constexpr unsigned int totalNumPositions = verticesPerAxis * verticesPerAxis * verticesPerAxis; - aiVector3D* positions = new aiVector3D[totalNumPositions]; - for (unsigned int x = 0; x < verticesPerAxis; ++x) { - for (unsigned int y = 0; y < verticesPerAxis; ++y) { - for (unsigned int z = 0; z < verticesPerAxis; ++z) { - const unsigned int index = (x * verticesPerAxis * verticesPerAxis) + (y * verticesPerAxis) + z; - positions[index] = aiVector3D(offset + (x * step), offset + (y * step), offset + (z * step)); - } - } - } - - SpatialSort sSort; - sSort.Fill(positions, totalNumPositions, sizeof(aiVector3D)); - - // Enough to find a point and its 6 immediate neighbors, but not any other point. - const ai_real epsilon = 1.1f * step; - std::vector<unsigned int> indices; - // Iterate through the _interior_ points of the cube. - for (unsigned int x = 1; x < verticesPerAxis - 1; ++x) { - for (unsigned int y = 1; y < verticesPerAxis - 1; ++y) { - for (unsigned int z = 1; z < verticesPerAxis - 1; ++z) { - const unsigned int index = (x * verticesPerAxis * verticesPerAxis) + (y * verticesPerAxis) + z; - sSort.FindPositions(positions[index], epsilon, indices); - ASSERT_EQ(7u, indices.size()); - } - } - } - delete[] positions; -} diff --git a/libs/assimp/test/unit/Common/utStandardShapes.cpp b/libs/assimp/test/unit/Common/utStandardShapes.cpp deleted file mode 100644 index d7e6d21..0000000 --- a/libs/assimp/test/unit/Common/utStandardShapes.cpp +++ /dev/null @@ -1,57 +0,0 @@ -/* -Open Asset Import Library (assimp) ----------------------------------------------------------------------- -Copyright (c) 2006-2022, assimp team -All rights reserved. -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the -following conditions are met: -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. -* Neither the name of the assimp team, nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission of the assimp team. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------------------------------------------------------------------- -*/ -#include "UnitTestPCH.h" -#include <assimp/mesh.h> -#include <assimp/StandardShapes.h> - -using namespace Assimp; - -class utStandardShapes : public ::testing::Test { - // empty -}; - -TEST_F( utStandardShapes, testMakeMesh ) { - // Make sphere positions - std::vector<aiVector3D> positions; - Assimp::StandardShapes::MakeSphere(1, positions); - - // Make mesh - const auto numIndicesPerPrimitive = 3u; - aiMesh *aiMeshPtr = Assimp::StandardShapes::MakeMesh(positions, numIndicesPerPrimitive); - - // The mNumIndices member of the second face is now incorrect - const auto& face = aiMeshPtr->mFaces[0]; - EXPECT_EQ(face.mNumIndices, numIndicesPerPrimitive); - delete aiMeshPtr; -} - diff --git a/libs/assimp/test/unit/Common/utXmlParser.cpp b/libs/assimp/test/unit/Common/utXmlParser.cpp deleted file mode 100644 index 2db78e3..0000000 --- a/libs/assimp/test/unit/Common/utXmlParser.cpp +++ /dev/null @@ -1,86 +0,0 @@ -/*------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------*/ -#include "UnitTestPCH.h" -#include <assimp/XmlParser.h> -#include <assimp/DefaultIOStream.h> -#include <assimp/DefaultIOSystem.h> - -using namespace Assimp; - -class utXmlParser : public ::testing::Test { -public: - utXmlParser() : - Test(), - mIoSystem() { - // empty - } - -protected: - DefaultIOSystem mIoSystem; -}; - -TEST_F(utXmlParser, parse_xml_test) { - XmlParser parser; - std::string filename = ASSIMP_TEST_MODELS_DIR "/X3D/ComputerKeyboard.x3d"; - std::unique_ptr<IOStream> stream(mIoSystem.Open(filename.c_str(), "rb")); - EXPECT_NE(stream.get(), nullptr); - bool result = parser.parse(stream.get()); - EXPECT_TRUE(result); -} - -TEST_F(utXmlParser, parse_xml_and_traverse_test) { - XmlParser parser; - std::string filename = ASSIMP_TEST_MODELS_DIR "/X3D/ComputerKeyboard.x3d"; - std::unique_ptr<IOStream> stream(mIoSystem.Open(filename.c_str(), "rb")); - EXPECT_NE(stream.get(), nullptr); - bool result = parser.parse(stream.get()); - EXPECT_TRUE(result); - XmlNode root = parser.getRootNode(); - - XmlNodeIterator nodeIt(root, XmlNodeIterator::PreOrderMode); - const size_t numNodes = nodeIt.size(); - bool empty = nodeIt.isEmpty(); - EXPECT_FALSE(empty); - EXPECT_NE(numNodes, 0U); - XmlNode node; - while (nodeIt.getNext(node)) { - const std::string nodeName = node.name(); - EXPECT_FALSE(nodeName.empty()); - } -} diff --git a/libs/assimp/test/unit/ImportExport/Assxml/utAssxmlImportExport.cpp b/libs/assimp/test/unit/ImportExport/Assxml/utAssxmlImportExport.cpp deleted file mode 100644 index c10d91b..0000000 --- a/libs/assimp/test/unit/ImportExport/Assxml/utAssxmlImportExport.cpp +++ /dev/null @@ -1,76 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2019, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ - -#include "AbstractImportExportBase.h" -#include "SceneDiffer.h" -#include "UnitTestPCH.h" - -#include <assimp/postprocess.h> -#include <assimp/Importer.hpp> -#include <assimp/Exporter.hpp> - -using namespace Assimp; - -class utAssxmlImportExport : public AbstractImportExportBase { -public: - bool importerTest() override { - return true; - } - -#ifndef ASSIMP_BUILD_NO_EXPORT - bool exporterTest() override { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/OBJ/spider.obj", aiProcess_ValidateDataStructure); - EXPECT_NE(scene, nullptr ); - - ::Assimp::Exporter exporter; - return AI_SUCCESS == exporter.Export(scene, "assxml", ASSIMP_TEST_MODELS_DIR "/OBJ/spider_out.assxml"); - } -#endif -}; - -#ifndef ASSIMP_BUILD_NO_EXPORT - -TEST_F(utAssxmlImportExport, exportAssxmlTest) { - EXPECT_TRUE(exporterTest()); -} - -#endif diff --git a/libs/assimp/test/unit/ImportExport/IRR/utIrrImportExport.cpp b/libs/assimp/test/unit/ImportExport/IRR/utIrrImportExport.cpp deleted file mode 100644 index eaa4c8f..0000000 --- a/libs/assimp/test/unit/ImportExport/IRR/utIrrImportExport.cpp +++ /dev/null @@ -1,66 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2020, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "AbstractImportExportBase.h" -#include "UnitTestPCH.h" -#include <assimp/postprocess.h> -#include <assimp/scene.h> -#include <assimp/Importer.hpp> - -using namespace Assimp; - -class utIrrImportExport : public AbstractImportExportBase { -public: - virtual bool importerTest() { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/IRR/box.irr", aiProcess_ValidateDataStructure); - return nullptr != scene; - } -}; - -TEST_F(utIrrImportExport, importSimpleIrrTest) { - EXPECT_TRUE(importerTest()); -} - -TEST_F(utIrrImportExport, importSGIrrTest) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/IRR/dawfInCellar_SameHierarchy.irr", aiProcess_ValidateDataStructure); - EXPECT_NE( nullptr,scene); -} diff --git a/libs/assimp/test/unit/ImportExport/MDL/MDLHL1TestFiles.h b/libs/assimp/test/unit/ImportExport/MDL/MDLHL1TestFiles.h deleted file mode 100644 index 3c0630f..0000000 --- a/libs/assimp/test/unit/ImportExport/MDL/MDLHL1TestFiles.h +++ /dev/null @@ -1,57 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ - -/** @file MDLHL1TestFiles.h - * @brief Definitions for Half-Life 1 MDL loader tests. - */ - -#ifndef AI_MDLHL1TESTFILES_INCLUDED -#define AI_MDLHL1TESTFILES_INCLUDED - -#ifndef ASSIMP_TEST_MDL_HL1_MODELS_DIR -#define ASSIMP_TEST_MDL_HL1_MODELS_DIR ASSIMP_TEST_MODELS_DIR"/MDL/MDL (HL1)/" -#endif - -#ifndef MDL_HL1_FILE_MAN -#define MDL_HL1_FILE_MAN ASSIMP_TEST_MDL_HL1_MODELS_DIR "man.mdl" -#endif - -#endif // AI_MDLHL1TESTFILES_INCLUDED diff --git a/libs/assimp/test/unit/ImportExport/MDL/utMDLImporter_HL1_ImportSettings.cpp b/libs/assimp/test/unit/ImportExport/MDL/utMDLImporter_HL1_ImportSettings.cpp deleted file mode 100644 index 02969e1..0000000 --- a/libs/assimp/test/unit/ImportExport/MDL/utMDLImporter_HL1_ImportSettings.cpp +++ /dev/null @@ -1,228 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ - -/** @file utMDLImporter_HL1_ImportSettings.cpp - * @brief Half-Life 1 MDL loader import settings tests. - */ - -#include "AbstractImportExportBase.h" -#include "AssetLib/MDL/HalfLife/HL1ImportDefinitions.h" -#include "MDLHL1TestFiles.h" -#include "UnitTestPCH.h" -#include <assimp/postprocess.h> -#include <assimp/scene.h> -#include <assimp/Importer.hpp> -#include <functional> -#include <initializer_list> - -using namespace Assimp; - -class utMDLImporter_HL1_ImportSettings : public ::testing::Test { - -public: - // Test various import settings scenarios. - - void importSettings() { - - /* Verify that animations are *NOT* imported when - 'Read animations' is disabled. */ - load_with_import_setting_bool( - MDL_HL1_FILE_MAN, - AI_CONFIG_IMPORT_MDL_HL1_READ_ANIMATIONS, - false, // Set config value to false. - [&](const aiScene *scene) { - EXPECT_EQ(0u, scene->mNumAnimations); - EXPECT_EQ(nullptr, scene->mRootNode->FindNode(AI_MDL_HL1_NODE_SEQUENCE_INFOS)); - EXPECT_EQ(nullptr, scene->mRootNode->FindNode(AI_MDL_HL1_NODE_SEQUENCE_GROUPS)); - EXPECT_EQ(nullptr, scene->mRootNode->FindNode(AI_MDL_HL1_NODE_SEQUENCE_TRANSITION_GRAPH)); - - expect_global_info_eq<int>(scene, { { 0, "NumSequences" }, - { 0, "NumTransitionNodes" } }); - }); - - /* Verify that blend controllers info is *NOT* imported when - 'Read blend controllers' is disabled. */ - load_with_import_setting_bool( - MDL_HL1_FILE_MAN, - AI_CONFIG_IMPORT_MDL_HL1_READ_BLEND_CONTROLLERS, - false, // Set config value to false. - [&](const aiScene *scene) { - EXPECT_NE(0u, scene->mNumAnimations); - - const aiNode *sequence_infos = scene->mRootNode->FindNode(AI_MDL_HL1_NODE_SEQUENCE_INFOS); - EXPECT_NE(nullptr, sequence_infos); - - for (unsigned int i = 0; i < sequence_infos->mNumChildren; ++i) - EXPECT_EQ(nullptr, sequence_infos->mChildren[i]->FindNode(AI_MDL_HL1_NODE_BLEND_CONTROLLERS)); - - expect_global_info_eq(scene, 0, "NumBlendControllers"); - }); - - /* Verify that animation events are *NOT* imported when - 'Read animation events' is disabled. */ - load_with_import_setting_bool( - MDL_HL1_FILE_MAN, - AI_CONFIG_IMPORT_MDL_HL1_READ_ANIMATION_EVENTS, - false, // Set config value to false. - [&](const aiScene *scene) { - EXPECT_NE(0u, scene->mNumAnimations); - - const aiNode *sequence_infos = scene->mRootNode->FindNode(AI_MDL_HL1_NODE_SEQUENCE_INFOS); - EXPECT_NE(nullptr, sequence_infos); - - for (unsigned int i = 0; i < sequence_infos->mNumChildren; ++i) - EXPECT_EQ(nullptr, sequence_infos->mChildren[i]->FindNode(AI_MDL_HL1_NODE_ANIMATION_EVENTS)); - }); - - /* Verify that sequence transitions info is read when - 'Read sequence transitions' is enabled. */ - load_with_import_setting_bool( - ASSIMP_TEST_MDL_HL1_MODELS_DIR "sequence_transitions.mdl", - AI_CONFIG_IMPORT_MDL_HL1_READ_SEQUENCE_TRANSITIONS, - true, // Set config value to true. - [&](const aiScene *scene) { - EXPECT_NE(nullptr, scene->mRootNode->FindNode(AI_MDL_HL1_NODE_SEQUENCE_TRANSITION_GRAPH)); - expect_global_info_eq(scene, 4, "NumTransitionNodes"); - }); - - /* Verify that sequence transitions info is *NOT* read when - 'Read sequence transitions' is disabled. */ - load_with_import_setting_bool( - ASSIMP_TEST_MDL_HL1_MODELS_DIR "sequence_transitions.mdl", - AI_CONFIG_IMPORT_MDL_HL1_READ_SEQUENCE_TRANSITIONS, - false, // Set config value to false. - [&](const aiScene *scene) { - EXPECT_EQ(nullptr, scene->mRootNode->FindNode(AI_MDL_HL1_NODE_SEQUENCE_TRANSITION_GRAPH)); - expect_global_info_eq(scene, 0, "NumTransitionNodes"); - }); - - /* Verify that bone controllers info is *NOT* read when - 'Read bone controllers' is disabled. */ - load_with_import_setting_bool( - MDL_HL1_FILE_MAN, - AI_CONFIG_IMPORT_MDL_HL1_READ_BONE_CONTROLLERS, - false, // Set config value to false. - [&](const aiScene *scene) { - EXPECT_EQ(nullptr, scene->mRootNode->FindNode(AI_MDL_HL1_NODE_BONE_CONTROLLERS)); - expect_global_info_eq(scene, 0, "NumBoneControllers"); - }); - - /* Verify that attachments info is *NOT* read when - 'Read attachments' is disabled. */ - load_with_import_setting_bool( - MDL_HL1_FILE_MAN, - AI_CONFIG_IMPORT_MDL_HL1_READ_ATTACHMENTS, - false, // Set config value to false. - [&](const aiScene *scene) { - EXPECT_EQ(nullptr, scene->mRootNode->FindNode(AI_MDL_HL1_NODE_ATTACHMENTS)); - expect_global_info_eq(scene, 0, "NumAttachments"); - }); - - /* Verify that hitboxes info is *NOT* read when - 'Read hitboxes' is disabled. */ - load_with_import_setting_bool( - MDL_HL1_FILE_MAN, - AI_CONFIG_IMPORT_MDL_HL1_READ_HITBOXES, - false, // Set config value to false. - [&](const aiScene *scene) { - EXPECT_EQ(nullptr, scene->mRootNode->FindNode(AI_MDL_HL1_NODE_HITBOXES)); - expect_global_info_eq(scene, 0, "NumHitboxes"); - }); - - /* Verify that misc global info is *NOT* read when - 'Read misc global info' is disabled. */ - load_with_import_setting_bool( - MDL_HL1_FILE_MAN, - AI_CONFIG_IMPORT_MDL_HL1_READ_MISC_GLOBAL_INFO, - false, // Set config value to false. - [&](const aiScene *scene) { - aiNode *global_info = get_global_info(scene); - EXPECT_NE(nullptr, global_info); - aiVector3D temp; - EXPECT_FALSE(global_info->mMetaData->Get("EyePosition", temp)); - }); - } - -private: - void load_with_import_setting_bool( - const char *file_path, - const char *setting_key, - bool setting_value, - std::function<void(const aiScene *)> &&func) { - Assimp::Importer importer; - importer.SetPropertyBool(setting_key, setting_value); - const aiScene *scene = importer.ReadFile(file_path, aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); - func(scene); - } - - inline static aiNode *get_global_info(const aiScene *scene) { - return scene->mRootNode->FindNode(AI_MDL_HL1_NODE_GLOBAL_INFO); - } - - template <typename T> - static void expect_global_info_eq( - const aiScene *scene, - T expected_value, - const char *key_name) { - aiNode *global_info = get_global_info(scene); - EXPECT_NE(nullptr, global_info); - T temp; - EXPECT_TRUE(global_info->mMetaData->Get(key_name, temp)); - EXPECT_EQ(expected_value, temp); - } - - template <typename T> - static void expect_global_info_eq(const aiScene *scene, - std::initializer_list<std::pair<T, const char *>> p_kv) { - aiNode *global_info = get_global_info(scene); - EXPECT_NE(nullptr, global_info); - for (auto it = p_kv.begin(); it != p_kv.end(); ++it) { - T temp; - EXPECT_TRUE(global_info->mMetaData->Get(it->second, temp)); - EXPECT_EQ(it->first, temp); - } - } -}; - -TEST_F(utMDLImporter_HL1_ImportSettings, importSettings) { - importSettings(); -} diff --git a/libs/assimp/test/unit/ImportExport/MDL/utMDLImporter_HL1_Materials.cpp b/libs/assimp/test/unit/ImportExport/MDL/utMDLImporter_HL1_Materials.cpp deleted file mode 100644 index c47667e..0000000 --- a/libs/assimp/test/unit/ImportExport/MDL/utMDLImporter_HL1_Materials.cpp +++ /dev/null @@ -1,134 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ - -/** @file utMDLImporter_HL1_Materials.cpp - * @brief Half-Life 1 MDL loader materials tests. - */ - -#include "AbstractImportExportBase.h" -#include "AssetLib/MDL/HalfLife/HL1ImportDefinitions.h" -#include "MDLHL1TestFiles.h" -#include "UnitTestPCH.h" -#include <assimp/postprocess.h> -#include <assimp/scene.h> -#include <assimp/Importer.hpp> - -using namespace Assimp; - -class utMDLImporter_HL1_Materials : public ::testing::Test { - -public: - /* Given an MDL model with a texture flagged as flatshade, - verify that the imported model has a flat shading model. */ - void flatShadeTexture() { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MDL_HL1_MODELS_DIR "chrome_sphere.mdl", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); - EXPECT_NE(nullptr, scene->mMaterials); - - aiShadingMode shading_mode; - scene->mMaterials[0]->Get(AI_MATKEY_SHADING_MODEL, shading_mode); - EXPECT_EQ(aiShadingMode_Flat, shading_mode); - } - - /* Given an MDL model with a chrome texture, verify that - the imported model has a chrome material. */ - void chromeTexture() { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MDL_HL1_MODELS_DIR "chrome_sphere.mdl", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); - EXPECT_NE(nullptr, scene->mMaterials); - - int chrome; - scene->mMaterials[0]->Get(AI_MDL_HL1_MATKEY_CHROME(aiTextureType_DIFFUSE, 0), chrome); - EXPECT_EQ(1, chrome); - } - - /* Given an MDL model with an additive texture, verify that - the imported model has an additive material. */ - void additiveBlendTexture() { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MDL_HL1_MODELS_DIR "blend_additive.mdl", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); - EXPECT_NE(nullptr, scene->mMaterials); - - aiBlendMode blend_mode; - scene->mMaterials[0]->Get(AI_MATKEY_BLEND_FUNC, blend_mode); - EXPECT_EQ(aiBlendMode_Additive, blend_mode); - } - - /* Given an MDL model with a color masked texture, verify that - the imported model has a color masked material. Ensure too - that the transparency color is the correct one. */ - void textureWithColorMask() { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MDL_HL1_MODELS_DIR "alpha_test.mdl", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); - EXPECT_NE(nullptr, scene->mMaterials); - - int texture_flags; - scene->mMaterials[0]->Get(AI_MATKEY_TEXFLAGS_DIFFUSE(0), texture_flags); - EXPECT_EQ(aiTextureFlags_UseAlpha, texture_flags); - - // The model has only one texture, a 256 color bitmap with - // a palette. Pure blue is the last color in the palette, - // and should be the transparency color. - aiColor3D transparency_color; - scene->mMaterials[0]->Get(AI_MATKEY_COLOR_TRANSPARENT, transparency_color); - EXPECT_EQ(aiColor3D(0, 0, 255), transparency_color); - } -}; - -TEST_F(utMDLImporter_HL1_Materials, flatShadeTexture) { - flatShadeTexture(); -} - -TEST_F(utMDLImporter_HL1_Materials, chromeTexture) { - chromeTexture(); -} - -TEST_F(utMDLImporter_HL1_Materials, additiveBlendTexture) { - additiveBlendTexture(); -} - -TEST_F(utMDLImporter_HL1_Materials, textureWithColorMask) { - textureWithColorMask(); -} diff --git a/libs/assimp/test/unit/ImportExport/MDL/utMDLImporter_HL1_Nodes.cpp b/libs/assimp/test/unit/ImportExport/MDL/utMDLImporter_HL1_Nodes.cpp deleted file mode 100644 index 4420727..0000000 --- a/libs/assimp/test/unit/ImportExport/MDL/utMDLImporter_HL1_Nodes.cpp +++ /dev/null @@ -1,455 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ - -/** @file utMDLImporter_HL1_Nodes.cpp - * @brief Half-Life 1 MDL loader nodes tests. - */ - -#include "AbstractImportExportBase.h" -#include "AssetLib/MDL/HalfLife/HL1ImportDefinitions.h" -#include "MDLHL1TestFiles.h" -#include "UnitTestPCH.h" -#include <assimp/postprocess.h> -#include <assimp/scene.h> -#include <assimp/Importer.hpp> - -using namespace Assimp; - -class utMDLImporter_HL1_Nodes : public ::testing::Test { - -public: - /** - * @note The following tests require a basic understanding - * of the SMD format. For more information about SMD format, - * please refer to the SMD importer or go to VDC - * (Valve Developer Community). - */ - - /* Given a model with bones that have empty names, - verify that all the bones of the imported model - have unique and no empty names. - - "" <----+---- empty names - "" <----+ - "" <----+ - "Bone_3" | - "" <----+ - "Bone_2" | - "Bone_5" | - "" <----+ - "" <----+ - */ - void emptyBonesNames() { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MDL_HL1_MODELS_DIR "unnamed_bones.mdl", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); - - const std::vector<std::string> expected_bones_names = { - "Bone", - "Bone_0", - "Bone_1", - "Bone_3", - "Bone_4", - "Bone_2", - "Bone_5", - "Bone_6", - "Bone_7" - }; - - expect_named_children(scene, AI_MDL_HL1_NODE_BONES, expected_bones_names); - } - - /* Given a model with bodyparts that have empty names, - verify that the imported model contains bodyparts with - unique and no empty names. - - $body "" <----+---- empty names - $body "Bodypart_1" | - $body "Bodypart_5" | - $body "Bodypart_6" | - $body "" <----+ - $body "Bodypart_2" | - $body "" <----+ - $body "Bodypart_3" | - $body "" <----+ - */ - void emptyBodypartsNames() { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MDL_HL1_MODELS_DIR "unnamed_bodyparts.mdl", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); - - const std::vector<std::string> expected_bodyparts_names = { - "Bodypart", - "Bodypart_1", - "Bodypart_5", - "Bodypart_6", - "Bodypart_0", - "Bodypart_2", - "Bodypart_4", - "Bodypart_3", - "Bodypart_7" - }; - - expect_named_children(scene, AI_MDL_HL1_NODE_BODYPARTS, expected_bodyparts_names); - } - - /* Given a model with bodyparts that have duplicate names, - verify that the imported model contains bodyparts with - unique and no duplicate names. - - $body "Bodypart" <-----+ - $body "Bodypart_1" <--+ | - $body "Bodypart_2" | | - $body "Bodypart1" | | - $body "Bodypart" ---|--+ - $body "Bodypart_1" ---+ | - $body "Bodypart2" | - $body "Bodypart" ------+ - $body "Bodypart_4" - */ - void duplicateBodypartsNames() { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MDL_HL1_MODELS_DIR "duplicate_bodyparts.mdl", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); - - const std::vector<std::string> expected_bodyparts_names = { - "Bodypart", - "Bodypart_1", - "Bodypart_2", - "Bodypart1", - "Bodypart_0", - "Bodypart_1_0", - "Bodypart2", - "Bodypart_3", - "Bodypart_4" - }; - - expect_named_children(scene, AI_MDL_HL1_NODE_BODYPARTS, expected_bodyparts_names); - } - - /* Given a model with several bodyparts that contains multiple - sub models with the same file name, verify for each bodypart - sub model of the imported model that they have a unique name. - - $bodygroup "first_bodypart" - { - studio "triangle" <------+ duplicate file names. - studio "triangle" -------+ - } | - | - $bodygroup "second_bodypart" | - { | - studio "triangle" -------+ same as first bodypart, but with same file. - studio "triangle" -------+ - } - - $bodygroup "last_bodypart" - { - studio "triangle2" <------+ duplicate names. - studio "triangle2" -------+ - } - */ - void duplicateSubModelsNames() { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MDL_HL1_MODELS_DIR "duplicate_submodels.mdl", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); - - const std::vector<std::vector<std::string>> expected_bodypart_sub_models_names = { - { - "triangle", - "triangle_0", - }, - { - "triangle_1", - "triangle_2", - }, - { - "triangle2", - "triangle2_0", - } - }; - - const aiNode *bodyparts_node = scene->mRootNode->FindNode(AI_MDL_HL1_NODE_BODYPARTS); - EXPECT_NE(nullptr, bodyparts_node); - EXPECT_EQ(3u, bodyparts_node->mNumChildren); - for (unsigned int i = 0; i < bodyparts_node->mNumChildren; ++i) { - expect_named_children(bodyparts_node->mChildren[i], - expected_bodypart_sub_models_names[i]); - } - } - - /* Given a model with sequences that have duplicate names, verify - that each sequence from the imported model has a unique - name. - - $sequence "idle_1" <-------+ - $sequence "idle" <----+ | - $sequence "idle_2" | | - $sequence "idle" -----+ | - $sequence "idle_0" | | - $sequence "idle_1" -----|--+ - $sequence "idle_3" | - $sequence "idle" -----+ - $sequence "idle_7" - */ - void duplicateSequenceNames() { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MDL_HL1_MODELS_DIR "duplicate_sequences.mdl", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); - - const std::vector<std::string> expected_sequence_names = { - "idle_1", - "idle", - "idle_2", - "idle_4", - "idle_0", - "idle_1_0", - "idle_3", - "idle_5", - "idle_7" - }; - - expect_named_children(scene, AI_MDL_HL1_NODE_SEQUENCE_INFOS, expected_sequence_names); - } - - /* Given a model with sequences that have empty names, verify - that each sequence from the imported model has a unique - name. - - $sequence "" <----+---- empty names - $sequence "Sequence_1" | - $sequence "" <----+ - $sequence "Sequence_4" | - $sequence "" <----+ - $sequence "Sequence_8" | - $sequence "" <----+ - $sequence "Sequence_2" | - $sequence "" <----+ - */ - void emptySequenceNames() { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MDL_HL1_MODELS_DIR "unnamed_sequences.mdl", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); - - const std::vector<std::string> expected_sequence_names = { - "Sequence", - "Sequence_1", - "Sequence_0", - "Sequence_4", - "Sequence_3", - "Sequence_8", - "Sequence_5", - "Sequence_2", - "Sequence_6" - }; - - expect_named_children(scene, AI_MDL_HL1_NODE_SEQUENCE_INFOS, expected_sequence_names); - } - - /* Given a model with sequence groups that have duplicate names, - verify that each sequence group from the imported model has - a unique name. - - "default" - $sequencegroup "SequenceGroup" <----+ - $sequencegroup "SequenceGroup_1" | - $sequencegroup "SequenceGroup_5" <----|--+ - $sequencegroup "SequenceGroup" -----+ | - $sequencegroup "SequenceGroup_0" | | - $sequencegroup "SequenceGroup" -----+ | - $sequencegroup "SequenceGroup_5" --------+ - $sequencegroup "SequenceGroup_6" - $sequencegroup "SequenceGroup_2" - */ - void duplicateSequenceGroupNames() { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MDL_HL1_MODELS_DIR "duplicate_sequence_groups/duplicate_sequence_groups.mdl", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); - - const std::vector<std::string> expected_sequence_names = { - "default", - "SequenceGroup", - "SequenceGroup_1", - "SequenceGroup_5", - "SequenceGroup_3", - "SequenceGroup_0", - "SequenceGroup_4", - "SequenceGroup_5_0", - "SequenceGroup_6", - "SequenceGroup_2" - }; - - expect_named_children(scene, AI_MDL_HL1_NODE_SEQUENCE_GROUPS, expected_sequence_names); - } - - /* Given a model with sequence groups that have empty names, - verify that each sequence group from the imported model has - a unique name. - - "default" - $sequencegroup "" <----+---- empty names - $sequencegroup "SequenceGroup_2" | - $sequencegroup "SequenceGroup_6" | - $sequencegroup "" <----+ - $sequencegroup "" <----+ - $sequencegroup "SequenceGroup_1" | - $sequencegroup "SequenceGroup_5" | - $sequencegroup "" <----+ - $sequencegroup "SequenceGroup_4" - */ - void emptySequenceGroupNames() { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MDL_HL1_MODELS_DIR "unnamed_sequence_groups/unnamed_sequence_groups.mdl", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); - - const std::vector<std::string> expected_sequence_names = { - "default", - "SequenceGroup", - "SequenceGroup_2", - "SequenceGroup_6", - "SequenceGroup_0", - "SequenceGroup_3", - "SequenceGroup_1", - "SequenceGroup_5", - "SequenceGroup_7", - "SequenceGroup_4" - }; - - expect_named_children(scene, AI_MDL_HL1_NODE_SEQUENCE_GROUPS, expected_sequence_names); - } - - /* Verify that mOffsetMatrix applies the correct - inverse bind pose transform. */ - void offsetMatrixUnappliesTransformations() { - - const float TOLERANCE = 0.01f; - - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(MDL_HL1_FILE_MAN, aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); - - aiNode *scene_bones_node = scene->mRootNode->FindNode(AI_MDL_HL1_NODE_BONES); - - const aiMatrix4x4 identity_matrix; - - for (unsigned int i = 0; i < scene->mNumMeshes; ++i) { - aiMesh *scene_mesh = scene->mMeshes[i]; - for (unsigned int j = 0; j < scene_mesh->mNumBones; ++j) { - aiBone *scene_mesh_bone = scene_mesh->mBones[j]; - - // Store local node transforms. - aiNode *n = scene_bones_node->FindNode(scene_mesh_bone->mName); - std::vector<aiMatrix4x4> bone_matrices = { n->mTransformation }; - while (n->mParent != scene->mRootNode) { - n = n->mParent; - bone_matrices.push_back(n->mTransformation); - } - - // Compute absolute node transform. - aiMatrix4x4 transform; - for (auto it = bone_matrices.rbegin(); it != bone_matrices.rend(); ++it) - transform *= *it; - - // Unapply the transformation using the offset matrix. - aiMatrix4x4 unapplied_transform = scene_mesh_bone->mOffsetMatrix * transform; - - // Ensure that we have, approximately, the identity matrix. - expect_equal_matrices(identity_matrix, unapplied_transform, TOLERANCE); - } - } - } - -private: - void expect_named_children(const aiNode *parent_node, const std::vector<std::string> &expected_names) { - EXPECT_NE(nullptr, parent_node); - EXPECT_EQ(expected_names.size(), parent_node->mNumChildren); - - for (unsigned int i = 0; i < parent_node->mNumChildren; ++i) - EXPECT_EQ(expected_names[i], parent_node->mChildren[i]->mName.C_Str()); - } - - void expect_named_children(const aiScene *scene, const char *node_name, const std::vector<std::string> &expected_names) { - expect_named_children(scene->mRootNode->FindNode(node_name), expected_names); - } - - void expect_equal_matrices(const aiMatrix4x4 &expected, const aiMatrix4x4 &actual, float abs_error) { - for (int i = 0; i < 4; ++i) { - for (int j = 0; j < 4; ++j) - EXPECT_NEAR(expected[i][j], actual[i][j], abs_error); - } - } -}; - -TEST_F(utMDLImporter_HL1_Nodes, emptyBonesNames) { - emptyBonesNames(); -} - -TEST_F(utMDLImporter_HL1_Nodes, emptyBodypartsNames) { - emptyBodypartsNames(); -} - -TEST_F(utMDLImporter_HL1_Nodes, duplicateBodypartsNames) { - duplicateBodypartsNames(); -} - -TEST_F(utMDLImporter_HL1_Nodes, duplicateSubModelsNames) { - duplicateSubModelsNames(); -} - -TEST_F(utMDLImporter_HL1_Nodes, emptySequenceNames) { - emptySequenceNames(); -} - -TEST_F(utMDLImporter_HL1_Nodes, duplicateSequenceNames) { - duplicateSequenceNames(); -} - -TEST_F(utMDLImporter_HL1_Nodes, emptySequenceGroupNames) { - emptySequenceGroupNames(); -} - -TEST_F(utMDLImporter_HL1_Nodes, duplicateSequenceGroupNames) { - duplicateSequenceGroupNames(); -} - -TEST_F(utMDLImporter_HL1_Nodes, offsetMatrixUnappliesTransformations) { - offsetMatrixUnappliesTransformations(); -} diff --git a/libs/assimp/test/unit/ImportExport/RAW/utRAWImportExport.cpp b/libs/assimp/test/unit/ImportExport/RAW/utRAWImportExport.cpp deleted file mode 100644 index bdd7f85..0000000 --- a/libs/assimp/test/unit/ImportExport/RAW/utRAWImportExport.cpp +++ /dev/null @@ -1,64 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "AbstractImportExportBase.h" -#include "UnitTestPCH.h" -#include <assimp/postprocess.h> -#include <assimp/scene.h> -#include <assimp/Importer.hpp> - -using namespace Assimp; - -class utRAWImportExport : public AbstractImportExportBase { -public: - virtual bool importerTest() { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/RAW/Wuson.raw", aiProcess_ValidateDataStructure); -#ifndef ASSIMP_BUILD_NO_RAW_IMPORTER - return nullptr != scene; -#else - return nullptr == scene; -#endif - } -}; - -TEST_F(utRAWImportExport, importSimpleRAWTest) { - EXPECT_TRUE(importerTest()); -} diff --git a/libs/assimp/test/unit/ImportExport/Terragen/utTerragenImportExport.cpp b/libs/assimp/test/unit/ImportExport/Terragen/utTerragenImportExport.cpp deleted file mode 100644 index 6432dbf..0000000 --- a/libs/assimp/test/unit/ImportExport/Terragen/utTerragenImportExport.cpp +++ /dev/null @@ -1,60 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ - -#include "AbstractImportExportBase.h" -#include "UnitTestPCH.h" - -#include <assimp/postprocess.h> -#include <assimp/Importer.hpp> - -class utTerragenImportExport : public AbstractImportExportBase { -public: - virtual bool importerTest() { - /*Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/TER/RealisticTerrain.ter", aiProcess_ValidateDataStructure); - return nullptr != scene;*/ - return true; - } -}; - -TEST_F(utTerragenImportExport, importX3DFromFileTest) { - EXPECT_TRUE(importerTest()); -} diff --git a/libs/assimp/test/unit/ImportExport/utAssjsonImportExport.cpp b/libs/assimp/test/unit/ImportExport/utAssjsonImportExport.cpp deleted file mode 100644 index 3470874..0000000 --- a/libs/assimp/test/unit/ImportExport/utAssjsonImportExport.cpp +++ /dev/null @@ -1,80 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "AbstractImportExportBase.h" -#include "UnitTestPCH.h" - -#include <assimp/postprocess.h> -#include <assimp/scene.h> -#include <assimp/Exporter.hpp> -#include <assimp/Importer.hpp> - -using namespace Assimp; - -#ifndef ASSIMP_BUILD_NO_EXPORT - -class utAssjsonImportExport : public AbstractImportExportBase { -public: - bool exporterTest() override { - Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/OBJ/spider.obj", aiProcess_ValidateDataStructure); - - Exporter exporter; - aiReturn res = exporter.Export(scene, "assjson", "./spider_test.json"); - if (aiReturn_SUCCESS != res) { - return false; - } - - Assimp::ExportProperties exportProperties; - exportProperties.SetPropertyBool("JSON_SKIP_WHITESPACES", true); - aiReturn resNoWhitespace = exporter.Export(scene, "assjson", "./spider_test_nowhitespace.json", 0u, &exportProperties); - if (aiReturn_SUCCESS != resNoWhitespace) { - return false; - } - - return true; - } -}; - -TEST_F(utAssjsonImportExport, exportTest) { - EXPECT_TRUE(exporterTest()); -} - -#endif // ASSIMP_BUILD_NO_EXPORT diff --git a/libs/assimp/test/unit/ImportExport/utCOBImportExport.cpp b/libs/assimp/test/unit/ImportExport/utCOBImportExport.cpp deleted file mode 100644 index 187f16e..0000000 --- a/libs/assimp/test/unit/ImportExport/utCOBImportExport.cpp +++ /dev/null @@ -1,99 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ - -#include "UnitTestPCH.h" - -#include <assimp/postprocess.h> -#include <assimp/Importer.hpp> - -using namespace Assimp; - -TEST(utCOBImporter, importDwarfASCII) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/COB/dwarf_ascii.cob", aiProcess_ValidateDataStructure); - // FIXME: this is wrong, it should succeed - // change to ASSERT_NE after it's been fixed - ASSERT_EQ(nullptr, scene); -} - -TEST(utCOBImporter, importDwarf) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/COB/dwarf.cob", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); -} - -TEST(utCOBImporter, importMoleculeASCII) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/COB/molecule_ascii.cob", aiProcess_ValidateDataStructure); - // FIXME: this is wrong, it should succeed - // change to ASSERT_NE after it's been fixed - ASSERT_EQ(nullptr, scene); -} - -TEST(utCOBImporter, importMolecule) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/COB/molecule.cob", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); -} - -TEST(utCOBImporter, importSpider43ASCII) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/COB/spider_4_3_ascii.cob", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); -} - -TEST(utCOBImporter, importSpider43) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/COB/spider_4_3.cob", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); -} - -TEST(utCOBImporter, importSpider66ASCII) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/COB/spider_6_6_ascii.cob", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); -} - -TEST(utCOBImporter, importSpider66) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/COB/spider_6_6.cob", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); -} diff --git a/libs/assimp/test/unit/ImportExport/utExporter.cpp b/libs/assimp/test/unit/ImportExport/utExporter.cpp deleted file mode 100644 index 9c5ca1c..0000000 --- a/libs/assimp/test/unit/ImportExport/utExporter.cpp +++ /dev/null @@ -1,107 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "UnitTestPCH.h" - -#include <assimp/Exporter.hpp> -#include <assimp/ProgressHandler.hpp> - -using namespace Assimp; - -#ifndef ASSIMP_BUILD_NO_EXPORT - -class TestProgressHandler : public ProgressHandler { -public: - TestProgressHandler() : - ProgressHandler(), - mPercentage(0.f) { - // empty - } - - virtual ~TestProgressHandler() { - // empty - } - - bool Update(float percentage = -1.f) override { - mPercentage = percentage; - return true; - } - float mPercentage; -}; - -class ExporterTest : public ::testing::Test { - // empty -}; - -TEST_F(ExporterTest, ProgressHandlerTest) { - Exporter exporter; - TestProgressHandler *ph(new TestProgressHandler); - exporter.SetProgressHandler(ph); -} - -// Make sure all the registered exporters have useful descriptions -TEST_F(ExporterTest, ExporterIdTest) { - Exporter exporter; - size_t exportFormatCount = exporter.GetExportFormatCount(); - EXPECT_NE(0u, exportFormatCount) << "No registered exporters"; - typedef std::map<std::string, const aiExportFormatDesc *> ExportIdMap; - ExportIdMap exporterMap; - for (size_t i = 0; i < exportFormatCount; ++i) { - // Check that the exporter description exists and makes sense - const aiExportFormatDesc *desc = exporter.GetExportFormatDescription(i); - ASSERT_NE(nullptr, desc) << "Missing aiExportFormatDesc at index " << i; - EXPECT_NE(nullptr, desc->id) << "Null exporter ID at index " << i; - EXPECT_STRNE("", desc->id) << "Empty exporter ID at index " << i; - EXPECT_NE(nullptr, desc->description) << "Null exporter description at index " << i; - EXPECT_STRNE("", desc->description) << "Empty exporter description at index " << i; - EXPECT_NE(nullptr, desc->fileExtension) << "Null exporter file extension at index " << i; - EXPECT_STRNE("", desc->fileExtension) << "Empty exporter file extension at index " << i; - - // Check the ID is unique - std::string key(desc->id); - std::pair<ExportIdMap::iterator, bool> result = exporterMap.emplace(key, desc); - EXPECT_TRUE(result.second) << "Duplicate exported id: '" << key << "' " << desc->description << " *." << desc->fileExtension << " at index " << i; - } - - const aiExportFormatDesc *desc = exporter.GetExportFormatDescription(exportFormatCount); - EXPECT_EQ(nullptr, desc) << "More exporters than claimed"; -} - -#endif
\ No newline at end of file diff --git a/libs/assimp/test/unit/ImportExport/utMD2Importer.cpp b/libs/assimp/test/unit/ImportExport/utMD2Importer.cpp deleted file mode 100644 index 0fcf76b..0000000 --- a/libs/assimp/test/unit/ImportExport/utMD2Importer.cpp +++ /dev/null @@ -1,78 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ - -#include "UnitTestPCH.h" - -#include <assimp/postprocess.h> -#include <assimp/scene.h> -#include <assimp/Importer.hpp> - -using namespace Assimp; - -TEST(utMD2Importer, importFaerie) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/MD2/faerie.md2", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); -} - -TEST(utMD2Importer, importSydney) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/MD2/sydney.md2", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); -} - -TEST(utMD2Importer, importDolphin) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_NONBSD_DIR "/MD2/dolphin.md2", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); -} - -TEST(utMD2Importer, importFlag) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_NONBSD_DIR "/MD2/flag.md2", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); -} - -TEST(utMD2Importer, importHorse) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_NONBSD_DIR "/MD2/horse.md2", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); -} diff --git a/libs/assimp/test/unit/ImportExport/utMD3Importer.cpp b/libs/assimp/test/unit/ImportExport/utMD3Importer.cpp deleted file mode 100644 index ab7c418..0000000 --- a/libs/assimp/test/unit/ImportExport/utMD3Importer.cpp +++ /dev/null @@ -1,67 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2021, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ - -#include "UnitTestPCH.h" - -#include <assimp/postprocess.h> -#include <assimp/scene.h> -#include <assimp/Importer.hpp> - - -using namespace Assimp; - -TEST(utMD3Importer, importWatercan) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_NONBSD_DIR "/MD3/watercan.md3", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); -} - -TEST(utMD3Importer, importWatercan_dmg) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_NONBSD_DIR "/MD3/watercan_dmg.md3", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); -} - -TEST(utMD3Importer, importEuropean_fnt_v2) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_NONBSD_DIR "/MD3/q3root/models/mapobjects/kt_kubalwagon/european_fnt_v2.md3", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); -} diff --git a/libs/assimp/test/unit/ImportExport/utMD5Importer.cpp b/libs/assimp/test/unit/ImportExport/utMD5Importer.cpp deleted file mode 100644 index 0821219..0000000 --- a/libs/assimp/test/unit/ImportExport/utMD5Importer.cpp +++ /dev/null @@ -1,72 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ - -#include "UnitTestPCH.h" - -#include <assimp/postprocess.h> -#include <assimp/scene.h> -#include <assimp/Importer.hpp> - -using namespace Assimp; - -TEST(utMD5Importer, importEmpty) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/MD5/invalid/empty.md5mesh", aiProcess_ValidateDataStructure); - ASSERT_EQ(nullptr, scene); -} - -TEST(utMD5Importer, importSimpleCube) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/MD5/SimpleCube.md5mesh", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); -} - -TEST(utMD5Importer, importBoarMan) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_NONBSD_DIR "/MD5/BoarMan.md5mesh", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); -} - -TEST(utMD5Importer, importBob) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_NONBSD_DIR "/MD5/Bob.md5mesh", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); -} diff --git a/libs/assimp/test/unit/ImportExport/utMDLImporter.cpp b/libs/assimp/test/unit/ImportExport/utMDLImporter.cpp deleted file mode 100644 index c896060..0000000 --- a/libs/assimp/test/unit/ImportExport/utMDLImporter.cpp +++ /dev/null @@ -1,80 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ - -#include "UnitTestPCH.h" - -#include "AbstractImportExportBase.h" -#include <assimp/postprocess.h> -#include <assimp/scene.h> -#include <assimp/Importer.hpp> - -#include "MDL/MDLHL1TestFiles.h" - -using namespace Assimp; - -class utMDLImporter : public AbstractImportExportBase { -public: - virtual bool importerTest() { - - Assimp::Importer importer; - importerTest_HL1(&importer); - - // Add further MDL tests... - - return true; - } - -private: - void importerTest_HL1(Assimp::Importer *const importer) { - const aiScene *scene = importer->ReadFile(MDL_HL1_FILE_MAN, 0); - EXPECT_NE(nullptr, scene); - - // Test that the importer can directly load an HL1 MDL external texture file. - scene = importer->ReadFile(ASSIMP_TEST_MDL_HL1_MODELS_DIR "manT.mdl", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); - EXPECT_NE(0u, scene->mNumTextures); - EXPECT_NE(0u, scene->mNumMaterials); - } -}; - -TEST_F(utMDLImporter, importMDLFromFileTest) { - EXPECT_TRUE(importerTest()); -} diff --git a/libs/assimp/test/unit/ImportExport/utNFFImportExport.cpp b/libs/assimp/test/unit/ImportExport/utNFFImportExport.cpp deleted file mode 100644 index 621324a..0000000 --- a/libs/assimp/test/unit/ImportExport/utNFFImportExport.cpp +++ /dev/null @@ -1,60 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ - -#include "AbstractImportExportBase.h" -#include "UnitTestPCH.h" -#include <assimp/postprocess.h> -#include <assimp/Importer.hpp> - -using namespace Assimp; - -class utNFFImportExport : public AbstractImportExportBase { -public: - virtual bool importerTest() { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/NFF/NFF/ManyEarthsNotJustOne.nff", 0); - return nullptr != scene; - } -}; - -TEST_F(utNFFImportExport, importNFFFromFileTest) { - EXPECT_TRUE(importerTest()); -} diff --git a/libs/assimp/test/unit/ImportExport/utOFFImportExport.cpp b/libs/assimp/test/unit/ImportExport/utOFFImportExport.cpp deleted file mode 100644 index 78ae4ac..0000000 --- a/libs/assimp/test/unit/ImportExport/utOFFImportExport.cpp +++ /dev/null @@ -1,60 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ - -#include "AbstractImportExportBase.h" -#include "UnitTestPCH.h" -#include <assimp/postprocess.h> -#include <assimp/scene.h> -#include <assimp/Exporter.hpp> -#include <assimp/Importer.hpp> - -class utOFFImportExport : public AbstractImportExportBase { -protected: - virtual bool importerTest() { - ::Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/OFF/Cube.off", aiProcess_ValidateDataStructure); - return nullptr != scene; - } -}; - -TEST_F(utOFFImportExport, importOFFFromFileTest) { - EXPECT_TRUE(importerTest()); -} diff --git a/libs/assimp/test/unit/ImportExport/utOgreImportExport.cpp b/libs/assimp/test/unit/ImportExport/utOgreImportExport.cpp deleted file mode 100644 index 7312d6b..0000000 --- a/libs/assimp/test/unit/ImportExport/utOgreImportExport.cpp +++ /dev/null @@ -1,61 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ - -#include "AbstractImportExportBase.h" -#include "UnitTestPCH.h" - -#include <assimp/postprocess.h> -#include <assimp/Importer.hpp> - -using namespace Assimp; - -class utOgreImportExport : public AbstractImportExportBase { -public: - virtual bool importerTest() { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/Ogre/TheThing/Mesh.mesh.xml", aiProcess_ValidateDataStructure); - return nullptr != scene; - } -}; - -TEST_F(utOgreImportExport, importerTest) { - EXPECT_TRUE(importerTest()); -} diff --git a/libs/assimp/test/unit/ImportExport/utQ3BSPFileImportExport.cpp b/libs/assimp/test/unit/ImportExport/utQ3BSPFileImportExport.cpp deleted file mode 100644 index f5694d2..0000000 --- a/libs/assimp/test/unit/ImportExport/utQ3BSPFileImportExport.cpp +++ /dev/null @@ -1,61 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ - -#include "AbstractImportExportBase.h" -#include "UnitTestPCH.h" - -#include <assimp/postprocess.h> -#include <assimp/Importer.hpp> - -using namespace Assimp; - -class utQ3BSPImportExport : public AbstractImportExportBase { -public: - virtual bool importerTest() { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_NONBSD_DIR "/PK3/SGDTT3.pk3", 0); - return nullptr != scene; - } -}; - -TEST_F(utQ3BSPImportExport, importerTest) { - EXPECT_TRUE(importerTest()); -} diff --git a/libs/assimp/test/unit/ImportExport/utXGLImportExport.cpp b/libs/assimp/test/unit/ImportExport/utXGLImportExport.cpp deleted file mode 100644 index 8199806..0000000 --- a/libs/assimp/test/unit/ImportExport/utXGLImportExport.cpp +++ /dev/null @@ -1,94 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ - -#include "UnitTestPCH.h" -#include <assimp/postprocess.h> -#include <assimp/Importer.hpp> - -using namespace Assimp; - -TEST(utXGLImporter, importBCN_Epileptic) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/XGL/BCN_Epileptic.zgl", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); -} - -TEST(utXGLImporter, importCubesWithAlpha) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/XGL/cubes_with_alpha.zgl", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); -} - -TEST(utXGLImporter, importSample_official) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/XGL/sample_official.xgl", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); -} - -TEST(utXGLImporter, importSample_official_asxml) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/XGL/sample_official_asxml.xml", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); -} - -TEST(utXGLImporter, importSphereWithMatGloss) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/XGL/sphere_with_mat_gloss_10pc.zgl", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); -} - -TEST(utXGLImporter, importSpiderASCII) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/XGL/Spider_ascii.zgl", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); -} - -TEST(utXGLImporter, importWuson) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/XGL/Wuson.zgl", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); -} - -TEST(utXGLImporter, importWusonDXF) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/XGL/wuson_dxf.zgl", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); -} diff --git a/libs/assimp/test/unit/Main.cpp b/libs/assimp/test/unit/Main.cpp deleted file mode 100644 index d5049fa..0000000 --- a/libs/assimp/test/unit/Main.cpp +++ /dev/null @@ -1,33 +0,0 @@ -#include "../../include/assimp/DefaultLogger.hpp" -#include "UnitTestPCH.h" - -#include <math.h> -#include <time.h> - -int main(int argc, char *argv[]) { - ::testing::InitGoogleTest(&argc, argv); - - // seed the randomizer with the current system time - time_t t; - time(&t); - srand((unsigned int)t); - - // ............................................................................ - - // create a logger from both CPP - Assimp::DefaultLogger::create("AssimpLog_Cpp.txt", Assimp::Logger::VERBOSE, - aiDefaultLogStream_STDOUT | aiDefaultLogStream_DEBUGGER | aiDefaultLogStream_FILE); - - // .. and C. They should smoothly work together - aiEnableVerboseLogging(AI_TRUE); - aiLogStream logstream = aiGetPredefinedLogStream(aiDefaultLogStream_FILE, "AssimpLog_C.txt"); - aiAttachLogStream(&logstream); - - int result = RUN_ALL_TESTS(); - - // ............................................................................ - // but shutdown must be done from C to ensure proper deallocation - aiDetachAllLogStreams(); - - return result; -} diff --git a/libs/assimp/test/unit/MathTest.cpp b/libs/assimp/test/unit/MathTest.cpp deleted file mode 100644 index ff870ff..0000000 --- a/libs/assimp/test/unit/MathTest.cpp +++ /dev/null @@ -1,56 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "MathTest.h" - -namespace Assimp { - -// Initialize epsilon value. -const float AssimpMathTest::Epsilon = Math::getEpsilon<float>(); - -// Initialize with an interval of [1,100]. -RandomUniformFloatGenerator AssimpMathTest::RandNonZero(1.0f, 100.0f); - -// Initialize with an interval of [-PI,PI] inclusively. -RandomUniformFloatGenerator AssimpMathTest::RandPI(-Math::aiPi<float>(), Math::aiPi<float>()); - -} diff --git a/libs/assimp/test/unit/MathTest.h b/libs/assimp/test/unit/MathTest.h deleted file mode 100644 index 08411e8..0000000 --- a/libs/assimp/test/unit/MathTest.h +++ /dev/null @@ -1,103 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ - -#ifndef ASSIMP_MATH_TEST_H -#define ASSIMP_MATH_TEST_H - -#include "UnitTestPCH.h" -#include <assimp/types.h> -#include "RandomNumberGeneration.h" - -namespace Assimp { - -/** Custom test class providing several math related utilities. */ -class AssimpMathTest : public ::testing::Test { -public: - /** Return a random non-null 2D vector. */ - inline static aiVector2D random_vec2() { - return aiVector2D(RandNonZero.next(), RandNonZero.next()); - } - - /** Return a random non-null 3D vector. */ - inline static aiVector3D random_vec3() { - return aiVector3D(RandNonZero.next(), RandNonZero.next(),RandNonZero.next()); - } - - /** Return a random unit 3D vector. */ - inline static aiVector3D random_unit_vec3() { - return random_vec3().NormalizeSafe(); - } - - /** Return a quaternion with random orientation and - * rotation angle around axis. */ - inline static aiQuaternion random_quat() { - return aiQuaternion(random_unit_vec3(), RandPI.next()); - } - - /** Return a random non-null 3x3 matrix. */ - inline static aiMatrix3x3 random_mat3() { - return aiMatrix3x3( - RandNonZero.next(), RandNonZero.next(),RandNonZero.next(), - RandNonZero.next(), RandNonZero.next(),RandNonZero.next(), - RandNonZero.next(), RandNonZero.next(),RandNonZero.next()); - } - - /** Return a random non-null 4x4 matrix. */ - inline static aiMatrix4x4 random_mat4() { - return aiMatrix4x4( - RandNonZero.next(), RandNonZero.next(),RandNonZero.next(), RandNonZero.next(), - RandNonZero.next(), RandNonZero.next(),RandNonZero.next(), RandNonZero.next(), - RandNonZero.next(), RandNonZero.next(),RandNonZero.next(), RandNonZero.next(), - RandNonZero.next(), RandNonZero.next(),RandNonZero.next(), RandNonZero.next()); - } - - /** Epsilon value to use in tests. */ - static const float Epsilon; - - /** Random number generators. */ - static RandomUniformFloatGenerator RandNonZero, RandPI; -}; - -} - -#endif // ASSIMP_MATH_TEST_H diff --git a/libs/assimp/test/unit/RandomNumberGeneration.h b/libs/assimp/test/unit/RandomNumberGeneration.h deleted file mode 100644 index 95ba5b4..0000000 --- a/libs/assimp/test/unit/RandomNumberGeneration.h +++ /dev/null @@ -1,82 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ - -#ifndef ASSIMP_RANDOM_NUMBER_GENERATION_H -#define ASSIMP_RANDOM_NUMBER_GENERATION_H - -#include <random> - -namespace Assimp { - -/** Helper class to use for generating pseudo-random - * real numbers, with a uniform distribution. */ -template<typename T> -class RandomUniformRealGenerator { -public: - RandomUniformRealGenerator() : - dist_(), - rd_(), - re_(rd_()) { - // empty - } - - RandomUniformRealGenerator(T min, T max) : - dist_(min, max), - rd_(), - re_(rd_()) { - // empty - } - - inline T next() { - return dist_(re_); - } - -private: - std::uniform_real_distribution<T> dist_; - std::random_device rd_; - std::default_random_engine re_; -}; - -using RandomUniformFloatGenerator = RandomUniformRealGenerator<float>; - -} - -#endif // ASSIMP_RANDOM_NUMBER_GENERATION_H diff --git a/libs/assimp/test/unit/SceneDiffer.cpp b/libs/assimp/test/unit/SceneDiffer.cpp deleted file mode 100644 index 0918530..0000000 --- a/libs/assimp/test/unit/SceneDiffer.cpp +++ /dev/null @@ -1,374 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "SceneDiffer.h" -#include <assimp/scene.h> -#include <assimp/mesh.h> -#include <assimp/material.h> -#include <sstream> - -namespace Assimp { - -SceneDiffer::SceneDiffer() -: m_diffs() { - // empty -} - -SceneDiffer::~SceneDiffer() { - // empty -} - -bool SceneDiffer::isEqual( const aiScene *expected, const aiScene *toCompare ) { - if ( expected == toCompare ) { - return true; - } - - if ( nullptr == expected ) { - return false; - } - - if ( nullptr == toCompare ) { - return false; - } - - // meshes - if ( expected->mNumMeshes != toCompare->mNumMeshes ) { - std::stringstream stream; - stream << "Number of meshes not equal ( expected: " << expected->mNumMeshes << ", found : " << toCompare->mNumMeshes << " )\n"; - addDiff( stream.str() ); - return false; - } - - for ( unsigned int i = 0; i < expected->mNumMeshes; i++ ) { - aiMesh *expMesh( expected->mMeshes[ i ] ); - aiMesh *toCompMesh( toCompare->mMeshes[ i ] ); - if ( !compareMesh( expMesh, toCompMesh ) ) { - std::stringstream stream; - stream << "Meshes are not equal, index : " << i << "\n"; - addDiff( stream.str() ); - } - } - - // materials - /*if ( expected->mNumMaterials != toCompare->mNumMaterials ) { - std::stringstream stream; - stream << "Number of materials not equal ( expected: " << expected->mNumMaterials << ", found : " << toCompare->mNumMaterials << " )\n"; - addDiff( stream.str() ); - return false; - } - - if ( expected->mNumMaterials > 0 ) { - if ( nullptr == expected->mMaterials || nullptr == toCompare->mMaterials ) { - addDiff( "Number of materials > 0 and mat pointer is nullptr" ); - return false; - } - } - - for ( unsigned int i = 0; i < expected->mNumMaterials; i++ ) { - aiMaterial *expectedMat( expected->mMaterials[ i ] ); - aiMaterial *toCompareMat( expected->mMaterials[ i ] ); - if ( !compareMaterial( expectedMat, toCompareMat ) ) { - std::stringstream stream; - stream << "Materials are not equal, index : " << i << "\n"; - addDiff( stream.str() ); - return false; - } - }*/ - - return true; -} - -void SceneDiffer::showReport() { - if ( m_diffs.empty() ) { - return; - } - - for ( std::vector<std::string>::iterator it = m_diffs.begin(); it != m_diffs.end(); ++it ) { - std::cout << *it << "\n"; - } - - std::cout << std::endl; -} - -void SceneDiffer::reset() { - m_diffs.resize( 0 ); -} - -void SceneDiffer::addDiff( const std::string &diff ) { - if ( diff.empty() ) { - return; - } - m_diffs.push_back( diff ); -} - -static std::string dumpVector3( const aiVector3D &toDump ) { - std::stringstream stream; - stream << "( " << toDump.x << ", " << toDump.y << ", " << toDump.z << ")"; - return stream.str(); -} - -/*static std::string dumpColor4D( const aiColor4D &toDump ) { - std::stringstream stream; - stream << "( " << toDump.r << ", " << toDump.g << ", " << toDump.b << ", " << toDump.a << ")"; - return stream.str(); -}*/ - -static std::string dumpFace( const aiFace &face ) { - std::stringstream stream; - for ( unsigned int i = 0; i < face.mNumIndices; i++ ) { - stream << face.mIndices[ i ]; - if ( i < face.mNumIndices - 1 ) { - stream << ", "; - } - else { - stream << "\n"; - } - } - return stream.str(); -} - -bool SceneDiffer::compareMesh( aiMesh *expected, aiMesh *toCompare ) { - if ( expected == toCompare ) { - return true; - } - - if ( nullptr == expected || nullptr == toCompare ) { - return false; - } - - if ( expected->mName != toCompare->mName ) { - std::stringstream stream; - stream << "Mesh name not equal ( expected: " << expected->mName.C_Str() << ", found : " << toCompare->mName.C_Str() << " )\n"; - addDiff( stream.str() ); - } - - if ( expected->mNumVertices != toCompare->mNumVertices ) { - std::stringstream stream; - stream << "Number of vertices not equal ( expected: " << expected->mNumVertices << ", found : " << toCompare->mNumVertices << " )\n"; - addDiff( stream.str() ); - return false; - } - - // positions - if ( expected->HasPositions() != toCompare->HasPositions() ) { - addDiff( "Expected are vertices, toCompare does not have any." ); - return false; - } - - bool vertEqual( true ); - for ( unsigned int i = 0; i < expected->mNumVertices; i++ ) { - aiVector3D &expVert( expected->mVertices[ i ] ); - aiVector3D &toCompVert( toCompare->mVertices[ i ] ); - if ( !expVert.Equal( toCompVert ) ) { - std::cout << "index = " << i << dumpVector3( toCompVert ) << "\n"; - std::stringstream stream; - stream << "Vertex not equal ( expected: " << dumpVector3( toCompVert ) << ", found: " << dumpVector3( toCompVert ) << "\n"; - addDiff( stream.str() ); - vertEqual = false; - } - } - if ( !vertEqual ) { - return false; - } - - // normals - if ( expected->HasNormals() != toCompare->HasNormals() ) { - addDiff( "Expected are normals, toCompare does not have any." ); - return false; - } - - // return true; - - //ToDo! - /*bool normalEqual( true ); - for ( unsigned int i = 0; i < expected->mNumVertices; i++ ) { - aiVector3D &expNormal( expected->mNormals[ i ] ); - aiVector3D &toCompNormal( toCompare->mNormals[ i ] ); - if ( expNormal.Equal( toCompNormal ) ) { - std::stringstream stream; - stream << "Normal not equal ( expected: " << dumpVector3( expNormal ) << ", found: " << dumpVector3( toCompNormal ) << "\n"; - addDiff( stream.str() ); - normalEqual = false; - } - } - if ( !normalEqual ) { - return false; - } - - // vertex colors - bool vertColEqual( true ); - for ( unsigned int a = 0; a < AI_MAX_NUMBER_OF_COLOR_SETS; a++ ) { - if ( expected->HasVertexColors(a) != toCompare->HasVertexColors(a) ) { - addDiff( "Expected are normals, toCompare does not have any." ); - return false; - } - for ( unsigned int i = 0; i < expected->mNumVertices; i++ ) { - aiColor4D &expColor4D( expected->mColors[ a ][ i ] ); - aiColor4D &toCompColor4D( toCompare->mColors[ a ][ i ] ); - if ( expColor4D != toCompColor4D ) { - std::stringstream stream; - stream << "Color4D not equal ( expected: " << dumpColor4D( expColor4D ) << ", found: " << dumpColor4D( toCompColor4D ) << "\n"; - addDiff( stream.str() ); - vertColEqual = false; - } - } - if ( !vertColEqual ) { - return false; - } - } - - // texture coords - bool texCoordsEqual( true ); - for ( unsigned int a = 0; a < AI_MAX_NUMBER_OF_TEXTURECOORDS; a++ ) { - if ( expected->HasTextureCoords( a ) != toCompare->HasTextureCoords( a ) ) { - addDiff( "Expected are texture coords, toCompare does not have any." ); - return false; - } - for ( unsigned int i = 0; i < expected->mNumVertices; i++ ) { - aiVector3D &expTexCoord( expected->mTextureCoords[ a ][ i ] ); - aiVector3D &toCompTexCoord( toCompare->mTextureCoords[ a ][ i ] ); - if ( expTexCoord.Equal( toCompTexCoord ) ) { - std::stringstream stream; - stream << "Texture coords not equal ( expected: " << dumpVector3( expTexCoord ) << ", found: " << dumpVector3( toCompTexCoord ) << "\n"; - addDiff( stream.str() ); - vertColEqual = false; - } - } - if ( !vertColEqual ) { - return false; - } - } - - // tangents and bi-tangents - if ( expected->HasTangentsAndBitangents() != toCompare->HasTangentsAndBitangents() ) { - addDiff( "Expected are tangents and bi-tangents, toCompare does not have any." ); - return false; - } - bool tangentsEqual( true ); - for ( unsigned int i = 0; i < expected->mNumVertices; i++ ) { - aiVector3D &expTangents( expected->mTangents[ i ] ); - aiVector3D &toCompTangents( toCompare->mTangents[ i ] ); - if ( expTangents.Equal( toCompTangents ) ) { - std::stringstream stream; - stream << "Tangents not equal ( expected: " << dumpVector3( expTangents ) << ", found: " << dumpVector3( toCompTangents ) << "\n"; - addDiff( stream.str() ); - tangentsEqual = false; - } - - aiVector3D &expBiTangents( expected->mBitangents[ i ] ); - aiVector3D &toCompBiTangents( toCompare->mBitangents[ i ] ); - if ( expBiTangents.Equal( toCompBiTangents ) ) { - std::stringstream stream; - stream << "Tangents not equal ( expected: " << dumpVector3( expBiTangents ) << ", found: " << dumpVector3( toCompBiTangents ) << " )\n"; - addDiff( stream.str() ); - tangentsEqual = false; - } - } - if ( !tangentsEqual ) { - return false; - }*/ - - // faces - if ( expected->mNumFaces != toCompare->mNumFaces ) { - std::stringstream stream; - stream << "Number of faces are not equal, ( expected: " << expected->mNumFaces << ", found: " << toCompare->mNumFaces << ")\n"; - addDiff( stream.str() ); - return false; - } - bool facesEqual( true ); - for ( unsigned int i = 0; i < expected->mNumFaces; i++ ) { - aiFace &expFace( expected->mFaces[ i ] ); - aiFace &toCompareFace( toCompare->mFaces[ i ] ); - if ( !compareFace( &expFace, &toCompareFace ) ) { - addDiff( "Faces are not equal\n" ); - addDiff( dumpFace( expFace ) ); - addDiff( dumpFace( toCompareFace ) ); - facesEqual = false; - } - } - if ( !facesEqual ) { - return false; - } - - return true; -} - -bool SceneDiffer::compareFace( aiFace *expected, aiFace *toCompare ) { - if ( nullptr == expected ) { - return false; - } - if ( nullptr == toCompare ) { - return false; - } - - // same instance - if ( expected == toCompare ) { - return true; - } - - // using compare operator - if ( *expected == *toCompare ) { - return true; - } - - return false; -} - -bool SceneDiffer::compareMaterial( aiMaterial *expected, aiMaterial *toCompare ) { - if ( nullptr == expected ) { - return false; - } - if ( nullptr == toCompare ) { - return false; - } - - // same instance - if ( expected == toCompare ) { - return true; - } - - // todo! - - return true; -} - -} diff --git a/libs/assimp/test/unit/SceneDiffer.h b/libs/assimp/test/unit/SceneDiffer.h deleted file mode 100644 index 2ac429b..0000000 --- a/libs/assimp/test/unit/SceneDiffer.h +++ /dev/null @@ -1,75 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#pragma once - -#include "UnitTestPCH.h" -#include <assimp/fast_atof.h> -#include <vector> -#include <string> - -struct aiScene; -struct aiMesh; -struct aiMaterial; -struct aiFace; - -namespace Assimp { - -class SceneDiffer { -public: - SceneDiffer(); - ~SceneDiffer(); - bool isEqual( const aiScene *expected, const aiScene *toCompare ); - void showReport(); - void reset(); - -protected: - void addDiff( const std::string &diff ); - bool compareMesh( aiMesh *expected, aiMesh *toCompare ); - bool compareFace( aiFace *expected, aiFace *toCompare ); - bool compareMaterial( aiMaterial *expected, aiMaterial *toCompare ); - -private: - std::vector<std::string> m_diffs; -}; - -} diff --git a/libs/assimp/test/unit/TestIOStream.h b/libs/assimp/test/unit/TestIOStream.h deleted file mode 100644 index 2f7280e..0000000 --- a/libs/assimp/test/unit/TestIOStream.h +++ /dev/null @@ -1,62 +0,0 @@ -/* -Open Asset Import Library (assimp) ----------------------------------------------------------------------- - -Copyright (c) 2006-2020, assimp team -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the -following conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ----------------------------------------------------------------------- -*/ -#pragma once - -#include <assimp/DefaultIOStream.h> - -using namespace ::Assimp; - -class TestDefaultIOStream : public DefaultIOStream { -public: - TestDefaultIOStream() - : DefaultIOStream() { - // empty - } - - TestDefaultIOStream( FILE* pFile, const std::string &strFilename ) - : DefaultIOStream( pFile, strFilename ) { - // empty - } - - virtual ~TestDefaultIOStream() { - // empty - } -}; - diff --git a/libs/assimp/test/unit/TestIOSystem.h b/libs/assimp/test/unit/TestIOSystem.h deleted file mode 100644 index b43e65b..0000000 --- a/libs/assimp/test/unit/TestIOSystem.h +++ /dev/null @@ -1,84 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#pragma once - -#include "UnitTestPCH.h" - -#include <assimp/IOSystem.hpp> - -using namespace std; - -namespace Assimp { - -static const string Sep = "/"; - -class TestIOSystem : public IOSystem { -public: - TestIOSystem() - : IOSystem() { - // empty - } - - virtual ~TestIOSystem() { - // empty - } - - virtual bool Exists( const char* ) const { - return true; - } - - virtual char getOsSeparator() const { - return Sep[ 0 ]; - } - - virtual IOStream* Open( const char* pFile, const char* pMode = "rb" ) { - EXPECT_NE( nullptr, pFile ); - EXPECT_NE( nullptr, pMode ); - return NULL; - } - - virtual void Close( IOStream* pFile ) { - EXPECT_NE( nullptr, pFile ); - } -}; - -} // Namespace Assimp diff --git a/libs/assimp/test/unit/TestModelFactory.h b/libs/assimp/test/unit/TestModelFactory.h deleted file mode 100644 index d0f43d7..0000000 --- a/libs/assimp/test/unit/TestModelFactory.h +++ /dev/null @@ -1,105 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#pragma once - -#include "UnitTestPCH.h" -#include <assimp/scene.h> -#include <assimp/mesh.h> -#include <assimp/material.h> - -namespace Assimp { - -class TestModelFacttory { -public: - TestModelFacttory() { - // empty - } - - ~TestModelFacttory() { - // empty - } - - static aiScene *createDefaultTestModel( float &opacity ) { - aiScene *scene( new aiScene ); - scene->mNumMaterials = 1; - scene->mMaterials = new aiMaterial*[scene->mNumMaterials]; - scene->mMaterials[ 0 ] = new aiMaterial; - aiColor3D color( 1, 0, 0 ); - EXPECT_EQ( AI_SUCCESS, scene->mMaterials[ 0 ]->AddProperty( &color, 1, AI_MATKEY_COLOR_DIFFUSE ) ); - - ::srand( static_cast< unsigned int >( ::time( NULL ) ) ); - opacity = float( rand() ) / float( RAND_MAX ); - EXPECT_EQ( AI_SUCCESS, scene->mMaterials[ 0 ]->AddProperty( &opacity, 1, AI_MATKEY_OPACITY ) ); - - scene->mNumMeshes = 1; - scene->mMeshes = new aiMesh*[scene->mNumMeshes]; - scene->mMeshes[ 0 ] = new aiMesh; - scene->mMeshes[ 0 ]->mMaterialIndex = 0; - scene->mMeshes[ 0 ]->mPrimitiveTypes = aiPrimitiveType_TRIANGLE; - scene->mMeshes[ 0 ]->mNumVertices = 3; - scene->mMeshes[ 0 ]->mVertices = new aiVector3D[ 3 ]; - scene->mMeshes[ 0 ]->mVertices[ 0 ] = aiVector3D( 1, 0, 0 ); - scene->mMeshes[ 0 ]->mVertices[ 1 ] = aiVector3D( 0, 1, 0 ); - scene->mMeshes[ 0 ]->mVertices[ 2 ] = aiVector3D( 0, 0, 1 ); - scene->mMeshes[ 0 ]->mNumFaces = 1; - scene->mMeshes[ 0 ]->mFaces = new aiFace[scene->mMeshes[ 0 ]->mNumFaces]; - scene->mMeshes[ 0 ]->mFaces[ 0 ].mNumIndices = 3; - scene->mMeshes[ 0 ]->mFaces[ 0 ].mIndices = new unsigned int[ 3 ]; - scene->mMeshes[ 0 ]->mFaces[ 0 ].mIndices[ 0 ] = 0; - scene->mMeshes[ 0 ]->mFaces[ 0 ].mIndices[ 1 ] = 1; - scene->mMeshes[ 0 ]->mFaces[ 0 ].mIndices[ 2 ] = 2; - - scene->mRootNode = new aiNode(); - scene->mRootNode->mNumMeshes = 1; - scene->mRootNode->mMeshes = new unsigned int[1]{ 0 }; - - return scene; - } - - static void releaseDefaultTestModel( aiScene **scene ) { - delete *scene; - *scene = nullptr; - } -}; - -} diff --git a/libs/assimp/test/unit/UTLogStream.h b/libs/assimp/test/unit/UTLogStream.h deleted file mode 100644 index 70cb3f8..0000000 --- a/libs/assimp/test/unit/UTLogStream.h +++ /dev/null @@ -1,64 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#pragma once - -#include <assimp/LogStream.hpp> - -class UTLogStream : public Assimp::LogStream { -public: - UTLogStream() - : LogStream() { - // empty - } - - virtual ~UTLogStream() { - // empty - } - - virtual void write(const char* message) { - if ( nullptr != message ) { - m_messages.push_back( std::string( message ) ); - } - } - - std::vector<std::string> m_messages; -}; diff --git a/libs/assimp/test/unit/UnitTestFileGenerator.h b/libs/assimp/test/unit/UnitTestFileGenerator.h deleted file mode 100644 index 2166c69..0000000 --- a/libs/assimp/test/unit/UnitTestFileGenerator.h +++ /dev/null @@ -1,76 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2020, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#pragma once - -#include <cstdio> -#include <cstdlib> -#include <gtest/gtest.h> - -#if defined(_MSC_VER) -#include <io.h> -#define TMP_PATH "./" -inline FILE* MakeTmpFile(char* tmplate) -{ - auto pathtemplate = _mktemp(tmplate); - EXPECT_NE(pathtemplate, nullptr); - if(pathtemplate == nullptr) - { - return nullptr; - } - auto* fs = std::fopen(pathtemplate, "w+"); - EXPECT_NE(fs, nullptr); - return fs; -} -#elif defined(__GNUC__) || defined(__clang__) -#define TMP_PATH "/tmp/" -inline FILE* MakeTmpFile(char* tmplate) -{ - auto fd = mkstemp(tmplate); - EXPECT_NE(-1, fd); - if(fd == -1) - { - return nullptr; - } - auto fs = fdopen(fd, "w+"); - EXPECT_NE(nullptr, fs); - return fs; -} -#endif diff --git a/libs/assimp/test/unit/UnitTestPCH.h b/libs/assimp/test/unit/UnitTestPCH.h deleted file mode 100644 index 4570dce..0000000 --- a/libs/assimp/test/unit/UnitTestPCH.h +++ /dev/null @@ -1,59 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2020, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#pragma once - -// We need to be sure to have the same STL settings as Assimp - -#include <assimp/cimport.h> -#ifdef _MSC_VER -# pragma warning(push) -# pragma warning(disable : 4389) -#endif -#include <gtest/gtest.h> -#ifdef _MSC_VER -# pragma warning(pop) -#endif -#include <memory> -#include <math.h> -#include "UTLogStream.h" - -#undef min -#undef max diff --git a/libs/assimp/test/unit/ut3DImportExport.cpp b/libs/assimp/test/unit/ut3DImportExport.cpp deleted file mode 100644 index 5ff1d79..0000000 --- a/libs/assimp/test/unit/ut3DImportExport.cpp +++ /dev/null @@ -1,67 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ - -#include "UnitTestPCH.h" - -#include <assimp/Importer.hpp> -#include <assimp/postprocess.h> - -using namespace Assimp; - -TEST(ut3DImportExport, importBoxA) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/3D/box_a.3d", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); -} - - -TEST(ut3DImportExport, importBoxD) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/3D/box_d.3d", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); -} - - -TEST(ut3DImportExport, importBoxUC) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/3D/box.uc", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); -} diff --git a/libs/assimp/test/unit/ut3DSImportExport.cpp b/libs/assimp/test/unit/ut3DSImportExport.cpp deleted file mode 100644 index 0140636..0000000 --- a/libs/assimp/test/unit/ut3DSImportExport.cpp +++ /dev/null @@ -1,72 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ - -#include "AbstractImportExportBase.h" -#include "UnitTestPCH.h" - -#include <assimp/postprocess.h> -#include <assimp/Importer.hpp> - -using namespace Assimp; - -class ut3DSImportExport : public AbstractImportExportBase { -public: - bool importerTest() override { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/3DS/fels.3ds", aiProcess_ValidateDataStructure); -#ifndef ASSIMP_BUILD_NO_3DS_IMPORTER - return nullptr != scene; -#else - return nullptr == scene; -#endif // ASSIMP_BUILD_NO_3DS_IMPORTER - } -}; - -TEST_F(ut3DSImportExport, import3DSFromFileTest) { - EXPECT_TRUE(importerTest()); -} - -TEST_F(ut3DSImportExport, import3DSformatdetection) { - ::Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/3DS/testFormatDetection", aiProcess_ValidateDataStructure); - - EXPECT_NE(nullptr, scene); -} diff --git a/libs/assimp/test/unit/utACImportExport.cpp b/libs/assimp/test/unit/utACImportExport.cpp deleted file mode 100644 index 9615a3a..0000000 --- a/libs/assimp/test/unit/utACImportExport.cpp +++ /dev/null @@ -1,114 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ - -#include "UnitTestPCH.h" - -#include <assimp/postprocess.h> -#include <assimp/Importer.hpp> - -using namespace Assimp; - -TEST(utACImportExport, importClosedLine) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/AC/closedLine.ac", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); -} - -TEST(utACImportExport, importNoSurfaces) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/AC/nosurfaces.ac", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); -} - -TEST(utACImportExport, importOpenLine) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/AC/openLine.ac", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); -} - -TEST(utACImportExport, importSampleSubdiv) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/AC/sample_subdiv.ac", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); -} - -TEST(utACImportExport, importSphereWithLight) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/AC/SphereWithLight.ac", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); -} - -TEST(utACImportExport, importSphereWithLightUTF16) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/AC/SphereWithLight_UTF16LE.ac", aiProcess_ValidateDataStructure); - // FIXME: this is probably wrong, loading the file should succeed - ASSERT_EQ(nullptr, scene); -} - -TEST(utACImportExport, importSphereWithLightUTF8BOM) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/AC/SphereWithLight_UTF8BOM.ac", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); -} - -TEST(utACImportExport, importSphereWithLightUvScaling4X) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/AC/SphereWithLightUvScaling4X.ac", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); -} - -TEST(utACImportExport, importWuson) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/AC/Wuson.ac", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); -} - -TEST(utACImportExport, importWusonACC) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/AC/Wuson.acc", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); -} - -TEST(utACImportExport, testFormatDetection) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/AC/TestFormatDetection", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); -} diff --git a/libs/assimp/test/unit/utAMFImportExport.cpp b/libs/assimp/test/unit/utAMFImportExport.cpp deleted file mode 100644 index 78309a1..0000000 --- a/libs/assimp/test/unit/utAMFImportExport.cpp +++ /dev/null @@ -1,67 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ - -#include "AbstractImportExportBase.h" -#include "UnitTestPCH.h" - -#include <assimp/postprocess.h> -#include <assimp/Importer.hpp> - -using namespace Assimp; - -class utAMFImportExport : public AbstractImportExportBase { -public: - bool importerTest() override { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/AMF/test1.amf", aiProcess_ValidateDataStructure); - return nullptr != scene; - } -}; - -TEST_F(utAMFImportExport, importAMFFromFileTest) { - EXPECT_TRUE(importerTest()); -} - -TEST_F(utAMFImportExport, importAMFWithMatFromFileTest) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/AMF/test_with_mat.amf", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); -} diff --git a/libs/assimp/test/unit/utASEImportExport.cpp b/libs/assimp/test/unit/utASEImportExport.cpp deleted file mode 100644 index 8014cbb..0000000 --- a/libs/assimp/test/unit/utASEImportExport.cpp +++ /dev/null @@ -1,65 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ - -#include "AbstractImportExportBase.h" -#include "UnitTestPCH.h" - -#include <assimp/postprocess.h> -#include <assimp/Importer.hpp> - -using namespace Assimp; - -class utASEImportExport : public AbstractImportExportBase { -public: - bool importerTest() override { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/ASE/ThreeCubesGreen.ASE", aiProcess_ValidateDataStructure); -#ifndef ASSIMP_BUILD_NO_3DS_IMPORTER - return nullptr != scene; -#else - return nullptr == scene; -#endif // ASSIMP_BUILD_NO_3DS_IMPORTER - } -}; - -TEST_F(utASEImportExport, importACFromFileTest) { - EXPECT_TRUE(importerTest()); -} diff --git a/libs/assimp/test/unit/utAnim.cpp b/libs/assimp/test/unit/utAnim.cpp deleted file mode 100644 index 956810d..0000000 --- a/libs/assimp/test/unit/utAnim.cpp +++ /dev/null @@ -1,107 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "UnitTestPCH.h" - -#include <assimp/anim.h> - -using namespace Assimp; - -class utAnim : public ::testing::Test { - // empty -}; - -TEST_F( utAnim, aiVectorKeyCreationTest ) { - aiVectorKey defaultConstTest; - EXPECT_DOUBLE_EQ( 0.0, defaultConstTest.mTime ); - - aiVector3D v( 1, 2, 3 ); - aiVectorKey constrWithValuesTest( 1, v ); - EXPECT_DOUBLE_EQ( 1.0, constrWithValuesTest.mTime ); - EXPECT_EQ( v, constrWithValuesTest.mValue ); - - EXPECT_NE( defaultConstTest, constrWithValuesTest ); - EXPECT_TRUE( defaultConstTest != constrWithValuesTest ); - defaultConstTest.mTime = 1; - constrWithValuesTest.mTime = 2; - EXPECT_TRUE( defaultConstTest < constrWithValuesTest ); -} - -TEST_F( utAnim, aiQuatKeyTest ) { - aiQuatKey defaultConstrTest; - EXPECT_DOUBLE_EQ( 0.0, defaultConstrTest.mTime ); - - aiQuaternion q; - aiQuatKey constrWithValuesTest( 1.0, q ); - EXPECT_DOUBLE_EQ( 1.0, constrWithValuesTest.mTime ); - EXPECT_EQ( q, constrWithValuesTest.mValue ); -} - -TEST_F( utAnim, aiNodeAnimTest ) { - bool ok( true ); - try { - aiNodeAnim myAnim; - EXPECT_EQ( aiAnimBehaviour_DEFAULT, myAnim.mPreState ); - EXPECT_EQ( aiAnimBehaviour_DEFAULT, myAnim.mPostState ); - } catch ( ... ) { - ok = false; - } - EXPECT_TRUE( ok ); -} - -TEST_F( utAnim, aiMeshAnimTest ) { - bool ok( true ); - try { - aiMeshAnim myMeshAnim; - } catch ( ... ) { - ok = false; - } - EXPECT_TRUE( ok ); -} - -TEST_F( utAnim, aiAnimationTest ) { - bool ok( true ); - try { - aiAnimation myAnimation; - } catch ( ... ) { - ok = false; - } - EXPECT_TRUE( ok ); -} diff --git a/libs/assimp/test/unit/utArmaturePopulate.cpp b/libs/assimp/test/unit/utArmaturePopulate.cpp deleted file mode 100644 index 0acea7b..0000000 --- a/libs/assimp/test/unit/utArmaturePopulate.cpp +++ /dev/null @@ -1,79 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "TestModelFactory.h" -#include "UnitTestPCH.h" - -#include "AbstractImportExportBase.h" - -#include <assimp/material.h> -#include <assimp/postprocess.h> -#include <assimp/scene.h> -#include <assimp/types.h> -#include <assimp/Importer.hpp> - -#include "PostProcessing/ArmaturePopulate.h" - -namespace Assimp { -namespace UnitTest { - -class utArmaturePopulate : public ::testing::Test { - // empty -}; - -TEST_F(utArmaturePopulate, importCheckForArmatureTest) { - Assimp::Importer importer; - unsigned int mask = aiProcess_PopulateArmatureData | aiProcess_ValidateDataStructure; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/FBX/huesitos.fbx", mask); - EXPECT_NE(nullptr, scene); - EXPECT_EQ(scene->mNumMeshes, 1u); - aiMesh *mesh = scene->mMeshes[0]; - EXPECT_EQ(mesh->mNumFaces, 68u); - EXPECT_EQ(mesh->mNumVertices, 256u); - EXPECT_GT(mesh->mNumBones, 0u); - - aiBone *exampleBone = mesh->mBones[0]; - EXPECT_NE(exampleBone, nullptr); - EXPECT_NE(exampleBone->mArmature, nullptr); - EXPECT_NE(exampleBone->mNode, nullptr); -} - -} // Namespace UnitTest -} // Namespace Assimp diff --git a/libs/assimp/test/unit/utAssbinImportExport.cpp b/libs/assimp/test/unit/utAssbinImportExport.cpp deleted file mode 100644 index 437a0a5..0000000 --- a/libs/assimp/test/unit/utAssbinImportExport.cpp +++ /dev/null @@ -1,69 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "AbstractImportExportBase.h" -#include "UnitTestPCH.h" -#include <assimp/postprocess.h> -#include <assimp/Exporter.hpp> -#include <assimp/Importer.hpp> - -using namespace Assimp; - -#ifndef ASSIMP_BUILD_NO_EXPORT - -class utAssbinImportExport : public AbstractImportExportBase { -public: - bool importerTest() override { - Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/OBJ/spider.obj", aiProcess_ValidateDataStructure); - - Exporter exporter; - EXPECT_EQ(aiReturn_SUCCESS, exporter.Export(scene, "assbin", ASSIMP_TEST_MODELS_DIR "/OBJ/spider_out.assbin")); - const aiScene *newScene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/OBJ/spider_out.assbin", aiProcess_ValidateDataStructure); - - return newScene != nullptr; - } -}; - -TEST_F(utAssbinImportExport, import3ExportAssbinDFromFileTest) { - EXPECT_TRUE(importerTest()); -} - -#endif // #ifndef ASSIMP_BUILD_NO_EXPORT diff --git a/libs/assimp/test/unit/utB3DImportExport.cpp b/libs/assimp/test/unit/utB3DImportExport.cpp deleted file mode 100644 index 9672aa0..0000000 --- a/libs/assimp/test/unit/utB3DImportExport.cpp +++ /dev/null @@ -1,61 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ - -#include "AbstractImportExportBase.h" -#include "UnitTestPCH.h" - -#include <assimp/postprocess.h> -#include <assimp/Importer.hpp> - -using namespace Assimp; - -class utB3DImportExport : public AbstractImportExportBase { -public: - virtual bool importerTest() { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/B3D/WusonBlitz.b3d", aiProcess_ValidateDataStructure); - return nullptr != scene; - } -}; - -TEST_F(utB3DImportExport, importACFromFileTest) { - EXPECT_TRUE(importerTest()); -} diff --git a/libs/assimp/test/unit/utBVHImportExport.cpp b/libs/assimp/test/unit/utBVHImportExport.cpp deleted file mode 100644 index d69ac79..0000000 --- a/libs/assimp/test/unit/utBVHImportExport.cpp +++ /dev/null @@ -1,60 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "AbstractImportExportBase.h" -#include "UnitTestPCH.h" - -#include <assimp/postprocess.h> -#include <assimp/Importer.hpp> - -using namespace Assimp; - -class utBVHImportExport : public AbstractImportExportBase { -public: - bool importerTest() override { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/BVH/01_01.bvh", aiProcess_ValidateDataStructure); - return nullptr != scene; - } -}; - -TEST_F(utBVHImportExport, importBlenFromFileTest) { - EXPECT_TRUE(importerTest()); -} diff --git a/libs/assimp/test/unit/utBatchLoader.cpp b/libs/assimp/test/unit/utBatchLoader.cpp deleted file mode 100644 index df6aa79..0000000 --- a/libs/assimp/test/unit/utBatchLoader.cpp +++ /dev/null @@ -1,81 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "UnitTestPCH.h" -#include "Common/Importer.h" -#include "TestIOSystem.h" - -using namespace ::Assimp; - -class BatchLoaderTest : public ::testing::Test { -public: - virtual void SetUp() { - m_io = new TestIOSystem(); - } - - virtual void TearDown() { - delete m_io; - } - -protected: - TestIOSystem* m_io; -}; - -TEST_F( BatchLoaderTest, createTest ) { - bool ok( true ); - try { - BatchLoader loader( m_io ); - } catch ( ... ) { - ok = false; - } - EXPECT_TRUE( ok ); -} - -TEST_F( BatchLoaderTest, validateAccessTest ) { - BatchLoader loader1( m_io ); - EXPECT_FALSE( loader1.getValidation() ); - loader1.setValidation( true ); - EXPECT_TRUE( loader1.getValidation() ); - - BatchLoader loader2( m_io, true ); - EXPECT_TRUE( loader2.getValidation() ); -} diff --git a/libs/assimp/test/unit/utBlendImportAreaLight.cpp b/libs/assimp/test/unit/utBlendImportAreaLight.cpp deleted file mode 100644 index 5378874..0000000 --- a/libs/assimp/test/unit/utBlendImportAreaLight.cpp +++ /dev/null @@ -1,109 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "UnitTestPCH.h" - -#include <assimp/cexport.h> -#include <assimp/postprocess.h> -#include <assimp/scene.h> -#include <assimp/Exporter.hpp> -#include <assimp/Importer.hpp> - -class BlendImportAreaLight : public ::testing::Test { -public: - void SetUp() override { - im = new Assimp::Importer(); - } - - void TearDown() override { - delete im; - } - -protected: - Assimp::Importer *im; -}; - -// ------------------------------------------------------------------------------------------------ -TEST_F(BlendImportAreaLight, testImportLight) { - const aiScene *pTest = im->ReadFile(ASSIMP_TEST_MODELS_DIR "/BLEND/AreaLight_269.blend", aiProcess_ValidateDataStructure); - ASSERT_TRUE(pTest != nullptr); - ASSERT_TRUE(pTest->HasLights()); - - std::vector<std::pair<std::string, size_t>> lightNames; - - for (size_t i = 0; i < pTest->mNumLights; i++) { - lightNames.push_back(std::make_pair(pTest->mLights[i]->mName.C_Str(), i)); - } - - std::sort(lightNames.begin(), lightNames.end()); - - std::vector<aiLight> lights; - - for (size_t i = 0; i < pTest->mNumLights; ++i) { - lights.push_back(*pTest->mLights[lightNames[i].second]); - } - - ASSERT_STREQ(lights[0].mName.C_Str(), "Bar"); - ASSERT_STREQ(lights[1].mName.C_Str(), "Baz"); - ASSERT_STREQ(lights[2].mName.C_Str(), "Foo"); - - ASSERT_EQ(lights[0].mType, aiLightSource_AREA); - ASSERT_EQ(lights[1].mType, aiLightSource_POINT); - ASSERT_EQ(lights[2].mType, aiLightSource_AREA); - - EXPECT_FLOAT_EQ(lights[0].mSize.x, 0.5f); - EXPECT_FLOAT_EQ(lights[0].mSize.y, 2.0f); - EXPECT_FLOAT_EQ(lights[2].mSize.x, 1.0f); - EXPECT_FLOAT_EQ(lights[2].mSize.y, 1.0f); - - EXPECT_FLOAT_EQ(lights[0].mColorDiffuse.r, 42.0f); - EXPECT_FLOAT_EQ(lights[0].mColorDiffuse.g, 42.0f); - EXPECT_FLOAT_EQ(lights[0].mColorDiffuse.b, 42.0f); - EXPECT_FLOAT_EQ(lights[2].mColorDiffuse.r, 1.0f); - EXPECT_FLOAT_EQ(lights[2].mColorDiffuse.g, 1.0f); - EXPECT_FLOAT_EQ(lights[2].mColorDiffuse.b, 1.0f); - - EXPECT_FLOAT_EQ(lights[0].mDirection.x, 0.0f); - EXPECT_FLOAT_EQ(lights[0].mDirection.y, 0.0f); - EXPECT_FLOAT_EQ(lights[0].mDirection.z, -1.0f); - EXPECT_FLOAT_EQ(lights[2].mDirection.x, 0.0f); - EXPECT_FLOAT_EQ(lights[2].mDirection.y, 0.0f); - EXPECT_FLOAT_EQ(lights[2].mDirection.z, -1.0f); -} diff --git a/libs/assimp/test/unit/utBlendImportMaterials.cpp b/libs/assimp/test/unit/utBlendImportMaterials.cpp deleted file mode 100644 index 582d47e..0000000 --- a/libs/assimp/test/unit/utBlendImportMaterials.cpp +++ /dev/null @@ -1,146 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "UnitTestPCH.h" - -#include <assimp/cexport.h> -#include <assimp/postprocess.h> -#include <assimp/scene.h> -#include <assimp/Importer.hpp> - -class BlendImportMaterials : public ::testing::Test { -public: - void SetUp() override { - im = new Assimp::Importer(); - } - - void TearDown() override { - delete im; - } - -protected: - Assimp::Importer *im; -}; - -// ------------------------------------------------------------------------------------------------ -TEST_F(BlendImportMaterials, testImportMaterial) { - const aiScene *pTest = im->ReadFile(ASSIMP_TEST_MODELS_DIR "/BLEND/BlenderMaterial_269.blend", aiProcess_ValidateDataStructure); - ASSERT_TRUE(pTest != NULL); - ASSERT_TRUE(pTest->HasMaterials()); - - ASSERT_EQ(1U, pTest->mNumMaterials); - - auto alpha = pTest->mMaterials[0]; - -#define ASSERT_PROPERTY_EQ(expected, key, var) \ - auto var = expected; \ - ASSERT_EQ(aiReturn_SUCCESS, alpha->Get("$mat.blend." key, 0, 0, var)); \ - ASSERT_EQ(expected, var); - -#define ASSERT_PROPERTY_FLOAT_EQ(expected, key, var) \ - auto var = expected; \ - ASSERT_EQ(aiReturn_SUCCESS, alpha->Get("$mat.blend." key, 0, 0, var)); \ - ASSERT_FLOAT_EQ(expected, var); - - ASSERT_PROPERTY_EQ(aiColor3D(0.1f, 0.2f, 0.3f), "diffuse.color", diffuseColor); - ASSERT_PROPERTY_EQ(0.4f, "diffuse.intensity", diffuseIntensity); - ASSERT_PROPERTY_EQ(1, "diffuse.shader", diffuseShader); - ASSERT_PROPERTY_EQ(0, "diffuse.ramp", diffuseRamp); - - ASSERT_PROPERTY_EQ(aiColor3D(0.5f, 0.6f, 0.7f), "specular.color", specularColor); - ASSERT_PROPERTY_EQ(0.8f, "specular.intensity", specularIntensity); - ASSERT_PROPERTY_EQ(1, "specular.shader", specularShader); - ASSERT_PROPERTY_EQ(0, "specular.ramp", specularRamp); - ASSERT_PROPERTY_EQ(9, "specular.hardness", specularHardness); - - ASSERT_PROPERTY_EQ(1, "transparency.use", transparencyUse); - ASSERT_PROPERTY_EQ(2, "transparency.method", transparencyMethod); - ASSERT_PROPERTY_EQ(0.01f, "transparency.alpha", transparencyAlpha); - ASSERT_PROPERTY_EQ(0.02f, "transparency.specular", transparencySpecular); - ASSERT_PROPERTY_EQ(0.03f, "transparency.fresnel", transparencyFresnel); - ASSERT_PROPERTY_EQ(3.14f, "transparency.blend", transparencyBlend); - ASSERT_PROPERTY_EQ(0.85f, "transparency.ior", transparencyIor); - ASSERT_PROPERTY_FLOAT_EQ(0.128f, "transparency.filter", transparencyFilter); - ASSERT_PROPERTY_FLOAT_EQ(1.298f, "transparency.falloff", transparencyFalloff); - ASSERT_PROPERTY_FLOAT_EQ(0.2376f, "transparency.limit", transparencyLimit); - ASSERT_PROPERTY_EQ(7, "transparency.depth", transparencyDepth); - ASSERT_PROPERTY_FLOAT_EQ(0.678f, "transparency.glossAmount", transparencyGlossAmount); - ASSERT_PROPERTY_FLOAT_EQ(0.208f, "transparency.glossThreshold", transparencyGlossThreshold); - ASSERT_PROPERTY_EQ(17, "transparency.glossSamples", transparencyGlossSamples); - - ASSERT_PROPERTY_EQ(1, "mirror.use", mirrorUse); - ASSERT_PROPERTY_FLOAT_EQ(0.28f, "mirror.reflectivity", mirrorReflectivity); - ASSERT_PROPERTY_EQ(aiColor3D(0.25f, 0.5f, 0.128f), "mirror.color", mirrorColor); - ASSERT_PROPERTY_FLOAT_EQ(0.256f, "mirror.fresnel", mirrorFresnel); - ASSERT_PROPERTY_FLOAT_EQ(1.61f, "mirror.blend", mirrorBlend); - ASSERT_PROPERTY_EQ(12, "mirror.depth", mirrorDepth); - ASSERT_PROPERTY_FLOAT_EQ(0.4f, "mirror.maxDist", mirrorMaxDist); - ASSERT_PROPERTY_EQ(1, "mirror.fadeTo", mirrorFadeTo); - ASSERT_PROPERTY_FLOAT_EQ(0.512f, "mirror.glossAmount", mirrorGlossAmount); - ASSERT_PROPERTY_FLOAT_EQ(0.18f, "mirror.glossThreshold", mirrorGlossThreshold); - ASSERT_PROPERTY_EQ(61, "mirror.glossSamples", mirrorGlossSamples); - ASSERT_PROPERTY_FLOAT_EQ(0.87f, "mirror.glossAnisotropic", mirrorGlossAnisotropic); -} - -TEST_F(BlendImportMaterials, testImportMaterialwith2texturesAnd2TexCoordMappings) { - const aiScene *pTest = im->ReadFile(ASSIMP_TEST_MODELS_DIR "/BLEND/plane_2_textures_2_texcoords_279.blend", aiProcess_ValidateDataStructure); - ASSERT_TRUE(pTest != NULL); - - // material has 2 diffuse textures - ASSERT_TRUE(pTest->HasMaterials()); - EXPECT_EQ(1u, pTest->mNumMaterials); - const aiMaterial *pMat = pTest->mMaterials[0]; - ASSERT_TRUE(nullptr != pMat); - ASSERT_EQ(2u, pMat->GetTextureCount(aiTextureType_DIFFUSE)); - aiString aPath; - aiTextureMapping tm = aiTextureMapping::aiTextureMapping_OTHER; - aiReturn result = pMat->GetTexture(aiTextureType_DIFFUSE, 0, &aPath, &tm); - ASSERT_EQ(aiReturn_SUCCESS, result); - result = pMat->GetTexture(aiTextureType_DIFFUSE, 1, &aPath, &tm); - ASSERT_EQ(aiReturn_SUCCESS, result); - - // mesh has 2 texturecoord sets - ASSERT_TRUE(pTest->HasMeshes()); - EXPECT_EQ(1u, pTest->mNumMeshes); - const aiMesh *pMesh = pTest->mMeshes[0]; - ASSERT_TRUE(nullptr != pMesh); - ASSERT_TRUE(pMesh->HasTextureCoords(0)); - ASSERT_TRUE(pMesh->HasTextureCoords(1)); -} diff --git a/libs/assimp/test/unit/utBlenderImportExport.cpp b/libs/assimp/test/unit/utBlenderImportExport.cpp deleted file mode 100644 index 2970986..0000000 --- a/libs/assimp/test/unit/utBlenderImportExport.cpp +++ /dev/null @@ -1,218 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "AbstractImportExportBase.h" -#include "UnitTestPCH.h" - -#include <assimp/postprocess.h> -#include <assimp/Importer.hpp> - -using namespace Assimp; - -class utBlenderImporterExporter : public AbstractImportExportBase { -public: - virtual bool importerTest() { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/BLEND/box.blend", aiProcess_ValidateDataStructure); - return nullptr != scene; - } -}; - -TEST_F(utBlenderImporterExporter, importBlenFromFileTest) { - EXPECT_TRUE(importerTest()); -} - -TEST(utBlenderImporter, import4cubes) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/BLEND/4Cubes4Mats_248.blend", aiProcess_ValidateDataStructure); - // FIXME: this is probably not right, loading this should succeed - ASSERT_EQ(nullptr, scene); -} - -TEST(utBlenderImporter, import269_regress1) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/BLEND/blender_269_regress1.blend", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); -} - -TEST(utBlenderImporter, importBlenderDefault248) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/BLEND/BlenderDefault_248.blend", aiProcess_ValidateDataStructure); - // FIXME: this is probably not right, loading this should succeed - ASSERT_EQ(nullptr, scene); -} - -TEST(utBlenderImporter, importBlenderDefault250) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/BLEND/BlenderDefault_250.blend", aiProcess_ValidateDataStructure); - // FIXME: this is probably not right, loading this should succeed - ASSERT_EQ(nullptr, scene); -} - -TEST(utBlenderImporter, importBlenderDefault250Compressed) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/BLEND/BlenderDefault_250_Compressed.blend", aiProcess_ValidateDataStructure); - // FIXME: this is probably not right, loading this should succeed - ASSERT_EQ(nullptr, scene); -} - -TEST(utBlenderImporter, importBlenderDefault262) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/BLEND/BlenderDefault_262.blend", aiProcess_ValidateDataStructure); - // FIXME: this is probably not right, loading this should succeed - ASSERT_EQ(nullptr, scene); -} - -TEST(utBlenderImporter, importBlenderDefault269) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/BLEND/BlenderDefault_269.blend", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); -} - -TEST(utBlenderImporter, importBlenderDefault271) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/BLEND/BlenderDefault_271.blend", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); -} - -TEST(utBlenderImporter, importBlenderDefault293) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/BLEND/BlenderDefault_276.blend", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); -} - -TEST(utBlenderImporter, importCubeHierarchy_248) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/BLEND/CubeHierarchy_248.blend", aiProcess_ValidateDataStructure); - // FIXME: this is probably not right, loading this should succeed - ASSERT_EQ(nullptr, scene); -} - -TEST(utBlenderImporter, importHuman) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/BLEND/HUMAN.blend", aiProcess_ValidateDataStructure); - // FIXME: this is probably not right, loading this should succeed - ASSERT_EQ(nullptr, scene); -} - -TEST(utBlenderImporter, importMirroredCube_252) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/BLEND/MirroredCube_252.blend", aiProcess_ValidateDataStructure); - // FIXME: this is probably not right, loading this should succeed - ASSERT_EQ(nullptr, scene); -} - -TEST(utBlenderImporter, importNoisyTexturedCube_VoronoiGlob_248) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/BLEND/NoisyTexturedCube_VoronoiGlob_248.blend", aiProcess_ValidateDataStructure); - // FIXME: this is probably not right, loading this should succeed - ASSERT_EQ(nullptr, scene); -} - -TEST(utBlenderImporter, importSmoothVsSolidCube_248) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/BLEND/SmoothVsSolidCube_248.blend", aiProcess_ValidateDataStructure); - // FIXME: this is probably not right, loading this should succeed - ASSERT_EQ(nullptr, scene); -} - -TEST(utBlenderImporter, importSuzanne_248) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/BLEND/Suzanne_248.blend", aiProcess_ValidateDataStructure); - // FIXME: this is probably not right, loading this should succeed - ASSERT_EQ(nullptr, scene); -} - -TEST(utBlenderImporter, importSuzanneSubdiv_252) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/BLEND/SuzanneSubdiv_252.blend", aiProcess_ValidateDataStructure); - // FIXME: this is probably not right, loading this should succeed - ASSERT_EQ(nullptr, scene); -} - -TEST(utBlenderImporter, importTexturedCube_ImageGlob_248) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/BLEND/TexturedCube_ImageGlob_248.blend", aiProcess_ValidateDataStructure); - // FIXME: this is probably not right, loading this should succeed - ASSERT_EQ(nullptr, scene); -} - -TEST(utBlenderImporter, importTexturedPlane_ImageUv_248) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/BLEND/TexturedPlane_ImageUv_248.blend", aiProcess_ValidateDataStructure); - // FIXME: this is probably not right, loading this should succeed - ASSERT_EQ(nullptr, scene); -} - -TEST(utBlenderImporter, importTexturedPlane_ImageUvPacked_248) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/BLEND/TexturedPlane_ImageUvPacked_248.blend", aiProcess_ValidateDataStructure); - // FIXME: this is probably not right, loading this should succeed - ASSERT_EQ(nullptr, scene); -} - -TEST(utBlenderImporter, importTorusLightsCams_250_compressed) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/BLEND/TorusLightsCams_250_compressed.blend", aiProcess_ValidateDataStructure); - // FIXME: this is probably not right, loading this should succeed - ASSERT_EQ(nullptr, scene); -} - -TEST(utBlenderImporter, import_yxa_1) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/BLEND/yxa_1.blend", aiProcess_ValidateDataStructure); - // FIXME: this is probably not right, loading this should succeed - ASSERT_EQ(nullptr, scene); -} - -TEST(utBlenderImporter, importBob) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_NONBSD_DIR "/BLEND/Bob.blend", aiProcess_ValidateDataStructure); - // FIXME: this is probably not right, loading this should succeed - ASSERT_EQ(nullptr, scene); -} - -TEST(utBlenderImporter, importFleurOptonl) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_NONBSD_DIR "/BLEND/fleurOptonl.blend", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); -} diff --git a/libs/assimp/test/unit/utBlenderIntermediate.cpp b/libs/assimp/test/unit/utBlenderIntermediate.cpp deleted file mode 100644 index c2cc51e..0000000 --- a/libs/assimp/test/unit/utBlenderIntermediate.cpp +++ /dev/null @@ -1,80 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "UnitTestPCH.h" -#include "AssetLib/Blender/BlenderIntermediate.h" -#include <assimp/camera.h> -#include <assimp/light.h> -#include <assimp/mesh.h> -#include <assimp/texture.h> - -using namespace ::Assimp; -using namespace ::Assimp::Blender; - -class BlenderIntermediateTest : public ::testing::Test { - // empty -}; - -#define NAME_1 "name1" -#define NAME_2 "name2" - -// Updated this test after fixing #1776: -// A comparator in C++ is used for ordering and must implement strict weak ordering, -// which means it must return false for equal values. -// The C++ standard defines and expects this behavior: true if lhs < rhs, false otherwise. -TEST_F(BlenderIntermediateTest, ConversionData_ObjectCompareTest) { - Object obj1, obj2; - strncpy(obj1.id.name, NAME_1, sizeof(obj1.id.name)); - strncpy(obj2.id.name, NAME_2, sizeof(obj2.id.name)); - - Blender::ObjectCompare cmp_true_because_first_is_smaller_than_second; - bool res(cmp_true_because_first_is_smaller_than_second(&obj1, &obj2)); - EXPECT_TRUE(res); - - Blender::ObjectCompare cmp_false_because_equal; - res = cmp_false_because_equal(&obj1, &obj1); - EXPECT_FALSE(res); - - Blender::ObjectCompare cmp_false_because_first_is_greater_than_second; - res = cmp_false_because_first_is_greater_than_second(&obj2, &obj1); - EXPECT_FALSE(res); -} diff --git a/libs/assimp/test/unit/utBlenderWork.cpp b/libs/assimp/test/unit/utBlenderWork.cpp deleted file mode 100644 index 554198b..0000000 --- a/libs/assimp/test/unit/utBlenderWork.cpp +++ /dev/null @@ -1,73 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "UnitTestPCH.h" -#include <assimp/cexport.h> -#include <assimp/postprocess.h> -#include <assimp/scene.h> -#include <assimp/Importer.hpp> - -using namespace ::Assimp; - -class BlenderWorkTest : public ::testing::Test { -public: - virtual void SetUp() { - im = new Assimp::Importer(); - } - - virtual void TearDown() { - delete im; - } - -protected: - Assimp::Importer *im; -}; - -TEST_F(BlenderWorkTest, work_279) { - const aiScene *pTest = im->ReadFile(ASSIMP_TEST_MODELS_DIR "/BLEND/test_279.blend", aiProcess_ValidateDataStructure); - ASSERT_TRUE(pTest != NULL); - - // material has 2 diffuse textures - ASSERT_TRUE(pTest->HasMaterials()); - ASSERT_TRUE(pTest->HasMeshes()); - ASSERT_TRUE(pTest->mMeshes[0]->mNumVertices > 0); - ASSERT_EQ(44u, pTest->mMeshes[0]->mNumFaces); - EXPECT_EQ(1u, pTest->mNumMaterials); -} diff --git a/libs/assimp/test/unit/utCSMImportExport.cpp b/libs/assimp/test/unit/utCSMImportExport.cpp deleted file mode 100644 index 13bfd52..0000000 --- a/libs/assimp/test/unit/utCSMImportExport.cpp +++ /dev/null @@ -1,60 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "AbstractImportExportBase.h" -#include "UnitTestPCH.h" - -#include <assimp/postprocess.h> -#include <assimp/Importer.hpp> - -using namespace Assimp; - -class utCSMImportExport : public AbstractImportExportBase { -public: - virtual bool importerTest() { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/CSM/ThomasFechten.csm", aiProcess_ValidateDataStructure); - return nullptr != scene; - } -}; - -TEST_F(utCSMImportExport, importBlenFromFileTest) { - EXPECT_TRUE(importerTest()); -} diff --git a/libs/assimp/test/unit/utColladaExport.cpp b/libs/assimp/test/unit/utColladaExport.cpp deleted file mode 100644 index bb87071..0000000 --- a/libs/assimp/test/unit/utColladaExport.cpp +++ /dev/null @@ -1,225 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "UnitTestPCH.h" - -#include <assimp/cexport.h> -#include <assimp/commonMetaData.h> -#include <assimp/postprocess.h> -#include <assimp/scene.h> -#include <assimp/Exporter.hpp> -#include <assimp/Importer.hpp> - -#include <array> - -#ifndef ASSIMP_BUILD_NO_EXPORT - -class utColladaExport : public ::testing::Test { -public: - void SetUp() override { - ex = new Assimp::Exporter(); - im = new Assimp::Importer(); - } - - void TearDown() override { - delete ex; - ex = nullptr; - delete im; - im = nullptr; - } - -protected: - Assimp::Exporter *ex; - Assimp::Importer *im; -}; - -TEST_F(utColladaExport, testExportCamera) { - const char *file = "cameraExp.dae"; - - const aiScene *pTest = im->ReadFile(ASSIMP_TEST_MODELS_DIR "/Collada/cameras.dae", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, pTest); - ASSERT_TRUE(pTest->HasCameras()); - - EXPECT_EQ(AI_SUCCESS, ex->Export(pTest, "collada", file)); - const unsigned int origNumCams(pTest->mNumCameras); - //std::vector<float> origFOV; - std::unique_ptr<float[]> origFOV(new float[origNumCams]); - std::unique_ptr<float[]> orifClipPlaneNear(new float[origNumCams]); - std::unique_ptr<float[]> orifClipPlaneFar(new float[origNumCams]); - std::unique_ptr<aiString[]> names(new aiString[origNumCams]); - std::unique_ptr<aiVector3D[]> pos(new aiVector3D[origNumCams]); - for (size_t i = 0; i < origNumCams; i++) { - const aiCamera *orig = pTest->mCameras[i]; - ASSERT_NE(nullptr, orig); - - origFOV[i] = orig->mHorizontalFOV; - orifClipPlaneNear[i] = orig->mClipPlaneNear; - orifClipPlaneFar[i] = orig->mClipPlaneFar; - names[i] = orig->mName; - pos[i] = orig->mPosition; - } - const aiScene *imported = im->ReadFile(file, aiProcess_ValidateDataStructure); - - ASSERT_NE(nullptr, imported); - - EXPECT_TRUE(imported->HasCameras()); - EXPECT_EQ(origNumCams, imported->mNumCameras); - - for (size_t i = 0; i < imported->mNumCameras; i++) { - const aiCamera *read = imported->mCameras[i]; - - EXPECT_TRUE(names[i] == read->mName); - EXPECT_NEAR(origFOV[i], read->mHorizontalFOV, 0.0001f); - EXPECT_FLOAT_EQ(orifClipPlaneNear[i], read->mClipPlaneNear); - EXPECT_FLOAT_EQ(orifClipPlaneFar[i], read->mClipPlaneFar); - - EXPECT_FLOAT_EQ(pos[i].x, read->mPosition.x); - EXPECT_FLOAT_EQ(pos[i].y, read->mPosition.y); - EXPECT_FLOAT_EQ(pos[i].z, read->mPosition.z); - } -} - -// ------------------------------------------------------------------------------------------------ -TEST_F(utColladaExport, testExportLight) { - const char *file = "lightsExp.dae"; - - const aiScene *pTest = im->ReadFile(ASSIMP_TEST_MODELS_DIR "/Collada/lights.dae", aiProcess_ValidateDataStructure); - ASSERT_NE(pTest, nullptr); - ASSERT_TRUE(pTest->HasLights()); - - const unsigned int origNumLights = pTest->mNumLights; - // There are FIVE!!! LIGHTS!!! - EXPECT_EQ(5u, origNumLights) << "lights.dae should contain five lights"; - - std::vector<aiLight> origLights(5); - for (size_t i = 0; i < origNumLights; i++) { - origLights[i] = *(pTest->mLights[i]); - } - - // Check loaded first light properly - EXPECT_STREQ("Lamp", origLights[0].mName.C_Str()); - EXPECT_EQ(aiLightSource_POINT, origLights[0].mType); - EXPECT_FLOAT_EQ(1.0f, origLights[0].mAttenuationConstant); - EXPECT_FLOAT_EQ(0.0f, origLights[0].mAttenuationLinear); - EXPECT_FLOAT_EQ(0.00111109f, origLights[0].mAttenuationQuadratic); - - // Common metadata - // Confirm was loaded by the Collada importer - aiString origImporter; - EXPECT_TRUE(pTest->mMetaData->Get(AI_METADATA_SOURCE_FORMAT, origImporter)) << "No importer format metadata"; - EXPECT_STREQ("Collada Importer", origImporter.C_Str()); - - aiString origGenerator; - EXPECT_TRUE(pTest->mMetaData->Get(AI_METADATA_SOURCE_GENERATOR, origGenerator)) << "No generator metadata"; - EXPECT_EQ(strncmp(origGenerator.C_Str(), "Blender", 7), 0) << "AI_METADATA_SOURCE_GENERATOR was: " << origGenerator.C_Str(); - - aiString origCopyright; - EXPECT_TRUE(pTest->mMetaData->Get(AI_METADATA_SOURCE_COPYRIGHT, origCopyright)) << "No copyright metadata"; - EXPECT_STREQ("BSD", origCopyright.C_Str()); - - aiString origCreated; - EXPECT_TRUE(pTest->mMetaData->Get("Created", origCreated)) << "No created metadata"; - EXPECT_STREQ("2015-05-17T21:55:44", origCreated.C_Str()); - - aiString origModified; - EXPECT_TRUE(pTest->mMetaData->Get("Modified", origModified)) << "No modified metadata"; - EXPECT_STREQ("2015-05-17T21:55:44", origModified.C_Str()); - - EXPECT_EQ(AI_SUCCESS, ex->Export(pTest, "collada", file)); - - // Drop the pointer as about to become invalid - pTest = nullptr; - - const aiScene *imported = im->ReadFile(file, aiProcess_ValidateDataStructure); - - ASSERT_TRUE(imported != NULL); - - // Check common metadata survived roundtrip - aiString readImporter; - EXPECT_TRUE(imported->mMetaData->Get(AI_METADATA_SOURCE_FORMAT, readImporter)) << "No importer format metadata after export"; - EXPECT_STREQ(origImporter.C_Str(), readImporter.C_Str()) << "Assimp Importer Format changed"; - - aiString readGenerator; - EXPECT_TRUE(imported->mMetaData->Get(AI_METADATA_SOURCE_GENERATOR, readGenerator)) << "No generator metadata"; - EXPECT_STREQ(origGenerator.C_Str(), readGenerator.C_Str()) << "Generator changed"; - - aiString readCopyright; - EXPECT_TRUE(imported->mMetaData->Get(AI_METADATA_SOURCE_COPYRIGHT, readCopyright)) << "No copyright metadata"; - EXPECT_STREQ(origCopyright.C_Str(), readCopyright.C_Str()) << "Copyright changed"; - - aiString readCreated; - EXPECT_TRUE(imported->mMetaData->Get("Created", readCreated)) << "No created metadata"; - EXPECT_STREQ(origCreated.C_Str(), readCreated.C_Str()) << "Created date changed"; - - aiString readModified; - EXPECT_TRUE(imported->mMetaData->Get("Modified", readModified)) << "No modified metadata"; - EXPECT_STRNE(origModified.C_Str(), readModified.C_Str()) << "Modified date did not change"; - EXPECT_GT(readModified.length, ai_uint32(18)) << "Modified date too short"; - - // Lights - EXPECT_TRUE(imported->HasLights()); - EXPECT_EQ(origNumLights, imported->mNumLights); - for (size_t i = 0; i < origNumLights; i++) { - const aiLight *orig = &origLights[i]; - const aiLight *read = imported->mLights[i]; - EXPECT_EQ(0, strcmp(orig->mName.C_Str(), read->mName.C_Str())); - EXPECT_EQ(orig->mType, read->mType); - EXPECT_FLOAT_EQ(orig->mAttenuationConstant, read->mAttenuationConstant); - EXPECT_FLOAT_EQ(orig->mAttenuationLinear, read->mAttenuationLinear); - EXPECT_NEAR(orig->mAttenuationQuadratic, read->mAttenuationQuadratic, 0.001f); - - EXPECT_FLOAT_EQ(orig->mColorAmbient.r, read->mColorAmbient.r); - EXPECT_FLOAT_EQ(orig->mColorAmbient.g, read->mColorAmbient.g); - EXPECT_FLOAT_EQ(orig->mColorAmbient.b, read->mColorAmbient.b); - - EXPECT_FLOAT_EQ(orig->mColorDiffuse.r, read->mColorDiffuse.r); - EXPECT_FLOAT_EQ(orig->mColorDiffuse.g, read->mColorDiffuse.g); - EXPECT_FLOAT_EQ(orig->mColorDiffuse.b, read->mColorDiffuse.b); - - EXPECT_FLOAT_EQ(orig->mColorSpecular.r, read->mColorSpecular.r); - EXPECT_FLOAT_EQ(orig->mColorSpecular.g, read->mColorSpecular.g); - EXPECT_FLOAT_EQ(orig->mColorSpecular.b, read->mColorSpecular.b); - - EXPECT_NEAR(orig->mAngleInnerCone, read->mAngleInnerCone, 0.001); - EXPECT_NEAR(orig->mAngleOuterCone, read->mAngleOuterCone, 0.001); - } -} - -#endif // ASSIMP_BUILD_NO_EXPORT diff --git a/libs/assimp/test/unit/utColladaImportExport.cpp b/libs/assimp/test/unit/utColladaImportExport.cpp deleted file mode 100644 index b58fa03..0000000 --- a/libs/assimp/test/unit/utColladaImportExport.cpp +++ /dev/null @@ -1,410 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "AbstractImportExportBase.h" -#include "UnitTestPCH.h" - -#include <assimp/ColladaMetaData.h> -#include <assimp/SceneCombiner.h> -#include <assimp/commonMetaData.h> -#include <assimp/postprocess.h> -#include <assimp/scene.h> -#include <assimp/Exporter.hpp> -#include <assimp/Importer.hpp> - -using namespace Assimp; - -class utColladaImportExport : public AbstractImportExportBase { -public: - // Clones the scene in an exception-safe way - struct SceneCloner { - SceneCloner(const aiScene *scene) { - sceneCopy = nullptr; - SceneCombiner::CopyScene(&sceneCopy, scene); - } - - ~SceneCloner() { - delete sceneCopy; - sceneCopy = nullptr; - } - aiScene *sceneCopy; - }; - - virtual bool importerTest() final { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/Collada/duck.dae", aiProcess_ValidateDataStructure); - if (scene == nullptr) - return false; - - // Expected number of items - EXPECT_EQ(scene->mNumMeshes, 1u); - EXPECT_EQ(scene->mNumMaterials, 1u); - EXPECT_EQ(scene->mNumAnimations, 0u); - EXPECT_EQ(scene->mNumTextures, 0u); - EXPECT_EQ(scene->mNumLights, 1u); - EXPECT_EQ(scene->mNumCameras, 1u); - - // Expected common metadata - aiString value; - EXPECT_TRUE(scene->mMetaData->Get(AI_METADATA_SOURCE_FORMAT, value)) << "No importer format metadata"; - EXPECT_STREQ("Collada Importer", value.C_Str()); - - EXPECT_TRUE(scene->mMetaData->Get(AI_METADATA_SOURCE_FORMAT_VERSION, value)) << "No format version metadata"; - EXPECT_STREQ("1.4.1", value.C_Str()); - - EXPECT_TRUE(scene->mMetaData->Get(AI_METADATA_SOURCE_GENERATOR, value)) << "No generator metadata"; - EXPECT_EQ(strncmp(value.C_Str(), "Maya 8.0", 8), 0) << "AI_METADATA_SOURCE_GENERATOR was: " << value.C_Str(); - - EXPECT_TRUE(scene->mMetaData->Get(AI_METADATA_SOURCE_COPYRIGHT, value)) << "No copyright metadata"; - EXPECT_EQ(strncmp(value.C_Str(), "Copyright 2006", 14), 0) << "AI_METADATA_SOURCE_COPYRIGHT was: " << value.C_Str(); - - return true; - } - - typedef std::pair<std::string, std::string> IdNameString; - typedef std::map<std::string, std::string> IdNameMap; - - template <typename T> - static inline IdNameString GetColladaIdName(const T *item, size_t index) { - std::ostringstream stream; - stream << typeid(T).name() << "@" << index; - if (item->mMetaData) { - aiString aiStr; - if (item->mMetaData->Get(AI_METADATA_COLLADA_ID, aiStr)) - return std::make_pair(std::string(aiStr.C_Str()), stream.str()); - } - return std::make_pair(std::string(), stream.str()); - } - - template <typename T> - static inline IdNameString GetItemIdName(const T *item, size_t index) { - std::ostringstream stream; - stream << typeid(T).name() << "@" << index; - return std::make_pair(std::string(item->mName.C_Str()), stream.str()); - } - - // Specialisations - static inline IdNameString GetItemIdName(aiMaterial *item, size_t index) { - std::ostringstream stream; - stream << typeid(aiMaterial).name() << "@" << index; - return std::make_pair(std::string(item->GetName().C_Str()), stream.str()); - } - - static inline IdNameString GetItemIdName(aiTexture *item, size_t index) { - std::ostringstream stream; - stream << typeid(aiTexture).name() << "@" << index; - return std::make_pair(std::string(item->mFilename.C_Str()), stream.str()); - } - - static inline void ReportDuplicate(IdNameMap &itemIdMap, const IdNameString &namePair, const char *typeNameStr) { - const auto result = itemIdMap.insert(namePair); - EXPECT_TRUE(result.second) << "Duplicate '" << typeNameStr << "' name: '" << namePair.first << "'. " << namePair.second << " == " << result.first->second; - } - - template <typename T> - static inline void CheckUniqueIds(IdNameMap &itemIdMap, unsigned int itemCount, T **itemArray) { - for (size_t idx = 0; idx < itemCount; ++idx) { - IdNameString namePair = GetItemIdName(itemArray[idx], idx); - ReportDuplicate(itemIdMap, namePair, typeid(T).name()); - } - } - - static inline void CheckUniqueIds(IdNameMap &itemIdMap, const aiNode *parent, size_t index) { - IdNameString namePair = GetItemIdName(parent, index); - ReportDuplicate(itemIdMap, namePair, typeid(aiNode).name()); - - for (size_t idx = 0; idx < parent->mNumChildren; ++idx) { - CheckUniqueIds(itemIdMap, parent->mChildren[idx], idx); - } - } - - static inline void CheckNodeIdNames(IdNameMap &nodeIdMap, IdNameMap &nodeNameMap, const aiNode *parent, size_t index) { - IdNameString namePair = GetItemIdName(parent, index); - IdNameString idPair = GetColladaIdName(parent, index); - ReportDuplicate(nodeIdMap, idPair, typeid(aiNode).name()); - - for (size_t idx = 0; idx < parent->mNumChildren; ++idx) { - CheckNodeIdNames(nodeIdMap, nodeNameMap, parent->mChildren[idx], idx); - } - } - - static inline void SetAllNodeNames(const aiString &newName, aiNode *node) { - node->mName = newName; - for (size_t idx = 0; idx < node->mNumChildren; ++idx) { - SetAllNodeNames(newName, node->mChildren[idx]); - } - } - - void ImportAndCheckIds(const char *file, const aiScene *origScene) { - // Import the Collada using the 'default' where aiNode and aiMesh names are the Collada ids - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(file, aiProcess_ValidateDataStructure); - ASSERT_TRUE(scene != nullptr) << "Fatal: could not re-import " << file; - EXPECT_EQ(origScene->mNumMeshes, scene->mNumMeshes) << "in " << file; - - // Check the ids are unique - IdNameMap itemIdMap; - // Recurse the Nodes - CheckUniqueIds(itemIdMap, scene->mRootNode, 0); - // Check the lists - CheckUniqueIds(itemIdMap, scene->mNumMeshes, scene->mMeshes); - // The remaining will come in using the name, which may not be unique - // Check we have the right number - EXPECT_EQ(origScene->mNumAnimations, scene->mNumAnimations); - EXPECT_EQ(origScene->mNumMaterials, scene->mNumMaterials); - EXPECT_EQ(origScene->mNumTextures, scene->mNumTextures); - EXPECT_EQ(origScene->mNumLights, scene->mNumLights); - EXPECT_EQ(origScene->mNumCameras, scene->mNumCameras); - } - - void ImportAsNames(const char *file, const aiScene *origScene) { - // Import the Collada but using the user-visible names for aiNode and aiMesh - // Note that this mode may not support bones or animations - Assimp::Importer importer; - importer.SetPropertyInteger(AI_CONFIG_IMPORT_COLLADA_USE_COLLADA_NAMES, 1); - - const aiScene *scene = importer.ReadFile(file, aiProcess_ValidateDataStructure); - ASSERT_TRUE(scene != nullptr) << "Fatal: could not re-import " << file; - EXPECT_EQ(origScene->mNumMeshes, scene->mNumMeshes) << "in " << file; - - // Check the node ids are unique but the node names are not - IdNameMap nodeIdMap; - IdNameMap nodeNameMap; - // Recurse the Nodes - CheckNodeIdNames(nodeIdMap, nodeNameMap, scene->mRootNode, 0); - - // nodeNameMap should have fewer than nodeIdMap - EXPECT_LT(nodeNameMap.size(), nodeIdMap.size()) << "Some nodes should have the same names"; - // Check the counts haven't changed - EXPECT_EQ(origScene->mNumAnimations, scene->mNumAnimations); - EXPECT_EQ(origScene->mNumMaterials, scene->mNumMaterials); - EXPECT_EQ(origScene->mNumTextures, scene->mNumTextures); - EXPECT_EQ(origScene->mNumLights, scene->mNumLights); - EXPECT_EQ(origScene->mNumCameras, scene->mNumCameras); - } -}; - -TEST_F(utColladaImportExport, importDaeFromFileTest) { - EXPECT_TRUE(importerTest()); -} - -unsigned int GetMeshUseCount(const aiNode *rootNode) { - unsigned int result = rootNode->mNumMeshes; - for (unsigned int i = 0; i < rootNode->mNumChildren; ++i) { - result += GetMeshUseCount(rootNode->mChildren[i]); - } - return result; -} - -#ifndef ASSIMP_BUILD_NO_EXPORT - -TEST_F(utColladaImportExport, exportRootNodeMeshTest) { - Assimp::Importer importer; - Assimp::Exporter exporter; - const char *outFile = "exportRootNodeMeshTest_out.dae"; - - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/Collada/duck.dae", aiProcess_ValidateDataStructure); - ASSERT_TRUE(scene != nullptr) << "Fatal: could not import duck.dae!"; - - ASSERT_EQ(0u, scene->mRootNode->mNumMeshes) << "Collada import should not give the root node a mesh"; - - { - SceneCloner clone(scene); - ASSERT_TRUE(clone.sceneCopy != nullptr) << "Fatal: could not copy scene!"; - // Do this by moving the meshes from the first child that has some - aiNode *rootNode = clone.sceneCopy->mRootNode; - ASSERT_TRUE(rootNode->mNumChildren > 0) << "Fatal: root has no children"; - aiNode *meshNode = rootNode->mChildren[0]; - ASSERT_EQ(1u, meshNode->mNumMeshes) << "Fatal: First child node has no duck mesh"; - - // Move the meshes to the parent - rootNode->mNumMeshes = meshNode->mNumMeshes; - rootNode->mMeshes = new unsigned int[rootNode->mNumMeshes]; - for (unsigned int i = 0; i < rootNode->mNumMeshes; ++i) { - rootNode->mMeshes[i] = meshNode->mMeshes[i]; - } - - // Remove the meshes from the original node - meshNode->mNumMeshes = 0; - delete[] meshNode->mMeshes; - meshNode->mMeshes = nullptr; - - ASSERT_EQ(AI_SUCCESS, exporter.Export(clone.sceneCopy, "collada", outFile)) << "Fatal: Could not export file"; - } - - // Reimport and look for meshes - scene = importer.ReadFile(outFile, aiProcess_ValidateDataStructure); - ASSERT_TRUE(scene != nullptr) << "Fatal: could not reimport!"; - - // A Collada root node is not allowed to have a mesh - ASSERT_EQ(0u, scene->mRootNode->mNumMeshes) << "Collada reimport should not give the root node a mesh"; - - // Walk nodes and counts used meshes - // Should be exactly one - EXPECT_EQ(1u, GetMeshUseCount(scene->mRootNode)) << "Nodes had unexpected number of meshes in use"; -} - -TEST_F(utColladaImportExport, exporterUniqueIdsTest) { - Assimp::Importer importer; - Assimp::Exporter exporter; - const char *outFileEmpty = "exportMeshIdTest_empty_out.dae"; - const char *outFileNamed = "exportMeshIdTest_named_out.dae"; - - // Load a sample file containing multiple meshes - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/Collada/teapots.DAE", aiProcess_ValidateDataStructure); - - ASSERT_TRUE(scene != nullptr) << "Fatal: could not import teapots.DAE!"; - ASSERT_EQ(3u, scene->mNumMeshes) << "Fatal: teapots.DAE initial load failed"; - - // Clear all the names - for (size_t idx = 0; idx < scene->mNumMeshes; ++idx) { - scene->mMeshes[idx]->mName.Clear(); - } - for (size_t idx = 0; idx < scene->mNumMaterials; ++idx) { - scene->mMaterials[idx]->RemoveProperty(AI_MATKEY_NAME); - } - for (size_t idx = 0; idx < scene->mNumAnimations; ++idx) { - scene->mAnimations[idx]->mName.Clear(); - } - // Can't clear texture names - for (size_t idx = 0; idx < scene->mNumLights; ++idx) { - scene->mLights[idx]->mName.Clear(); - } - for (size_t idx = 0; idx < scene->mNumCameras; ++idx) { - scene->mCameras[idx]->mName.Clear(); - } - - SetAllNodeNames(aiString(), scene->mRootNode); - - ASSERT_EQ(AI_SUCCESS, exporter.Export(scene, "collada", outFileEmpty)) << "Fatal: Could not export un-named meshes file"; - - ImportAndCheckIds(outFileEmpty, scene); - - // Force everything to have the same non-empty name - aiString testName("test_name"); - for (size_t idx = 0; idx < scene->mNumMeshes; ++idx) { - scene->mMeshes[idx]->mName = testName; - } - for (size_t idx = 0; idx < scene->mNumMaterials; ++idx) { - scene->mMaterials[idx]->AddProperty(&testName, AI_MATKEY_NAME); - } - for (size_t idx = 0; idx < scene->mNumAnimations; ++idx) { - scene->mAnimations[idx]->mName = testName; - } - // Can't clear texture names - for (size_t idx = 0; idx < scene->mNumLights; ++idx) { - scene->mLights[idx]->mName = testName; - } - for (size_t idx = 0; idx < scene->mNumCameras; ++idx) { - scene->mCameras[idx]->mName = testName; - } - - SetAllNodeNames(testName, scene->mRootNode); - - ASSERT_EQ(AI_SUCCESS, exporter.Export(scene, "collada", outFileNamed)) << "Fatal: Could not export named meshes file"; - - ImportAndCheckIds(outFileNamed, scene); - ImportAsNames(outFileNamed, scene); -} - -#endif - -class utColladaZaeImportExport : public AbstractImportExportBase { -public: - virtual bool importerTest() final { - { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/Collada/duck.zae", aiProcess_ValidateDataStructure); - if (scene == nullptr) - return false; - - // Expected number of items - EXPECT_EQ(scene->mNumMeshes, 1u); - EXPECT_EQ(scene->mNumMaterials, 1u); - EXPECT_EQ(scene->mNumAnimations, 0u); - //EXPECT_EQ(scene->mNumTextures, 1u); - EXPECT_EQ(scene->mNumLights, 1u); - EXPECT_EQ(scene->mNumCameras, 1u); - } - - { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/Collada/duck_nomanifest.zae", aiProcess_ValidateDataStructure); - if (scene == nullptr) - return false; - - // Expected number of items - EXPECT_EQ(scene->mNumMeshes, 1u); - EXPECT_EQ(scene->mNumMaterials, 1u); - EXPECT_EQ(scene->mNumAnimations, 0u); - //EXPECT_EQ(scene->mNumTextures, 1u); - EXPECT_EQ(scene->mNumLights, 1u); - EXPECT_EQ(scene->mNumCameras, 1u); - } - - return true; - } -}; - -TEST_F(utColladaZaeImportExport, importBlenFromFileTest) { - EXPECT_TRUE(importerTest()); -} - -TEST_F(utColladaZaeImportExport, importMakeHumanTest) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/Collada/human.zae", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); - - // Expected number of items - EXPECT_EQ(scene->mNumMeshes, 2u); - EXPECT_EQ(scene->mNumMaterials, 2u); - EXPECT_EQ(scene->mNumAnimations, 0u); - EXPECT_EQ(scene->mNumTextures, 2u); - EXPECT_EQ(scene->mNumLights, 0u); - EXPECT_EQ(scene->mNumCameras, 0u); - - // Expected common metadata - aiString value; - EXPECT_TRUE(scene->mMetaData->Get(AI_METADATA_SOURCE_FORMAT, value)) << "No importer format metadata"; - EXPECT_STREQ("Collada Importer", value.C_Str()); - - EXPECT_TRUE(scene->mMetaData->Get(AI_METADATA_SOURCE_FORMAT_VERSION, value)) << "No format version metadata"; - EXPECT_STREQ("1.4.1", value.C_Str()); -} diff --git a/libs/assimp/test/unit/utD3MFImportExport.cpp b/libs/assimp/test/unit/utD3MFImportExport.cpp deleted file mode 100644 index ed290e8..0000000 --- a/libs/assimp/test/unit/utD3MFImportExport.cpp +++ /dev/null @@ -1,99 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "AbstractImportExportBase.h" -#include "UnitTestPCH.h" - -#include <assimp/postprocess.h> -#include <assimp/scene.h> -#include <assimp/Exporter.hpp> -#include <assimp/Importer.hpp> - -#include "AssetLib/3MF/D3MFExporter.h" - -class utD3MFImporterExporter : public AbstractImportExportBase { -public: - bool importerTest() override { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/3MF/box.3mf", aiProcess_ValidateDataStructure); - if (nullptr == scene) { - return false; - } - - EXPECT_EQ(1u, scene->mNumMeshes); - aiMesh *mesh = scene->mMeshes[0]; - EXPECT_NE(nullptr, mesh); - EXPECT_EQ(12u, mesh->mNumFaces); - EXPECT_EQ(8u, mesh->mNumVertices); - - return (nullptr != scene); - } - -#ifndef ASSIMP_BUILD_NO_EXPORT - - bool exporterTest() override { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/3MF/box.3mf", 0); - - Assimp::Exporter exporter; - return AI_SUCCESS == exporter.Export(scene, "3mf", "test.3mf"); - } -#endif // ASSIMP_BUILD_NO_EXPORT -}; - -TEST_F(utD3MFImporterExporter, import3MFFromFileTest) { - EXPECT_TRUE(importerTest()); -} - -#ifndef ASSIMP_BUILD_NO_EXPORT - -TEST_F(utD3MFImporterExporter, export3MFtoMemTest) { - EXPECT_TRUE(exporterTest()); -} - -TEST_F(utD3MFImporterExporter, roundtrip3MFtoMemTest) { - EXPECT_TRUE(exporterTest()); - - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile("test.3mf", 0); - EXPECT_NE(nullptr, scene); -} - -#endif // ASSIMP_BUILD_NO_EXPORT diff --git a/libs/assimp/test/unit/utDXFImporterExporter.cpp b/libs/assimp/test/unit/utDXFImporterExporter.cpp deleted file mode 100644 index 9193946..0000000 --- a/libs/assimp/test/unit/utDXFImporterExporter.cpp +++ /dev/null @@ -1,73 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ - -#include "AbstractImportExportBase.h" -#include "UnitTestPCH.h" - -#include <assimp/postprocess.h> -#include <assimp/Importer.hpp> - -using namespace Assimp; - -class utDXFImporterExporter : public AbstractImportExportBase { -public: - bool importerTest() override { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/DXF/PinkEggFromLW.dxf", aiProcess_ValidateDataStructure); - return nullptr != scene; - } -}; - -TEST_F(utDXFImporterExporter, importDXFFromFileTest) { - EXPECT_TRUE(importerTest()); -} - -TEST_F(utDXFImporterExporter, importerWithoutExtensionTest) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/DXF/lineTest", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); -} - -TEST_F(utDXFImporterExporter, issue2229) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/DXF/issue_2229.dxf", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); -} diff --git a/libs/assimp/test/unit/utDefaultIOStream.cpp b/libs/assimp/test/unit/utDefaultIOStream.cpp deleted file mode 100644 index 803c6f6..0000000 --- a/libs/assimp/test/unit/utDefaultIOStream.cpp +++ /dev/null @@ -1,83 +0,0 @@ -/*------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------*/ -#include <gtest/gtest.h> -#include "TestIOStream.h" -#include "UnitTestFileGenerator.h" -#include <cstdio> -#include <cstdlib> -#include <string> - -using namespace ::Assimp; - -class utDefaultIOStream : public ::testing::Test { - // empty -}; - -const char data[]{"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Qui\ -sque luctus sem diam, ut eleifend arcu auctor eu. Vestibulum id est vel nulla l\ -obortis malesuada ut sed turpis. Nulla a volutpat tortor. Nunc vestibulum portt\ -itor sapien ornare sagittis volutpat."}; - -TEST_F( utDefaultIOStream, FileSizeTest ) { - const auto dataSize = sizeof(data); - const auto dataCount = dataSize / sizeof(*data); - - char fpath[] = { TMP_PATH"rndfp.XXXXXX" }; - auto* fs = MakeTmpFile(fpath); - ASSERT_NE(nullptr, fs); - { - auto written = std::fwrite(data, sizeof(*data), dataCount, fs ); - EXPECT_NE( 0U, written ); - - auto vflush = std::fflush( fs ); - ASSERT_EQ(vflush, 0); - - std::fclose(fs); - fs = std::fopen(fpath, "r"); - - ASSERT_NE(nullptr, fs); - - TestDefaultIOStream myStream( fs, fpath); - size_t size = myStream.FileSize(); - EXPECT_EQ( size, dataSize); - } - remove(fpath); -} diff --git a/libs/assimp/test/unit/utExport.cpp b/libs/assimp/test/unit/utExport.cpp deleted file mode 100644 index b3ab5e3..0000000 --- a/libs/assimp/test/unit/utExport.cpp +++ /dev/null @@ -1,84 +0,0 @@ -#include "UnitTestPCH.h" - -#include <assimp/cexport.h> -#include <assimp/Exporter.hpp> - - -#ifndef ASSIMP_BUILD_NO_EXPORT - -class ExporterTest : public ::testing::Test { -public: - - virtual void SetUp() - { - ex = new Assimp::Exporter(); - im = new Assimp::Importer(); - - pTest = im->ReadFile(ASSIMP_TEST_MODELS_DIR "/X/test.x", aiProcess_ValidateDataStructure); - } - - virtual void TearDown() - { - delete ex; - delete im; - } - -protected: - - const aiScene* pTest; - Assimp::Exporter* ex; - Assimp::Importer* im; -}; - -// ------------------------------------------------------------------------------------------------ -TEST_F(ExporterTest, testExportToFile) -{ - const char* file = "unittest_output.dae"; - EXPECT_EQ(AI_SUCCESS,ex->Export(pTest,"collada",file)); - - // check if we can read it again - EXPECT_TRUE(im->ReadFile(file, aiProcess_ValidateDataStructure)); -} - -// ------------------------------------------------------------------------------------------------ -TEST_F(ExporterTest, testExportToBlob) -{ - const aiExportDataBlob* blob = ex->ExportToBlob(pTest,"collada"); - ASSERT_TRUE(blob); - EXPECT_TRUE(blob->data); - EXPECT_GT(blob->size, 0U); - EXPECT_EQ(0U, blob->name.length); - - // XXX test chained blobs (i.e. obj file with accompanying mtl script) - - // check if we can read it again - EXPECT_TRUE(im->ReadFileFromMemory(blob->data,blob->size,0,"dae")); -} - -// ------------------------------------------------------------------------------------------------ -TEST_F(ExporterTest, testCppExportInterface) -{ - EXPECT_TRUE(ex->GetExportFormatCount() > 0); - for(size_t i = 0; i < ex->GetExportFormatCount(); ++i) { - const aiExportFormatDesc* const desc = ex->GetExportFormatDescription(i); - ASSERT_TRUE(desc); - EXPECT_TRUE(desc->description && strlen(desc->description)); - EXPECT_TRUE(desc->fileExtension && strlen(desc->fileExtension)); - EXPECT_TRUE(desc->id && strlen(desc->id)); - } - - EXPECT_TRUE(ex->IsDefaultIOHandler()); -} - -// ------------------------------------------------------------------------------------------------ -TEST_F(ExporterTest, testCExportInterface) -{ - EXPECT_TRUE(aiGetExportFormatCount() > 0); - for(size_t i = 0; i < aiGetExportFormatCount(); ++i) { - const aiExportFormatDesc* const desc = aiGetExportFormatDescription(i); - EXPECT_TRUE(desc); - // rest has already been validated by testCppExportInterface - } -} - -#endif diff --git a/libs/assimp/test/unit/utFBXImporterExporter.cpp b/libs/assimp/test/unit/utFBXImporterExporter.cpp deleted file mode 100644 index 9b8f2fa..0000000 --- a/libs/assimp/test/unit/utFBXImporterExporter.cpp +++ /dev/null @@ -1,425 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ - -#include "AbstractImportExportBase.h" -#include "UnitTestPCH.h" - -#include <assimp/commonMetaData.h> -#include <assimp/material.h> -#include <assimp/postprocess.h> -#include <assimp/scene.h> -#include <assimp/types.h> -#include <assimp/Importer.hpp> - -using namespace Assimp; - -class utFBXImporterExporter : public AbstractImportExportBase { -public: - bool importerTest() override { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/FBX/spider.fbx", aiProcess_ValidateDataStructure); - return nullptr != scene; - } -}; - -TEST_F(utFBXImporterExporter, importXFromFileTest) { - EXPECT_TRUE(importerTest()); -} - -TEST_F(utFBXImporterExporter, importBareBoxWithoutColorsAndTextureCoords) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/FBX/box.fbx", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); - EXPECT_EQ(scene->mNumMeshes, 1u); - aiMesh *mesh = scene->mMeshes[0]; - EXPECT_EQ(mesh->mNumFaces, 12u); - EXPECT_EQ(mesh->mNumVertices, 36u); -} - -TEST_F(utFBXImporterExporter, importCubesWithNoNames) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/FBX/cubes_nonames.fbx", aiProcess_ValidateDataStructure); - ASSERT_TRUE(scene); - - ASSERT_TRUE(scene->mRootNode); - const auto root = scene->mRootNode; - ASSERT_STREQ(root->mName.C_Str(), "RootNode"); - ASSERT_TRUE(root->mChildren); - ASSERT_EQ(root->mNumChildren, 2u); -} - -TEST_F(utFBXImporterExporter, importCubesWithUnicodeDuplicatedNames) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/FBX/cubes_with_names.fbx", aiProcess_ValidateDataStructure); - ASSERT_TRUE(scene); - - ASSERT_TRUE(scene->mRootNode); - const auto root = scene->mRootNode; - ASSERT_STREQ(root->mName.C_Str(), "RootNode"); - ASSERT_TRUE(root->mChildren); - ASSERT_EQ(root->mNumChildren, 2u); - - const auto child0 = root->mChildren[0]; - ASSERT_TRUE(child0); - ASSERT_STREQ(child0->mName.C_Str(), "Cube2"); - ASSERT_TRUE(child0->mChildren); - ASSERT_EQ(child0->mNumChildren, 1u); - - const auto child00 = child0->mChildren[0]; - ASSERT_TRUE(child00); - ASSERT_STREQ(child00->mName.C_Str(), "\xd0\x9a\xd1\x83\xd0\xb1\x31"); - - const auto child1 = root->mChildren[1]; - ASSERT_TRUE(child1); - ASSERT_STREQ(child1->mName.C_Str(), "Cube3"); - ASSERT_TRUE(child1->mChildren); - ASSERT_EQ(child1->mNumChildren, 1u); - - const auto child10 = child1->mChildren[0]; - ASSERT_TRUE(child10); - ASSERT_STREQ(child10->mName.C_Str(), "\xd0\x9a\xd1\x83\xd0\xb1\x31"); -} - -TEST_F(utFBXImporterExporter, importCubesComplexTransform) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/FBX/cubes_with_mirroring_and_pivot.fbx", aiProcess_ValidateDataStructure); - ASSERT_TRUE(scene); - - ASSERT_TRUE(scene->mRootNode); - const auto root = scene->mRootNode; - ASSERT_STREQ(root->mName.C_Str(), "RootNode"); - ASSERT_TRUE(root->mChildren); - ASSERT_EQ(root->mNumChildren, 2u); - - const auto child0 = root->mChildren[0]; - ASSERT_TRUE(child0); - ASSERT_STREQ(child0->mName.C_Str(), "Cube2"); - ASSERT_TRUE(child0->mChildren); - ASSERT_EQ(child0->mNumChildren, 1u); - - const auto child00 = child0->mChildren[0]; - ASSERT_TRUE(child00); - ASSERT_STREQ(child00->mName.C_Str(), "Cube1"); - - const auto child1 = root->mChildren[1]; - ASSERT_TRUE(child1); - ASSERT_STREQ(child1->mName.C_Str(), "Cube3"); - - auto parent = child1; - const size_t chain_length = 8u; - const char *chainStr[chain_length] = { - "Cube1_$AssimpFbx$_Translation", - "Cube1_$AssimpFbx$_RotationPivot", - "Cube1_$AssimpFbx$_RotationPivotInverse", - "Cube1_$AssimpFbx$_ScalingOffset", - "Cube1_$AssimpFbx$_ScalingPivot", - "Cube1_$AssimpFbx$_Scaling", - "Cube1_$AssimpFbx$_ScalingPivotInverse", - "Cube1" - }; - for (size_t i = 0; i < chain_length; ++i) { - ASSERT_TRUE(parent->mChildren); - ASSERT_EQ(parent->mNumChildren, 1u); - auto node = parent->mChildren[0]; - ASSERT_TRUE(node); - ASSERT_STREQ(node->mName.C_Str(), chainStr[i]); - parent = node; - } - ASSERT_EQ(0u, parent->mNumChildren) << "Leaf node"; -} - -TEST_F(utFBXImporterExporter, importCloseToIdentityTransforms) { - Assimp::Importer importer; - // This was asserting in FBXConverter.cpp because the transforms appeared to be the identity by one test, but not by another. - // This asset should now load successfully. - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/FBX/close_to_identity_transforms.fbx", aiProcess_ValidateDataStructure); - ASSERT_TRUE(scene); -} - -TEST_F(utFBXImporterExporter, importPhongMaterial) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/FBX/phong_cube.fbx", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); - EXPECT_EQ(1u, scene->mNumMaterials); - const aiMaterial *mat = scene->mMaterials[0]; - EXPECT_NE(nullptr, mat); - float f; - aiColor3D c; - - // phong_cube.fbx has all properties defined - EXPECT_EQ(mat->Get(AI_MATKEY_COLOR_DIFFUSE, c), aiReturn_SUCCESS); - EXPECT_EQ(c, aiColor3D(0.5, 0.25, 0.25)); - EXPECT_EQ(mat->Get(AI_MATKEY_COLOR_SPECULAR, c), aiReturn_SUCCESS); - EXPECT_EQ(c, aiColor3D(0.25, 0.25, 0.5)); - EXPECT_EQ(mat->Get(AI_MATKEY_SHININESS_STRENGTH, f), aiReturn_SUCCESS); - EXPECT_EQ(f, 0.5f); - EXPECT_EQ(mat->Get(AI_MATKEY_SHININESS, f), aiReturn_SUCCESS); - EXPECT_EQ(f, 10.0f); - EXPECT_EQ(mat->Get(AI_MATKEY_COLOR_AMBIENT, c), aiReturn_SUCCESS); - EXPECT_EQ(c, aiColor3D(0.125, 0.25, 0.25)); - EXPECT_EQ(mat->Get(AI_MATKEY_COLOR_EMISSIVE, c), aiReturn_SUCCESS); - EXPECT_EQ(c, aiColor3D(0.25, 0.125, 0.25)); - EXPECT_EQ(mat->Get(AI_MATKEY_COLOR_TRANSPARENT, c), aiReturn_SUCCESS); - EXPECT_EQ(c, aiColor3D(0.75, 0.5, 0.25)); - EXPECT_EQ(mat->Get(AI_MATKEY_OPACITY, f), aiReturn_SUCCESS); - EXPECT_EQ(f, 0.5f); -} - -TEST_F(utFBXImporterExporter, importUnitScaleFactor) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/FBX/global_settings.fbx", aiProcess_ValidateDataStructure); - - EXPECT_NE(nullptr, scene); - EXPECT_NE(nullptr, scene->mMetaData); - - float factor(0.0f); - scene->mMetaData->Get("UnitScaleFactor", factor); - EXPECT_EQ(500.0f, factor); - - scene->mMetaData->Set("UnitScaleFactor", factor * 2.0f); - scene->mMetaData->Get("UnitScaleFactor", factor); - EXPECT_EQ(1000.0f, factor); -} - -TEST_F(utFBXImporterExporter, importEmbeddedAsciiTest) { - // see https://github.com/assimp/assimp/issues/1957 - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/FBX/embedded_ascii/box.FBX", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); - - EXPECT_EQ(1u, scene->mNumMaterials); - aiMaterial *mat = scene->mMaterials[0]; - ASSERT_NE(nullptr, mat); - - aiString path; - aiTextureMapMode modes[2]; - EXPECT_EQ(aiReturn_SUCCESS, mat->GetTexture(aiTextureType_DIFFUSE, 0, &path, nullptr, nullptr, nullptr, nullptr, modes)); - ASSERT_STREQ(path.C_Str(), "..\\..\\..\\Desktop\\uv_test.png"); - - ASSERT_EQ(1u, scene->mNumTextures); - ASSERT_TRUE(scene->mTextures[0]->pcData); - ASSERT_EQ(439176u, scene->mTextures[0]->mWidth) << "FBX ASCII base64 compression splits data by 512Kb, it should be two parts for this texture"; -} - -TEST_F(utFBXImporterExporter, importEmbeddedFragmentedAsciiTest) { - // see https://github.com/assimp/assimp/issues/1957 - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/FBX/embedded_ascii/box_embedded_texture_fragmented.fbx", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); - - EXPECT_EQ(1u, scene->mNumMaterials); - aiMaterial *mat = scene->mMaterials[0]; - ASSERT_NE(nullptr, mat); - - aiString path; - aiTextureMapMode modes[2]; - ASSERT_EQ(aiReturn_SUCCESS, mat->GetTexture(aiTextureType_DIFFUSE, 0, &path, nullptr, nullptr, nullptr, nullptr, modes)); - ASSERT_STREQ(path.C_Str(), "paper.png"); - - ASSERT_EQ(1u, scene->mNumTextures); - ASSERT_TRUE(scene->mTextures[0]->pcData); - ASSERT_EQ(968029u, scene->mTextures[0]->mWidth) << "FBX ASCII base64 compression splits data by 512Kb, it should be two parts for this texture"; -} - -TEST_F(utFBXImporterExporter, fbxTokenizeTestTest) { - //Assimp::Importer importer; - //const aiScene* scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/FBX/transparentTest2.fbx", aiProcess_ValidateDataStructure); - //EXPECT_NE(nullptr, scene); -} - -TEST_F(utFBXImporterExporter, importOrphantEmbeddedTextureTest) { - // see https://github.com/assimp/assimp/issues/1957 - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/FBX/box_orphant_embedded_texture.fbx", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); - - EXPECT_EQ(1u, scene->mNumMaterials); - aiMaterial *mat = scene->mMaterials[0]; - ASSERT_NE(nullptr, mat); - - aiString path; - aiTextureMapMode modes[2]; - ASSERT_EQ(aiReturn_SUCCESS, mat->GetTexture(aiTextureType_DIFFUSE, 0, &path, nullptr, nullptr, nullptr, nullptr, modes)); - ASSERT_STREQ(path.C_Str(), "..\\Primitives\\GridGrey.tga"); - - ASSERT_EQ(1u, scene->mNumTextures); - ASSERT_TRUE(scene->mTextures[0]->pcData); - ASSERT_EQ(9026u, scene->mTextures[0]->mWidth) << "FBX ASCII base64 compression used for a texture."; -} - -TEST_F(utFBXImporterExporter, sceneMetadata) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/FBX/global_settings.fbx", - aiProcess_ValidateDataStructure); - ASSERT_NE(scene, nullptr); - ASSERT_NE(scene->mMetaData, nullptr); - { - ASSERT_TRUE(scene->mMetaData->HasKey(AI_METADATA_SOURCE_FORMAT)); - aiString format; - ASSERT_TRUE(scene->mMetaData->Get(AI_METADATA_SOURCE_FORMAT, format)); - ASSERT_EQ(strcmp(format.C_Str(), "Autodesk FBX Importer"), 0); - } - { - ASSERT_TRUE(scene->mMetaData->HasKey(AI_METADATA_SOURCE_FORMAT_VERSION)); - aiString version; - ASSERT_TRUE(scene->mMetaData->Get(AI_METADATA_SOURCE_FORMAT_VERSION, version)); - ASSERT_EQ(strcmp(version.C_Str(), "7400"), 0); - } - { - ASSERT_TRUE(scene->mMetaData->HasKey(AI_METADATA_SOURCE_GENERATOR)); - aiString generator; - ASSERT_TRUE(scene->mMetaData->Get(AI_METADATA_SOURCE_GENERATOR, generator)); - ASSERT_EQ(strncmp(generator.C_Str(), "Blender", 7), 0); - } -} - -TEST_F(utFBXImporterExporter, importCubesWithOutOfRangeFloat) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/FBX/cubes_with_outofrange_float.fbx", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); - ASSERT_TRUE(scene->mRootNode); -} - -TEST_F(utFBXImporterExporter, importMaxPbrMaterialsMetalRoughness) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/FBX/maxPbrMaterial_metalRough.fbx", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); - ASSERT_TRUE(scene->mRootNode); - - ASSERT_EQ(scene->mNumMaterials, 1u); - const aiMaterial* mat = scene->mMaterials[0]; - aiString texture; - ASSERT_EQ(mat->Get(AI_MATKEY_TEXTURE(aiTextureType_BASE_COLOR, 0), texture), AI_SUCCESS); - EXPECT_EQ(texture, aiString("Textures\\albedo.png")); - ASSERT_EQ(mat->Get(AI_MATKEY_TEXTURE(aiTextureType_METALNESS, 0), texture), AI_SUCCESS); - EXPECT_EQ(texture, aiString("Textures\\metalness.png")); - ASSERT_EQ(mat->Get(AI_MATKEY_TEXTURE(aiTextureType_EMISSION_COLOR, 0), texture), AI_SUCCESS); - EXPECT_EQ(texture, aiString("Textures\\emission.png")); - ASSERT_EQ(mat->Get(AI_MATKEY_TEXTURE(aiTextureType_NORMAL_CAMERA, 0), texture), AI_SUCCESS); - EXPECT_EQ(texture, aiString("Textures\\normal.png")); - ASSERT_EQ(mat->Get(AI_MATKEY_TEXTURE(aiTextureType_DIFFUSE_ROUGHNESS, 0), texture), AI_SUCCESS); - EXPECT_EQ(texture, aiString("Textures\\roughness.png")); - ASSERT_EQ(mat->Get(AI_MATKEY_TEXTURE(aiTextureType_AMBIENT_OCCLUSION, 0), texture), AI_SUCCESS); - EXPECT_EQ(texture, aiString("Textures\\occlusion.png")); - ASSERT_EQ(mat->Get(AI_MATKEY_TEXTURE(aiTextureType_OPACITY, 0), texture), AI_SUCCESS); - EXPECT_EQ(texture, aiString("Textures\\opacity.png")); - - // The material contains values for standard properties (e.g. SpecularColor), where 3ds Max has presumably - // used formulas to map the Pbr values into the standard material model. However, the pbr values themselves - // are available in the material as untyped "raw" properties. We check that these are correctly parsed: - - aiColor4D baseColor; - ASSERT_EQ(mat->Get("$raw.3dsMax|main|basecolor", aiTextureType_NONE, 0, baseColor), aiReturn_SUCCESS); - EXPECT_EQ(baseColor, aiColor4D(0, 1, 1, 1)); - - float metalness; - ASSERT_EQ(mat->Get("$raw.3dsMax|main|metalness", aiTextureType_NONE, 0, metalness), aiReturn_SUCCESS); - EXPECT_EQ(metalness, 0.25f); - - float roughness; - ASSERT_EQ(mat->Get("$raw.3dsMax|main|roughness", aiTextureType_NONE, 0, roughness), aiReturn_SUCCESS); - EXPECT_EQ(roughness, 0.5f); - - int useGlossiness; - ASSERT_EQ(mat->Get("$raw.3dsMax|main|useGlossiness", aiTextureType_NONE, 0, useGlossiness), aiReturn_SUCCESS); - EXPECT_EQ(useGlossiness, 2); // 1 = Roughness map is glossiness, 2 = Roughness map is roughness. - - float bumpMapAmt; // Presumably amount. - ASSERT_EQ(mat->Get("$raw.3dsMax|main|bump_map_amt", aiTextureType_NONE, 0, bumpMapAmt), aiReturn_SUCCESS); - EXPECT_EQ(bumpMapAmt, 0.75f); - - aiColor4D emitColor; - ASSERT_EQ(mat->Get("$raw.3dsMax|main|emit_color", aiTextureType_NONE, 0, emitColor), aiReturn_SUCCESS); - EXPECT_EQ(emitColor, aiColor4D(1, 1, 0, 1)); -} - -TEST_F(utFBXImporterExporter, importMaxPbrMaterialsSpecularGloss) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/FBX/maxPbrMaterial_specGloss.fbx", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); - ASSERT_TRUE(scene->mRootNode); - - ASSERT_EQ(scene->mNumMaterials, 1u); - const aiMaterial* mat = scene->mMaterials[0]; - aiString texture; - ASSERT_EQ(mat->Get(AI_MATKEY_TEXTURE(aiTextureType_BASE_COLOR, 0), texture), AI_SUCCESS); - EXPECT_EQ(texture, aiString("Textures\\albedo.png")); - ASSERT_EQ(mat->Get(AI_MATKEY_TEXTURE(aiTextureType_SPECULAR, 0), texture), AI_SUCCESS); - EXPECT_EQ(texture, aiString("Textures\\specular.png")); - ASSERT_EQ(mat->Get(AI_MATKEY_TEXTURE(aiTextureType_EMISSION_COLOR, 0), texture), AI_SUCCESS); - EXPECT_EQ(texture, aiString("Textures\\emission.png")); - ASSERT_EQ(mat->Get(AI_MATKEY_TEXTURE(aiTextureType_NORMAL_CAMERA, 0), texture), AI_SUCCESS); - EXPECT_EQ(texture, aiString("Textures\\normal.png")); - ASSERT_EQ(mat->Get(AI_MATKEY_TEXTURE(aiTextureType_SHININESS, 0), texture), AI_SUCCESS); - EXPECT_EQ(texture, aiString("Textures\\glossiness.png")); - ASSERT_EQ(mat->Get(AI_MATKEY_TEXTURE(aiTextureType_AMBIENT_OCCLUSION, 0), texture), AI_SUCCESS); - EXPECT_EQ(texture, aiString("Textures\\occlusion.png")); - ASSERT_EQ(mat->Get(AI_MATKEY_TEXTURE(aiTextureType_OPACITY, 0), texture), AI_SUCCESS); - EXPECT_EQ(texture, aiString("Textures\\opacity.png")); - - // The material contains values for standard properties (e.g. SpecularColor), where 3ds Max has presumably - // used formulas to map the Pbr values into the standard material model. However, the pbr values themselves - // are available in the material as untyped "raw" properties. We check that these are correctly parsed: - - aiColor4D baseColor; - ASSERT_EQ(mat->Get("$raw.3dsMax|main|basecolor", aiTextureType_NONE, 0, baseColor), aiReturn_SUCCESS); - EXPECT_EQ(baseColor, aiColor4D(0, 1, 1, 1)); - - aiColor4D specular; - ASSERT_EQ(mat->Get("$raw.3dsMax|main|Specular", aiTextureType_NONE, 0, specular), aiReturn_SUCCESS); - EXPECT_EQ(specular, aiColor4D(1, 1, 0, 1)); - - float glossiness; - ASSERT_EQ(mat->Get("$raw.3dsMax|main|glossiness", aiTextureType_NONE, 0, glossiness), aiReturn_SUCCESS); - EXPECT_EQ(glossiness, 0.33f); - - int useGlossiness; - ASSERT_EQ(mat->Get("$raw.3dsMax|main|useGlossiness", aiTextureType_NONE, 0, useGlossiness), aiReturn_SUCCESS); - EXPECT_EQ(useGlossiness, 1); // 1 = Glossiness map is glossiness, 2 = Glossiness map is roughness. - - float bumpMapAmt; // Presumably amount. - ASSERT_EQ(mat->Get("$raw.3dsMax|main|bump_map_amt", aiTextureType_NONE, 0, bumpMapAmt), aiReturn_SUCCESS); - EXPECT_EQ(bumpMapAmt, 0.66f); - - aiColor4D emitColor; - ASSERT_EQ(mat->Get("$raw.3dsMax|main|emit_color", aiTextureType_NONE, 0, emitColor), aiReturn_SUCCESS); - EXPECT_EQ(emitColor, aiColor4D(1, 0, 1, 1)); -} diff --git a/libs/assimp/test/unit/utFastAtof.cpp b/libs/assimp/test/unit/utFastAtof.cpp deleted file mode 100644 index cc25482..0000000 --- a/libs/assimp/test/unit/utFastAtof.cpp +++ /dev/null @@ -1,190 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "UnitTestPCH.h" - -#include <assimp/fast_atof.h> - -namespace { - -template <typename Real> -bool IsNan(Real x) { - return x != x; -} - -template <typename Real> -bool IsInf(Real x) { - return std::abs(x) == std::numeric_limits<Real>::infinity(); -} - -} // Namespace - -class FastAtofTest : public ::testing::Test -{ -protected: - template <typename Real, typename AtofFunc> - static void RunTest(AtofFunc atof_func) - { - const Real kEps = 1e-5f; - -#define TEST_CASE(NUM) EXPECT_NEAR(static_cast<Real>(NUM), atof_func(#NUM), kEps) -#define TEST_CASE_NAN(NUM) EXPECT_TRUE(IsNan(atof_func(#NUM))) -#define TEST_CASE_INF(NUM) EXPECT_TRUE(IsInf(atof_func(#NUM))) - - TEST_CASE(0); - TEST_CASE(1.354); - TEST_CASE(1054E-3); - TEST_CASE(-1054E-3); - TEST_CASE(-10.54E30); - TEST_CASE(-345554.54e-5); - TEST_CASE(-34555.534954e-5); - TEST_CASE(-34555.534954e-5); - TEST_CASE(549067); - TEST_CASE(567); - TEST_CASE(446); - TEST_CASE(7); - TEST_CASE(73); - TEST_CASE(256); - TEST_CASE(5676); - TEST_CASE(3); - TEST_CASE(738); - TEST_CASE(684); - TEST_CASE(26); - TEST_CASE(673.678e-56); - TEST_CASE(53); - TEST_CASE(67); - TEST_CASE(684); - TEST_CASE(-5437E24); - TEST_CASE(8); - TEST_CASE(84); - TEST_CASE(3); - TEST_CASE(56733.68); - TEST_CASE(786); - TEST_CASE(6478); - TEST_CASE(34563.65683598734); - TEST_CASE(5673); - TEST_CASE(784e-3); - TEST_CASE(8678); - TEST_CASE(46784); - TEST_CASE(-54.0888e-6); - TEST_CASE(100000e10); - TEST_CASE(1e-307); - TEST_CASE(0.000001e-301); - TEST_CASE(0.0000001e-300); - TEST_CASE(0.00000001e-299); - TEST_CASE(1000000e-313); - TEST_CASE(10000000e-314); - TEST_CASE(100000000e-315); - TEST_CASE(12.345); - TEST_CASE(12.345e19); - TEST_CASE(-.1e+9); - TEST_CASE(.125); - TEST_CASE(1e20); - TEST_CASE(0e-19); - TEST_CASE(400012); - TEST_CASE(5.9e-76); - TEST_CASE_INF(inf); - TEST_CASE_INF(inf); - TEST_CASE_INF(infinity); - TEST_CASE_INF(Inf); - TEST_CASE_INF(-Inf); - TEST_CASE_INF(+InFiNiTy); - TEST_CASE_NAN(NAN); - TEST_CASE_NAN(NaN); - TEST_CASE_NAN(nan); - EXPECT_EQ(static_cast<Real>(6), atof_func("006")); - EXPECT_EQ(static_cast<Real>(5.3), atof_func("5.300 ")); - - /* Failing Cases: - EXPECT_EQ(static_cast<Real>(6), atof_func(" 006")); - EXPECT_EQ(static_cast<Real>(5.3), atof_func(" 5.300 ")); - TEST_CASE(-10.54E45); - TEST_CASE(0x0A); - TEST_CASE(0xA0); - TEST_CASE(0x1p1023); - TEST_CASE(0x1000p1011); - TEST_CASE(0x1p1020); - TEST_CASE(0x0.00001p1040); - TEST_CASE(0x1p-1021); - TEST_CASE(0x1000p-1033); - TEST_CASE(0x10000p-1037); - TEST_CASE(0x0.001p-1009); - TEST_CASE(0x0.0001p-1005); - TEST_CASE(0x1.4p+3); - TEST_CASE(0xAp0); - TEST_CASE(0x0Ap0); - TEST_CASE(0x0.A0p8); - TEST_CASE(0x0.50p9); - TEST_CASE(0x0.28p10); - TEST_CASE(0x0.14p11); - TEST_CASE(0x0.0A0p12); - TEST_CASE(0x0.050p13); - TEST_CASE(0x0.028p14); - TEST_CASE(0x0.014p15); - TEST_CASE(0x00.00A0p16); - TEST_CASE(0x00.0050p17); - TEST_CASE(0x00.0028p18); - TEST_CASE(0x00.0014p19); - TEST_CASE(0x1p-1023); - TEST_CASE(0x0.8p-1022); - TEST_CASE(0x80000Ap-23); - TEST_CASE(0x100000000000008p0); - TEST_CASE(0x100000000000008.p0); - TEST_CASE(0x100000000000008.00p0); - TEST_CASE(0x10000000000000800p0); - TEST_CASE(0x10000000000000801p0) - */ - -#undef TEST_CASE -#undef TEST_CASE_NAN -#undef TEST_CASE_INF - } -}; - -struct FastAtofWrapper { - ai_real operator()(const char* str) { return Assimp::fast_atof(str); } -}; - -TEST_F(FastAtofTest, FastAtof) -{ - RunTest<ai_real>(FastAtofWrapper()); -} diff --git a/libs/assimp/test/unit/utFindDegenerates.cpp b/libs/assimp/test/unit/utFindDegenerates.cpp deleted file mode 100644 index 5eadc03..0000000 --- a/libs/assimp/test/unit/utFindDegenerates.cpp +++ /dev/null @@ -1,208 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "UnitTestPCH.h" - -#include "../../include/assimp/scene.h" -#include "PostProcessing/FindDegenerates.h" - -#include <memory> - -using namespace std; -using namespace Assimp; - -class FindDegeneratesProcessTest : public ::testing::Test { -public: - FindDegeneratesProcessTest() : - Test(), mMesh(nullptr), mProcess(nullptr) { - // empty - } - -protected: - virtual void SetUp(); - virtual void TearDown(); - -protected: - aiMesh *mMesh; - FindDegeneratesProcess *mProcess; -}; - -void FindDegeneratesProcessTest::SetUp() { - mMesh = new aiMesh(); - mProcess = new FindDegeneratesProcess(); - - mMesh->mNumFaces = 1000; - mMesh->mFaces = new aiFace[1000]; - - mMesh->mNumVertices = 5000 * 2; - mMesh->mVertices = new aiVector3D[5000 * 2]; - - for (unsigned int i = 0; i < 5000; ++i) { - mMesh->mVertices[i] = mMesh->mVertices[i + 5000] = aiVector3D((float)i); - } - - mMesh->mPrimitiveTypes = aiPrimitiveType_LINE | aiPrimitiveType_POINT | - aiPrimitiveType_POLYGON | aiPrimitiveType_TRIANGLE; - - unsigned int numOut = 0, numFaces = 0; - for (unsigned int i = 0; i < 1000; ++i) { - aiFace &f = mMesh->mFaces[i]; - f.mNumIndices = (i % 5) + 1; // between 1 and 5 - f.mIndices = new unsigned int[f.mNumIndices]; - bool had = false; - for (unsigned int n = 0; n < f.mNumIndices; ++n) { - // FIXME -#if 0 - // some duplicate indices - if ( n && n == (i / 200)+1) { - f.mIndices[n] = f.mIndices[n-1]; - had = true; - } - // and some duplicate vertices -#endif - if (n && i % 2 && 0 == n % 2) { - f.mIndices[n] = f.mIndices[n - 1] + 5000; - had = true; - } else { - f.mIndices[n] = numOut++; - } - } - if (!had) - ++numFaces; - } - mMesh->mNumUVComponents[0] = numOut; - mMesh->mNumUVComponents[1] = numFaces; -} - -void FindDegeneratesProcessTest::TearDown() { - delete mMesh; - delete mProcess; -} - -TEST_F(FindDegeneratesProcessTest, testDegeneratesDetection) { - mProcess->EnableInstantRemoval(false); - mProcess->ExecuteOnMesh(mMesh); - - unsigned int out = 0; - for (unsigned int i = 0; i < 1000; ++i) { - aiFace &f = mMesh->mFaces[i]; - out += f.mNumIndices; - } - - EXPECT_EQ(1000U, mMesh->mNumFaces); - EXPECT_EQ(10000U, mMesh->mNumVertices); - EXPECT_EQ(out, mMesh->mNumUVComponents[0]); - EXPECT_EQ(static_cast<unsigned int>( - aiPrimitiveType_LINE | aiPrimitiveType_POINT | - aiPrimitiveType_POLYGON | aiPrimitiveType_TRIANGLE), - mMesh->mPrimitiveTypes); -} - -TEST_F(FindDegeneratesProcessTest, testDegeneratesRemoval) { - mProcess->EnableAreaCheck(false); - mProcess->EnableInstantRemoval(true); - mProcess->ExecuteOnMesh(mMesh); - - EXPECT_EQ(mMesh->mNumUVComponents[1], mMesh->mNumFaces); -} - -TEST_F(FindDegeneratesProcessTest, testDegeneratesRemovalWithAreaCheck) { - mProcess->EnableAreaCheck(true); - mProcess->EnableInstantRemoval(true); - mProcess->ExecuteOnMesh(mMesh); - - EXPECT_EQ(mMesh->mNumUVComponents[1] - 100, mMesh->mNumFaces); -} - -namespace -{ - std::unique_ptr<aiMesh> getDegenerateMesh() - { - std::unique_ptr<aiMesh> mesh(new aiMesh); - mesh->mNumVertices = 2; - mesh->mVertices = new aiVector3D[2]; - mesh->mVertices[0] = aiVector3D{ 0.0f, 0.0f, 0.0f }; - mesh->mVertices[1] = aiVector3D{ 1.0f, 0.0f, 0.0f }; - mesh->mNumFaces = 1; - mesh->mFaces = new aiFace[1]; - mesh->mFaces[0].mNumIndices = 3; - mesh->mFaces[0].mIndices = new unsigned int[3]; - mesh->mFaces[0].mIndices[0] = 0; - mesh->mFaces[0].mIndices[1] = 1; - mesh->mFaces[0].mIndices[2] = 0; - return mesh; - } -} - -TEST_F(FindDegeneratesProcessTest, meshRemoval) { - mProcess->EnableAreaCheck(true); - mProcess->EnableInstantRemoval(true); - mProcess->ExecuteOnMesh(mMesh); - - std::unique_ptr<aiScene> scene(new aiScene); - scene->mNumMeshes = 5; - scene->mMeshes = new aiMesh*[5]; - - /// Use the mesh which doesn't get completely stripped of faces from the main test. - aiMesh* meshWhichSurvives = mMesh; - mMesh = nullptr; - - scene->mMeshes[0] = getDegenerateMesh().release(); - scene->mMeshes[1] = getDegenerateMesh().release(); - scene->mMeshes[2] = meshWhichSurvives; - scene->mMeshes[3] = getDegenerateMesh().release(); - scene->mMeshes[4] = getDegenerateMesh().release(); - - scene->mRootNode = new aiNode; - scene->mRootNode->mNumMeshes = 5; - scene->mRootNode->mMeshes = new unsigned int[5]; - scene->mRootNode->mMeshes[0] = 0; - scene->mRootNode->mMeshes[1] = 1; - scene->mRootNode->mMeshes[2] = 2; - scene->mRootNode->mMeshes[3] = 3; - scene->mRootNode->mMeshes[4] = 4; - - mProcess->Execute(scene.get()); - - EXPECT_EQ(scene->mNumMeshes, 1u); - EXPECT_EQ(scene->mMeshes[0], meshWhichSurvives); - EXPECT_EQ(scene->mRootNode->mNumMeshes, 1u); - EXPECT_EQ(scene->mRootNode->mMeshes[0], 0u); -} diff --git a/libs/assimp/test/unit/utFindInvalidData.cpp b/libs/assimp/test/unit/utFindInvalidData.cpp deleted file mode 100644 index 1fa8a3f..0000000 --- a/libs/assimp/test/unit/utFindInvalidData.cpp +++ /dev/null @@ -1,145 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "UnitTestPCH.h" - -#include "PostProcessing/FindInvalidDataProcess.h" -#include <assimp/mesh.h> - -using namespace std; -using namespace Assimp; - -class utFindInvalidDataProcess : public ::testing::Test { -public: - utFindInvalidDataProcess() : - Test(), mMesh(nullptr), mProcess(nullptr) { - // empty - } - -protected: - virtual void SetUp(); - virtual void TearDown(); - -protected: - aiMesh *mMesh; - FindInvalidDataProcess *mProcess; -}; - -// ------------------------------------------------------------------------------------------------ -void utFindInvalidDataProcess::SetUp() { - ASSERT_TRUE(AI_MAX_NUMBER_OF_TEXTURECOORDS >= 3); - - mProcess = new FindInvalidDataProcess(); - mMesh = new aiMesh(); - - mMesh->mNumVertices = 1000; - mMesh->mVertices = new aiVector3D[1000]; - for (unsigned int i = 0; i < 1000; ++i) { - mMesh->mVertices[i] = aiVector3D((float)i); - } - - mMesh->mNormals = new aiVector3D[1000]; - for (unsigned int i = 0; i < 1000; ++i) { - mMesh->mNormals[i] = aiVector3D((float)i + 1); - } - - mMesh->mTangents = new aiVector3D[1000]; - for (unsigned int i = 0; i < 1000; ++i) { - mMesh->mTangents[i] = aiVector3D((float)i); - } - - mMesh->mBitangents = new aiVector3D[1000]; - for (unsigned int i = 0; i < 1000; ++i) { - mMesh->mBitangents[i] = aiVector3D((float)i); - } - - for (unsigned int a = 0; a < AI_MAX_NUMBER_OF_TEXTURECOORDS; ++a) { - mMesh->mTextureCoords[a] = new aiVector3D[1000]; - for (unsigned int i = 0; i < 1000; ++i) { - mMesh->mTextureCoords[a][i] = aiVector3D((float)i); - } - } -} - -// ------------------------------------------------------------------------------------------------ -void utFindInvalidDataProcess::TearDown() { - delete mProcess; - delete mMesh; -} - -// ------------------------------------------------------------------------------------------------ -TEST_F(utFindInvalidDataProcess, testStepNegativeResult) { - for ( size_t i=0; i<mMesh->mNumVertices; ++i ) { - mMesh->mNormals[i].x = mMesh->mNormals[i].y = mMesh->mNormals[i].z =0; - mMesh->mBitangents[i].x = mMesh->mBitangents[i].y = mMesh->mBitangents[i].z = 0; - } - - mMesh->mTextureCoords[2][455] = aiVector3D(std::numeric_limits<float>::quiet_NaN()); - - mProcess->ProcessMesh(mMesh); - - EXPECT_TRUE(NULL != mMesh->mVertices); - EXPECT_EQ(NULL, mMesh->mNormals); - EXPECT_EQ(NULL, mMesh->mTangents); - EXPECT_EQ(NULL, mMesh->mBitangents); - - for (unsigned int i = 0; i < 2; ++i) { - EXPECT_TRUE(NULL != mMesh->mTextureCoords[i]); - } - - for (unsigned int i = 2; i < AI_MAX_NUMBER_OF_TEXTURECOORDS; ++i) { - EXPECT_EQ(NULL, mMesh->mTextureCoords[i]); - } -} - -// ------------------------------------------------------------------------------------------------ -TEST_F(utFindInvalidDataProcess, testStepPositiveResult) { - mProcess->ProcessMesh(mMesh); - - EXPECT_NE(nullptr, mMesh->mVertices); - - EXPECT_NE(nullptr, mMesh->mNormals); - EXPECT_NE(nullptr, mMesh->mTangents); - EXPECT_NE(nullptr, mMesh->mBitangents); - - for (unsigned int i = 0; i < AI_MAX_NUMBER_OF_TEXTURECOORDS; ++i) { - EXPECT_NE(nullptr, mMesh->mTextureCoords[i]); - } -} diff --git a/libs/assimp/test/unit/utFixInfacingNormals.cpp b/libs/assimp/test/unit/utFixInfacingNormals.cpp deleted file mode 100644 index 8f75dd2..0000000 --- a/libs/assimp/test/unit/utFixInfacingNormals.cpp +++ /dev/null @@ -1,43 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "UnitTestPCH.h" diff --git a/libs/assimp/test/unit/utGenBoundingBoxesProcess.cpp b/libs/assimp/test/unit/utGenBoundingBoxesProcess.cpp deleted file mode 100644 index c512e7f..0000000 --- a/libs/assimp/test/unit/utGenBoundingBoxesProcess.cpp +++ /dev/null @@ -1,93 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "UnitTestPCH.h" - -#include "PostProcessing/GenBoundingBoxesProcess.h" -#include <assimp/mesh.h> -#include <assimp/scene.h> - -using namespace Assimp; - -class utGenBoundingBoxesProcess : public ::testing::Test { -public: - utGenBoundingBoxesProcess() : - Test(), mProcess(nullptr), mMesh(nullptr), mScene(nullptr) { - // empty - } - - void SetUp() override { - mProcess = new GenBoundingBoxesProcess; - mMesh = new aiMesh(); - mMesh->mNumVertices = 100; - mMesh->mVertices = new aiVector3D[100]; - for (unsigned int i = 0; i < 100; ++i) { - mMesh->mVertices[i] = aiVector3D((ai_real)i, (ai_real)i, (ai_real)i); - } - mScene = new aiScene(); - mScene->mNumMeshes = 1; - mScene->mMeshes = new aiMesh *[1]; - mScene->mMeshes[0] = mMesh; - } - - void TearDown() override { - delete mProcess; - delete mScene; - } - -protected: - GenBoundingBoxesProcess *mProcess; - aiMesh *mMesh; - aiScene *mScene; -}; - -TEST_F(utGenBoundingBoxesProcess, executeTest) { - mProcess->Execute(mScene); - - aiMesh *mesh = mScene->mMeshes[0]; - EXPECT_NE(nullptr, mesh); - EXPECT_EQ(0, mesh->mAABB.mMin.x); - EXPECT_EQ(0, mesh->mAABB.mMin.y); - EXPECT_EQ(0, mesh->mAABB.mMin.z); - - EXPECT_EQ(99, mesh->mAABB.mMax.x); - EXPECT_EQ(99, mesh->mAABB.mMax.y); - EXPECT_EQ(99, mesh->mAABB.mMax.z); -} diff --git a/libs/assimp/test/unit/utGenNormals.cpp b/libs/assimp/test/unit/utGenNormals.cpp deleted file mode 100644 index 83aadb5..0000000 --- a/libs/assimp/test/unit/utGenNormals.cpp +++ /dev/null @@ -1,86 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "UnitTestPCH.h" - -#include "PostProcessing/GenVertexNormalsProcess.h" - -using namespace ::std; -using namespace ::Assimp; - -class GenNormalsTest : public ::testing::Test { -public: - virtual void SetUp(); - virtual void TearDown(); - -protected: - aiMesh *pcMesh; - GenVertexNormalsProcess *piProcess; -}; - -// ------------------------------------------------------------------------------------------------ -void GenNormalsTest::SetUp() { - piProcess = new GenVertexNormalsProcess(); - pcMesh = new aiMesh(); - pcMesh->mPrimitiveTypes = aiPrimitiveType_TRIANGLE; - pcMesh->mNumFaces = 1; - pcMesh->mFaces = new aiFace[1]; - pcMesh->mFaces[0].mIndices = new unsigned int[pcMesh->mFaces[0].mNumIndices = 3]; - pcMesh->mFaces[0].mIndices[0] = 0; - pcMesh->mFaces[0].mIndices[1] = 1; - pcMesh->mFaces[0].mIndices[2] = 1; - pcMesh->mNumVertices = 3; - pcMesh->mVertices = new aiVector3D[3]; - pcMesh->mVertices[0] = aiVector3D(0.0f, 1.0f, 6.0f); - pcMesh->mVertices[1] = aiVector3D(2.0f, 3.0f, 1.0f); - pcMesh->mVertices[2] = aiVector3D(3.0f, 2.0f, 4.0f); -} - -// ------------------------------------------------------------------------------------------------ -void GenNormalsTest::TearDown() { - delete this->pcMesh; - delete this->piProcess; -} - -// ------------------------------------------------------------------------------------------------ -TEST_F(GenNormalsTest, testSimpleTriangle) { - piProcess->GenMeshVertexNormals(pcMesh, 0); - EXPECT_TRUE(pcMesh->mNormals != NULL); -} diff --git a/libs/assimp/test/unit/utHMPImportExport.cpp b/libs/assimp/test/unit/utHMPImportExport.cpp deleted file mode 100644 index 83e7ba0..0000000 --- a/libs/assimp/test/unit/utHMPImportExport.cpp +++ /dev/null @@ -1,60 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "AbstractImportExportBase.h" -#include "UnitTestPCH.h" - -#include <assimp/postprocess.h> -#include <assimp/Importer.hpp> - -using namespace Assimp; - -class utHMPImportExport : public AbstractImportExportBase { -public: - virtual bool importerTest() { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/HMP/terrain.hmp", aiProcess_ValidateDataStructure); - return nullptr != scene; - } -}; - -TEST_F(utHMPImportExport, importHMPFromFileTest) { - EXPECT_TRUE(importerTest()); -} diff --git a/libs/assimp/test/unit/utIFCImportExport.cpp b/libs/assimp/test/unit/utIFCImportExport.cpp deleted file mode 100644 index 49c7446..0000000 --- a/libs/assimp/test/unit/utIFCImportExport.cpp +++ /dev/null @@ -1,80 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "AbstractImportExportBase.h" -#include "UnitTestPCH.h" - -#include <assimp/postprocess.h> -#include <assimp/Importer.hpp> - -using namespace Assimp; - -class utIFCImportExport : public AbstractImportExportBase { -public: - virtual bool importerTest() { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/IFC/AC14-FZK-Haus.ifc", aiProcess_ValidateDataStructure); - return nullptr != scene; - } -}; - -TEST_F(utIFCImportExport, importIFCFromFileTest) { - EXPECT_TRUE(importerTest()); -} - -TEST_F(utIFCImportExport, importComplextypeAsColor) { - std::string asset = - "ISO-10303-21;\n" - "HEADER;\n" - "FILE_DESCRIPTION( ( 'ViewDefinition [CoordinationView, SpaceBoundary2ndLevelAddOnView]', 'Option [Filter: ]' ), '2;1' );\n" - "FILE_NAME( 'S:\\[IFC]\\[COMPLETE-BUILDINGS]\\FZK-MODELS\\FZK-Haus\\ArchiCAD-14\\AC14-FZK-Haus.ifc', '2010-10-07T13:40:52', ( 'Architect' ), ( 'Building Designer Office' ), 'PreProc - EDM 5.0', 'ArchiCAD 14.00 Release 1. Windows Build Number of the Ifc 2x3 interface: 3427', 'The authorising person' );\n" - "FILE_SCHEMA( ( 'IFC2X3' ) );\n" - "ENDSEC;\n" - "\n" - "DATA;\n" - "#1 = IFCORGANIZATION( 'GS', 'Graphisoft', 'Graphisoft', $, $ );\n" - "#2 = IFCPROPERTYSINGLEVALUE( 'Red', $, IFCINTEGER( 255 ), $ );\n" - "#3 = IFCPROPERTYSINGLEVALUE( 'Green', $, IFCINTEGER( 255 ), $ );\n" - "#4 = IFCPROPERTYSINGLEVALUE( 'Blue', $, IFCINTEGER( 255 ), $ );\n" - "#5 = IFCCOMPLEXPROPERTY( 'Color', $, 'Color', ( #19, #20, #21 ) );\n"; - Assimp::Importer importer; - const aiScene *scene = importer.ReadFileFromMemory(asset.c_str(), asset.size(), 0); - EXPECT_EQ(nullptr, scene); -} diff --git a/libs/assimp/test/unit/utIOStreamBuffer.cpp b/libs/assimp/test/unit/utIOStreamBuffer.cpp deleted file mode 100644 index 7565014..0000000 --- a/libs/assimp/test/unit/utIOStreamBuffer.cpp +++ /dev/null @@ -1,146 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ - -#include "UnitTestPCH.h" -#include <assimp/IOStreamBuffer.h> -#include "TestIOStream.h" -#include "UnitTestFileGenerator.h" - -class IOStreamBufferTest : public ::testing::Test { - // empty -}; - -using namespace Assimp; - -TEST_F( IOStreamBufferTest, creationTest ) { - bool ok( true ); - try { - IOStreamBuffer<char> myBuffer; - } catch ( ... ) { - ok = false; - } - EXPECT_TRUE( ok ); -} - -TEST_F( IOStreamBufferTest, accessCacheSizeTest ) { - IOStreamBuffer<char> myBuffer1; - EXPECT_NE( 0U, myBuffer1.cacheSize() ); - - IOStreamBuffer<char> myBuffer2( 100 ); - EXPECT_EQ( 100U, myBuffer2.cacheSize() ); -} - -const char data[]{"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Qui\ -sque luctus sem diam, ut eleifend arcu auctor eu. Vestibulum id est vel nulla l\ -obortis malesuada ut sed turpis. Nulla a volutpat tortor. Nunc vestibulum portt\ -itor sapien ornare sagittis volutpat."}; - - -TEST_F( IOStreamBufferTest, open_close_Test ) { - IOStreamBuffer<char> myBuffer; - - EXPECT_FALSE( myBuffer.open( nullptr ) ); - EXPECT_FALSE( myBuffer.close() ); - - const auto dataSize = sizeof(data); - const auto dataCount = dataSize / sizeof(*data); - - char fname[]={ "octest.XXXXXX" }; - auto* fs = MakeTmpFile(fname); - ASSERT_NE(nullptr, fs); - - auto written = std::fwrite( data, sizeof(*data), dataCount, fs ); - EXPECT_NE( 0U, written ); - auto flushResult = std::fflush( fs ); - ASSERT_EQ(0, flushResult); - std::fclose( fs ); - fs = std::fopen(fname, "r"); - ASSERT_NE(nullptr, fs); - { - TestDefaultIOStream myStream( fs, fname ); - - EXPECT_TRUE( myBuffer.open( &myStream ) ); - EXPECT_FALSE( myBuffer.open( &myStream ) ); - EXPECT_TRUE( myBuffer.close() ); - } - remove(fname); -} - -TEST_F( IOStreamBufferTest, readlineTest ) { - - const auto dataSize = sizeof(data); - const auto dataCount = dataSize / sizeof(*data); - - char fname[]={ "readlinetest.XXXXXX" }; - auto* fs = MakeTmpFile(fname); - ASSERT_NE(nullptr, fs); - - auto written = std::fwrite( data, sizeof(*data), dataCount, fs ); - EXPECT_NE( 0U, written ); - - auto flushResult = std::fflush(fs); - ASSERT_EQ(0, flushResult); - std::fclose(fs); - fs = std::fopen(fname, "r"); - ASSERT_NE(nullptr, fs); - - const auto tCacheSize = 26u; - - IOStreamBuffer<char> myBuffer( tCacheSize ); - EXPECT_EQ(tCacheSize, myBuffer.cacheSize() ); - - TestDefaultIOStream myStream( fs, fname ); - auto size = myStream.FileSize(); - auto numBlocks = size / myBuffer.cacheSize(); - if ( size % myBuffer.cacheSize() > 0 ) { - numBlocks++; - } - EXPECT_TRUE( myBuffer.open( &myStream ) ); - EXPECT_EQ( numBlocks, myBuffer.getNumBlocks() ); - EXPECT_TRUE( myBuffer.close() ); -} - -TEST_F( IOStreamBufferTest, accessBlockIndexTest ) { - -} - diff --git a/libs/assimp/test/unit/utIOSystem.cpp b/libs/assimp/test/unit/utIOSystem.cpp deleted file mode 100644 index d69e645..0000000 --- a/libs/assimp/test/unit/utIOSystem.cpp +++ /dev/null @@ -1,79 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "UnitTestPCH.h" -#include "TestIOSystem.h" - -#include <assimp/IOSystem.hpp> - -using namespace std; -using namespace Assimp; - -class IOSystemTest : public ::testing::Test { -public: - virtual void SetUp() { - pImp = new TestIOSystem(); - } - - virtual void TearDown() { - delete pImp; - } - -protected: - TestIOSystem* pImp; -}; - -TEST_F( IOSystemTest, accessDirectoryStackTest ) { - EXPECT_FALSE( pImp->PopDirectory() ); - EXPECT_EQ( 0U, pImp->StackSize() ); - EXPECT_FALSE( pImp->PushDirectory( "" ) ); - std::string path = "test/"; - EXPECT_TRUE( pImp->PushDirectory( path ) ); - EXPECT_EQ( 1U, pImp->StackSize() ); - EXPECT_EQ( path, pImp->CurrentDirectory() ); - EXPECT_TRUE( pImp->PopDirectory() ); - EXPECT_EQ( 0U, pImp->StackSize() ); -} - -TEST_F( IOSystemTest, delFileTest ) { - EXPECT_FALSE( pImp->DeleteFile( "none" ) ); -} diff --git a/libs/assimp/test/unit/utImporter.cpp b/libs/assimp/test/unit/utImporter.cpp deleted file mode 100644 index 768a276..0000000 --- a/libs/assimp/test/unit/utImporter.cpp +++ /dev/null @@ -1,363 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "UnitTestPCH.h" - -#include "../../include/assimp/postprocess.h" -#include "../../include/assimp/scene.h" -#include "TestIOSystem.h" -#include <assimp/BaseImporter.h> -#include <assimp/DefaultIOSystem.h> -#include <assimp/Importer.hpp> - -using namespace ::std; -using namespace ::Assimp; - -class ImporterTest : public ::testing::Test { -protected: - void SetUp() override { - pImp = new Importer(); - } - - void TearDown() override { - delete pImp; - } - - Importer *pImp; -}; - -#define InputData_BLOCK_SIZE 1310 - -// clang-format off -// test data for Importer::ReadFileFromMemory() - ./test/3DS/CameraRollAnim.3ds -static unsigned char InputData_abRawBlock[1310] = { - 77, 77, 30, 5, 0, 0, 2, 0, 10, 0, 0, 0, 3, 0, 0, 0, 61, 61, 91, 3, 0, 0, - 62, 61, 10, 0, 0, 0, 3, 0, 0, 0, 0, 1, 10, 0, 0, 0, 0, 0,128, 63, 0, 64, - 254, 2, 0, 0, 66,111,120, 48, 49, 0, 0, 65,242, 2, 0, 0, 16, 65, 64, 1, 0, 0, - 26, 0,102, 74,198,193,102, 74,198,193, 0, 0, 0, 0,205,121, 55, 66,102, 74,198,193, - 0, 0, 0, 0,102, 74,198,193,138,157,184, 65, 0, 0, 0, 0,205,121, 55, 66,138,157, - 184, 65, 0, 0, 0, 0,102, 74,198,193,102, 74,198,193, 90,252, 26, 66,205,121, 55, 66, - 102, 74,198,193, 90,252, 26, 66,102, 74,198,193,138,157,184, 65, 90,252, 26, 66,205,121, - 55, 66,138,157,184, 65, 90,252, 26, 66,102, 74,198,193,102, 74,198,193, 0, 0, 0, 0, - 205,121, 55, 66,102, 74,198,193, 0, 0, 0, 0,205,121, 55, 66,102, 74,198,193, 90,252, - 26, 66,205,121, 55, 66,102, 74,198,193, 90,252, 26, 66,102, 74,198,193,102, 74,198,193, - 90, 252, 26, 66,102, 74,198,193,102, 74,198,193, 0, 0, 0, 0,205,121, 55, 66,138,157, - 184, 65, 0, 0, 0, 0,205,121, 55, 66,102, 74,198,193, 90,252, 26, 66,205,121, 55, 66, - 138,157,184, 65, 0, 0, 0, 0,102, 74,198,193,138,157,184, 65, 0, 0, 0, 0,102, 74, - 198,193,138,157,184, 65, 90,252, 26, 66,102, 74,198,193,138,157,184, 65, 90,252, 26, 66, - 205,121, 55, 66,138,157,184, 65, 90,252, 26, 66,205,121, 55, 66,138,157,184, 65, 0, 0, - 0, 0,102, 74,198,193,138,157,184, 65, 0, 0, 0, 0,102, 74,198,193,102, 74,198,193, - 90,252, 26, 66,102, 74,198,193,102, 74,198,193, 90,252, 26, 66,102, 74,198,193,138,157, - 184, 65, 0, 0, 0, 0, 64, 65,216, 0, 0, 0, 26, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, - 128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, - 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, - 0, 0, 96, 65, 54, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 53,169, 40, 65,176,205, 90,191, 0, 0, 0, 0, 32, 65,158, 0, 0, 0, 12, 0, 0, 0, - 2, 0, 3, 0, 6, 0, 3, 0, 1, 0, 0, 0, 6, 0, 4, 0, 5, 0, 7, 0, 6, 0, - 7, 0, 6, 0, 4, 0, 6, 0, 8, 0, 9, 0, 10, 0, 6, 0, 11, 0, 12, 0, 13, 0, - 6, 0, 1, 0, 14, 0, 7, 0, 6, 0, 7, 0, 15, 0, 1, 0, 6, 0, 16, 0, 17, 0, - 18, 0, 6, 0, 19, 0, 20, 0, 21, 0, 6, 0, 22, 0, 0, 0, 23, 0, 6, 0, 24, 0, - 6, 0, 25, 0, 6, 0, 80, 65, 54, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 4, 0, - 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, - 32, 0, 0, 0, 32, 0, 0, 0, 64, 0, 0, 0, 64, 0, 0, 0, 0, 64, 67, 0, 0, 0, - 67, 97,109,101,114, 97, 48, 49, 0, 0, 71, 52, 0, 0, 0,189, 19, 25,195,136,104, 81, - 64,147, 56,182, 65, 96,233, 20,194, 67,196, 97,190,147, 56,182, 65, 0, 0, 0, 0, 85, - 85, 85, 66, 32, 71, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 68, 0,176,179, 1, 0, - 0, 10,176, 21, 0, 0, 0, 5, 0, 77, 65, 88, 83, 67, 69, 78, 69, 0, 44, 1, 0, 0, - 8,176, 14, 0, 0, 0, 0, 0, 0, 0, 44, 1, 0, 0, 9,176, 10, 0, 0, 0,128, 2, - 0, 0, 2,176,168, 0, 0, 0, 48,176, 8, 0, 0, 0, 0, 0, 16,176, 18, 0, 0, 0, - 66,111,120, 48, 49, 0, 0, 64, 0, 0,255,255, 19,176, 18, 0, 0, 0, 0, 0, 0,128, - 0, 0, 0,128, 0, 0, 0,128, 32,176, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53,169, 40, 65,176,205, 90,191, 0, 0, - 0, 0, 33,176, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 34,176, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 3,176,143, 0, 0, 0, - 48,176, 8, 0, 0, 0, 1, 0, 16,176, 21, 0, 0, 0, 67, 97,109,101,114, 97, 48, 49, - 0, 0, 64, 0, 0,255,255, 32,176, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,189, 19, 25,195,136,104, 81, 64,147, 56,182, - 65, 35,176, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 52, 66, 36,176, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, - 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 13, 90,189,120, 0, 0, 0, 0, - 0, 99,156,154,194, 4,176, 73, 0, 0, 0, 48,176, 8, 0, 0, 0, 2, 0, 16,176, 21, - 0, 0, 0, 67, 97,109,101,114, 97, 48, 49, 0, 0, 64, 0, 0,255,255, 32,176, 38, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 96,233, 20,194, 67,196, 97,190,147, 56,182, 65 }; -// clang-format on -#define AIUT_DEF_ERROR_TEXT "sorry, this is a test" - -static const aiImporterDesc desc = { - "UNIT TEST - IMPORTER", - "", - "", - "", - 0, - 0, - 0, - 0, - 0, - "apple mac linux windows" -}; - -class TestPlugin : public BaseImporter { -public: - virtual bool CanRead( - const std::string &pFile, IOSystem * /*pIOHandler*/, bool /*test*/) const { - std::string::size_type pos = pFile.find_last_of('.'); - // no file extension - can't read - if (pos == std::string::npos) - return false; - std::string extension = pFile.substr(pos); - - // todo ... make case-insensitive - return (extension == ".apple" || extension == ".mac" || - extension == ".linux" || extension == ".windows"); - } - - virtual const aiImporterDesc *GetInfo() const { - return &desc; - } - - virtual void InternReadFile( - const std::string & /*pFile*/, aiScene * /*pScene*/, IOSystem * /*pIOHandler*/) { - throw DeadlyImportError(AIUT_DEF_ERROR_TEXT); - } -}; - -// ------------------------------------------------------------------------------------------------ -TEST_F(ImporterTest, testMemoryRead) { - const aiScene *sc = pImp->ReadFileFromMemory(InputData_abRawBlock, InputData_BLOCK_SIZE, - aiProcessPreset_TargetRealtime_Quality, "3ds"); - - ASSERT_TRUE(sc != NULL); - EXPECT_EQ(aiString("<3DSRoot>"), sc->mRootNode->mName); - EXPECT_EQ(1U, sc->mNumMeshes); - EXPECT_EQ(24U, sc->mMeshes[0]->mNumVertices); - EXPECT_EQ(12U, sc->mMeshes[0]->mNumFaces); -} - -// ------------------------------------------------------------------------------------------------ -TEST_F(ImporterTest, testIntProperty) { - bool b = pImp->SetPropertyInteger("quakquak", 1503); - EXPECT_FALSE(b); - EXPECT_EQ(1503, pImp->GetPropertyInteger("quakquak", 0)); - EXPECT_EQ(314159, pImp->GetPropertyInteger("not_there", 314159)); - - b = pImp->SetPropertyInteger("quakquak", 1504); - EXPECT_TRUE(b); -} - -// ------------------------------------------------------------------------------------------------ -TEST_F(ImporterTest, testFloatProperty) { - bool b = pImp->SetPropertyFloat("quakquak", 1503.f); - EXPECT_TRUE(!b); - EXPECT_EQ(1503.f, pImp->GetPropertyFloat("quakquak", 0.f)); - EXPECT_EQ(314159.f, pImp->GetPropertyFloat("not_there", 314159.f)); -} - -// ------------------------------------------------------------------------------------------------ -TEST_F(ImporterTest, testStringProperty) { - bool b = pImp->SetPropertyString("quakquak", "test"); - EXPECT_TRUE(!b); - EXPECT_EQ("test", pImp->GetPropertyString("quakquak", "weghwekg")); - EXPECT_EQ("ILoveYou", pImp->GetPropertyString("not_there", "ILoveYou")); -} - -// ------------------------------------------------------------------------------------------------ -TEST_F(ImporterTest, testPluginInterface) { - pImp->RegisterLoader(new TestPlugin()); - EXPECT_TRUE(pImp->IsExtensionSupported(".apple")); - EXPECT_TRUE(pImp->IsExtensionSupported(".mac")); - EXPECT_TRUE(pImp->IsExtensionSupported("*.linux")); - EXPECT_TRUE(pImp->IsExtensionSupported("windows")); - EXPECT_TRUE(pImp->IsExtensionSupported(".x")); /* x and 3ds must be available in this Assimp build, of course! */ - EXPECT_TRUE(pImp->IsExtensionSupported(".3ds")); - EXPECT_FALSE(pImp->IsExtensionSupported(".")); - - TestPlugin *p = (TestPlugin *)pImp->GetImporter(".windows"); - ASSERT_TRUE(NULL != p); - - try { - p->InternReadFile("", 0, NULL); - } catch (const DeadlyImportError &dead) { - EXPECT_TRUE(!strcmp(dead.what(), AIUT_DEF_ERROR_TEXT)); - - // unregister the plugin and delete it - pImp->UnregisterLoader(p); - delete p; - - return; - } - EXPECT_TRUE(false); // control shouldn't reach this point -} - -// ------------------------------------------------------------------------------------------------ -TEST_F(ImporterTest, testExtensionCheck) { - std::string s; - pImp->GetExtensionList(s); - - // TODO -} - -// ------------------------------------------------------------------------------------------------ -TEST_F(ImporterTest, testMultipleReads) { - // see http://sourceforge.net/projects/assimp/forums/forum/817654/topic/3591099 - // Check whether reading and post-processing multiple times using - // the same objects is *generally* fine. This test doesn't target - // importers. Testing post-processing stability is the main point. - - const unsigned int flags = - aiProcess_Triangulate | - aiProcess_JoinIdenticalVertices | - aiProcess_GenSmoothNormals | - aiProcess_ValidateDataStructure | - aiProcess_RemoveRedundantMaterials | - aiProcess_SortByPType | - aiProcess_FindDegenerates | - aiProcess_FindInvalidData | - aiProcess_GenUVCoords | - aiProcess_OptimizeMeshes | - aiProcess_OptimizeGraph; - - EXPECT_TRUE(pImp->ReadFile(ASSIMP_TEST_MODELS_DIR "/X/test.x", flags)); - //EXPECT_TRUE(pImp->ReadFile(ASSIMP_TEST_MODELS_DIR "/X/dwarf.x",flags)); # is in nonbsd - EXPECT_TRUE(pImp->ReadFile(ASSIMP_TEST_MODELS_DIR "/X/Testwuson.X", flags)); - EXPECT_TRUE(pImp->ReadFile(ASSIMP_TEST_MODELS_DIR "/X/anim_test.x", flags)); - //EXPECT_TRUE(pImp->ReadFile(ASSIMP_TEST_MODELS_DIR "/X/dwarf.x",flags)); # is in nonbsd - - EXPECT_TRUE(pImp->ReadFile(ASSIMP_TEST_MODELS_DIR "/X/anim_test.x", flags)); - EXPECT_TRUE(pImp->ReadFile(ASSIMP_TEST_MODELS_DIR "/X/BCN_Epileptic.X", flags)); - //EXPECT_TRUE(pImp->ReadFile(ASSIMP_TEST_MODELS_DIR "/X/dwarf.x",flags)); # is in nonbsd -} - -TEST_F(ImporterTest, SearchFileHeaderForTokenTest) { - //DefaultIOSystem ioSystem; - // BaseImporter::SearchFileHeaderForToken( &ioSystem, assetPath, Token, 2 ) -} - -namespace { -// Description for an importer which fails in specific ways. -aiImporterDesc s_failingImporterDescription = { - "Failing importer", - "assimp team", - "", - "", - 0, - 1, - 0, - 1, - 0, - "fail" -}; - -// This importer fails in specific ways. -class FailingImporter : public Assimp::BaseImporter { -public: - virtual ~FailingImporter() = default; - virtual bool CanRead(const std::string &, Assimp::IOSystem *, bool) const override { - return true; - } - -protected: - const aiImporterDesc *GetInfo() const override { - return &s_failingImporterDescription; - } - - void InternReadFile(const std::string &pFile, aiScene *, Assimp::IOSystem *) override { - if (pFile == "deadlyImportError.fail") { - throw DeadlyImportError("Deadly import error test. Details: ", 42, " More Details: ", "Failure"); - } else if (pFile == "stdException.fail") { - throw std::runtime_error("std::exception test"); - } else if (pFile == "unexpectedException.fail") { - throw 5; - } - } -}; -} // namespace - -TEST_F(ImporterTest, deadlyImportError) { - pImp->RegisterLoader(new FailingImporter); - pImp->SetIOHandler(new TestIOSystem); - const aiScene *scene = pImp->ReadFile("deadlyImportError.fail", 0); - EXPECT_EQ(scene, nullptr); - EXPECT_STREQ(pImp->GetErrorString(), "Deadly import error test. Details: 42 More Details: Failure"); - EXPECT_NE(pImp->GetException(), std::exception_ptr()); -} - -TEST_F(ImporterTest, stdException) { - pImp->RegisterLoader(new FailingImporter); - pImp->SetIOHandler(new TestIOSystem); - const aiScene *scene = pImp->ReadFile("stdException.fail", 0); - EXPECT_EQ(scene, nullptr); - EXPECT_STREQ(pImp->GetErrorString(), "std::exception test"); - EXPECT_NE(pImp->GetException(), std::exception_ptr()); - try { - std::rethrow_exception(pImp->GetException()); - } catch (const std::exception &e) { - EXPECT_STREQ(e.what(), "std::exception test"); - } catch (...) { - EXPECT_TRUE(false); - } -} - -TEST_F(ImporterTest, unexpectedException) { - pImp->RegisterLoader(new FailingImporter); - pImp->SetIOHandler(new TestIOSystem); - const aiScene *scene = pImp->ReadFile("unexpectedException.fail", 0); - - EXPECT_EQ(scene, nullptr); - EXPECT_STREQ(pImp->GetErrorString(), "Unknown exception"); - ASSERT_NE(pImp->GetException(), std::exception_ptr()); - try { - std::rethrow_exception(pImp->GetException()); - } catch (int x) { - EXPECT_EQ(x, 5); - } catch (...) { - EXPECT_TRUE(false); - } -} diff --git a/libs/assimp/test/unit/utImproveCacheLocality.cpp b/libs/assimp/test/unit/utImproveCacheLocality.cpp deleted file mode 100644 index 0e97eb0..0000000 --- a/libs/assimp/test/unit/utImproveCacheLocality.cpp +++ /dev/null @@ -1,42 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ - -#include "UnitTestPCH.h" diff --git a/libs/assimp/test/unit/utIssues.cpp b/libs/assimp/test/unit/utIssues.cpp deleted file mode 100644 index 546c36a..0000000 --- a/libs/assimp/test/unit/utIssues.cpp +++ /dev/null @@ -1,83 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "UnitTestPCH.h" - -#include <assimp/scene.h> -#include <assimp/Importer.hpp> -#include <assimp/Exporter.hpp> -#include <assimp/postprocess.h> - -#include "TestModelFactory.h" - -using namespace Assimp; - -class utIssues : public ::testing::Test { - // empty -}; - -#ifndef ASSIMP_BUILD_NO_EXPORT - -TEST_F( utIssues, OpacityBugWhenExporting_727 ) { - float opacity; - aiScene *scene( TestModelFacttory::createDefaultTestModel( opacity ) ); - Assimp::Importer importer; - Assimp::Exporter exporter; - - std::string path = "dae"; - const aiExportFormatDesc *desc = exporter.GetExportFormatDescription( 0 ); - EXPECT_NE( desc, nullptr ); - path.append("."); - path.append( desc->fileExtension ); - EXPECT_EQ( AI_SUCCESS, exporter.Export( scene, desc->id, path ) ); - const aiScene *newScene( importer.ReadFile( path, aiProcess_ValidateDataStructure ) ); - ASSERT_NE( nullptr, newScene ); - float newOpacity; - if ( newScene->mNumMaterials > 0 ) { - std::cout << "Desc = " << desc->description << "\n"; - EXPECT_EQ( AI_SUCCESS, newScene->mMaterials[ 0 ]->Get( AI_MATKEY_OPACITY, newOpacity ) ); - EXPECT_FLOAT_EQ( opacity, newOpacity ); - } - delete scene; -} - -#endif // ASSIMP_BUILD_NO_EXPORT diff --git a/libs/assimp/test/unit/utJoinVertices.cpp b/libs/assimp/test/unit/utJoinVertices.cpp deleted file mode 100644 index b070090..0000000 --- a/libs/assimp/test/unit/utJoinVertices.cpp +++ /dev/null @@ -1,142 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "UnitTestPCH.h" - -#include <assimp/scene.h> - -#include "PostProcessing/JoinVerticesProcess.h" - -using namespace std; -using namespace Assimp; - -class utJoinVertices : public ::testing::Test { -public: - utJoinVertices() : - Test(), piProcess(nullptr), pcMesh(nullptr) { - // empty - } - -protected: - virtual void SetUp(); - virtual void TearDown(); - -protected: - JoinVerticesProcess *piProcess; - aiMesh *pcMesh; -}; - -// ------------------------------------------------------------------------------------------------ -void utJoinVertices::SetUp() { - // construct the process - piProcess = new JoinVerticesProcess(); - - // create a quite small mesh for testing purposes - - // the mesh itself is *something* but it has redundant vertices - pcMesh = new aiMesh(); - - pcMesh->mNumVertices = 900; - aiVector3D *&pv = pcMesh->mVertices = new aiVector3D[900]; - for (unsigned int i = 0; i < 3; ++i) { - const unsigned int base = i * 300; - for (unsigned int a = 0; a < 300; ++a) { - pv[base + a].x = pv[base + a].y = pv[base + a].z = (float)a; - } - } - - // generate faces - each vertex is referenced once - pcMesh->mNumFaces = 300; - pcMesh->mFaces = new aiFace[300]; - for (unsigned int i = 0, p = 0; i < 300; ++i) { - aiFace &face = pcMesh->mFaces[i]; - face.mIndices = new unsigned int[face.mNumIndices = 3]; - for (unsigned int a = 0; a < 3; ++a) { - face.mIndices[a] = p++; - } - } - - // generate extra members - set them to zero to make sure they're identical - pcMesh->mTextureCoords[0] = new aiVector3D[900]; - pcMesh->mBitangents = new aiVector3D[900]; - pcMesh->mNormals = new aiVector3D[900]; - pcMesh->mTangents = new aiVector3D[900]; - for (unsigned int i = 0; i < 900; ++i) { - pcMesh->mTextureCoords[0][i] = aiVector3D(0.f); - pcMesh->mNormals[i] = aiVector3D(0.f); - pcMesh->mTangents[i] = aiVector3D(0.f); - pcMesh->mBitangents[i] = aiVector3D(0.f); - } -} - -// ------------------------------------------------------------------------------------------------ -void utJoinVertices::TearDown() { - delete this->pcMesh; - pcMesh = nullptr; - delete this->piProcess; - piProcess = nullptr; -} - -// ------------------------------------------------------------------------------------------------ -TEST_F(utJoinVertices, testProcess) { - // execute the step on the given data - piProcess->ProcessMesh(pcMesh, 0); - - // the number of faces shouldn't change - ASSERT_EQ(300U, pcMesh->mNumFaces); - ASSERT_EQ(300U, pcMesh->mNumVertices); - - ASSERT_TRUE(nullptr != pcMesh->mNormals); - ASSERT_TRUE(nullptr != pcMesh->mTangents); - ASSERT_TRUE(nullptr != pcMesh->mBitangents); - ASSERT_TRUE(nullptr != pcMesh->mTextureCoords[0]); - - // the order doesn't care - float fSum = 0.f; - for (unsigned int i = 0; i < 300; ++i) { - aiVector3D &v = pcMesh->mVertices[i]; - fSum += v.x + v.y + v.z; - - EXPECT_FALSE(pcMesh->mNormals[i].x); - EXPECT_FALSE(pcMesh->mTangents[i].x); - EXPECT_FALSE(pcMesh->mBitangents[i].x); - EXPECT_FALSE(pcMesh->mTextureCoords[0][i].x); - } - EXPECT_EQ(150.f * 299.f * 3.f, fSum); // gaussian sum equation -} diff --git a/libs/assimp/test/unit/utLWOImportExport.cpp b/libs/assimp/test/unit/utLWOImportExport.cpp deleted file mode 100644 index 2661050..0000000 --- a/libs/assimp/test/unit/utLWOImportExport.cpp +++ /dev/null @@ -1,77 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "AbstractImportExportBase.h" -#include "UnitTestPCH.h" -#include <assimp/postprocess.h> -#include <assimp/scene.h> -#include <assimp/Importer.hpp> - -using namespace Assimp; - -class utLWOImportExport : public AbstractImportExportBase { -public: - virtual bool importerTest() { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/LWO/LWO2/boxuv.lwo", aiProcess_ValidateDataStructure); - - EXPECT_EQ(1u, scene->mNumMeshes); - EXPECT_NE(nullptr, scene->mMeshes[0]); - EXPECT_EQ(24u, scene->mMeshes[0]->mNumVertices); - - //This test model is using n-gons, so 6 faces instead of 12 tris - EXPECT_EQ(6u, scene->mMeshes[0]->mNumFaces); - EXPECT_EQ(aiPrimitiveType_POLYGON, scene->mMeshes[0]->mPrimitiveTypes); - EXPECT_EQ(true, scene->mMeshes[0]->HasTextureCoords(0)); - - return nullptr != scene; - } -}; - -TEST_F(utLWOImportExport, importLWObox_uv) { - EXPECT_TRUE(importerTest()); -} - -TEST_F(utLWOImportExport, importLWOformatdetection) { - ::Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/LWO/LWO2/formatDetection", aiProcess_ValidateDataStructure); - - EXPECT_NE(nullptr, scene); -} diff --git a/libs/assimp/test/unit/utLWSImportExport.cpp b/libs/assimp/test/unit/utLWSImportExport.cpp deleted file mode 100644 index 730911e..0000000 --- a/libs/assimp/test/unit/utLWSImportExport.cpp +++ /dev/null @@ -1,138 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "AbstractImportExportBase.h" -#include "UnitTestPCH.h" -#include <assimp/postprocess.h> - -#include <assimp/Importer.hpp> - -using namespace Assimp; - -class utLWSImportExport : public AbstractImportExportBase { -public: - virtual bool importerTest() { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/LWS/move_x.lws", aiProcess_ValidateDataStructure); - return nullptr != scene; - } -}; - -TEST_F(utLWSImportExport, importLWSFromFileTest) { - EXPECT_TRUE(importerTest()); -} - -TEST_F(utLWSImportExport, importLWSmove_x_post_linear) { - ::Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/LWS/move_x_post_linear.lws", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); -} - -TEST_F(utLWSImportExport, importLWSmove_xz_bezier) { - ::Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/LWS/move_xz_bezier.lws", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); -} - -TEST_F(utLWSImportExport, importLWSmove_xz_stepped) { - ::Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/LWS/move_xz_stepped.lws", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); -} - -TEST_F(utLWSImportExport, importLWSmove_x_oldformat_56) { - ::Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/LWS/move_x_oldformat_56.lws", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); -} - -TEST_F(utLWSImportExport, importLWSmove_x_post_offset_repeat) { - ::Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/LWS/move_x_post_offset_repeat.lws", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); -} - -TEST_F(utLWSImportExport, importLWSmove_xz_hermite) { - ::Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/LWS/move_xz_hermite.lws", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); -} - -TEST_F(utLWSImportExport, importLWSmove_y_pre_ofrep_post_osc) { - ::Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/LWS/move_y_pre_ofrep_post_osc.lws", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); -} - -TEST_F(utLWSImportExport, importLWSmove_x_oldformat_6) { - ::Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/LWS/move_x_oldformat_6.lws", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); -} - -TEST_F(utLWSImportExport, importLWSmove_x_post_repeat) { - ::Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/LWS/move_x_post_repeat.lws", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); -} - -TEST_F(utLWSImportExport, importLWSmove_xz_linear) { - ::Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/LWS/move_xz_linear.lws", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); -} - -TEST_F(utLWSImportExport, importLWSmove_x_post_constant) { - ::Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/LWS/move_x_post_constant.lws", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); -} - -TEST_F(utLWSImportExport, importLWSmove_x_post_reset) { - ::Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/LWS/move_x_post_reset.lws", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); -} - -TEST_F(utLWSImportExport, importLWSmove_xz_spline) { - ::Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/LWS/move_xz_spline.lws", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); -} diff --git a/libs/assimp/test/unit/utLimitBoneWeights.cpp b/libs/assimp/test/unit/utLimitBoneWeights.cpp deleted file mode 100644 index 0c24b56..0000000 --- a/libs/assimp/test/unit/utLimitBoneWeights.cpp +++ /dev/null @@ -1,136 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "UnitTestPCH.h" - -#include "PostProcessing/LimitBoneWeightsProcess.h" -#include <assimp/scene.h> - -using namespace std; -using namespace Assimp; - -class LimitBoneWeightsTest : public ::testing::Test { -public: - LimitBoneWeightsTest() : - Test(), mProcess(nullptr), mMesh(nullptr) { - // empty - } - -protected: - virtual void SetUp(); - virtual void TearDown(); - -protected: - LimitBoneWeightsProcess *mProcess; - aiMesh *mMesh; -}; - -// ------------------------------------------------------------------------------------------------ -void LimitBoneWeightsTest::SetUp() { - // construct the process - this->mProcess = new LimitBoneWeightsProcess(); - - // now need to create a nice mesh for testing purposes - this->mMesh = new aiMesh(); - - mMesh->mNumVertices = 500; - mMesh->mVertices = new aiVector3D[500]; // uninit. - mMesh->mNumBones = 30; - mMesh->mBones = new aiBone *[30]; - unsigned int iCur = 0; - for (unsigned int i = 0; i < 30; ++i) { - aiBone *pc = mMesh->mBones[i] = new aiBone(); - pc->mNumWeights = 250; - pc->mWeights = new aiVertexWeight[pc->mNumWeights]; - for (unsigned int qq = 0; qq < pc->mNumWeights; ++qq) { - aiVertexWeight &v = pc->mWeights[qq]; - v.mVertexId = iCur++; - if (500 == iCur) { - iCur = 0; - } - v.mWeight = 1.0f / 15; // each vertex should occur once in two bones - } - } -} - -// ------------------------------------------------------------------------------------------------ -void LimitBoneWeightsTest::TearDown() { - delete mMesh; - delete mProcess; -} - -// ------------------------------------------------------------------------------------------------ -TEST_F(LimitBoneWeightsTest, testProcess) { - // execute the step on the given data - mProcess->ProcessMesh(mMesh); - - // check whether everything is ok ... - typedef std::vector<LimitBoneWeightsProcess::Weight> VertexWeightList; - VertexWeightList *asWeights = new VertexWeightList[mMesh->mNumVertices]; - - for (unsigned int i = 0; i < mMesh->mNumVertices; ++i) { - asWeights[i].reserve(4); - } - - // sort back as per-vertex lists - for (unsigned int i = 0; i < mMesh->mNumBones; ++i) { - aiBone &pcBone = **(mMesh->mBones + i); - for (unsigned int q = 0; q < pcBone.mNumWeights; ++q) { - aiVertexWeight weight = pcBone.mWeights[q]; - asWeights[weight.mVertexId].push_back(LimitBoneWeightsProcess::Weight(i, weight.mWeight)); - } - } - - // now validate the size of the lists and check whether all weights sum to 1.0f - for (unsigned int i = 0; i < mMesh->mNumVertices; ++i) { - EXPECT_LE(asWeights[i].size(), 4U); - float fSum = 0.0f; - for (VertexWeightList::const_iterator iter = asWeights[i].begin(); iter != asWeights[i].end(); ++iter) { - fSum += (*iter).mWeight; - } - EXPECT_GE(fSum, 0.95F); - EXPECT_LE(fSum, 1.04F); - } - - // delete allocated storage - delete[] asWeights; - - // everything seems to be OK -} diff --git a/libs/assimp/test/unit/utM3DImportExport.cpp b/libs/assimp/test/unit/utM3DImportExport.cpp deleted file mode 100644 index bd9fca1..0000000 --- a/libs/assimp/test/unit/utM3DImportExport.cpp +++ /dev/null @@ -1,84 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2020, assimp tea - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ - -#include "AbstractImportExportBase.h" -#include "UnitTestPCH.h" - -#include <assimp/Importer.hpp> -#include <assimp/Exporter.hpp> -#include <assimp/postprocess.h> -#include <assimp/Importer.hpp> - -using namespace Assimp; - -class utM3DImportExport : public AbstractImportExportBase { -public: - bool importerTest() override { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/M3D/cube_normals.m3d", aiProcess_ValidateDataStructure); -#ifndef ASSIMP_BUILD_NO_M3D_IMPORTER - return nullptr != scene; -#else - return nullptr == scene; -#endif // ASSIMP_BUILD_NO_M3D_IMPORTER - } - -#ifndef ASSIMP_BUILD_NO_EXPORT - bool exporterTest() override { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/M3D/cube_normals.m3d", aiProcess_ValidateDataStructure); - Exporter exporter; - aiReturn ret = exporter.Export(scene, "m3d", ASSIMP_TEST_MODELS_DIR "/M3D/cube_normals_out.m3d"); - return ret == AI_SUCCESS; - } -#endif -}; - -TEST_F(utM3DImportExport, importM3DFromFileTest) { - EXPECT_TRUE(importerTest()); -} - -#ifndef ASSIMP_BUILD_NO_EXPORT -TEST_F(utM3DImportExport, exportM3DFromFileTest) { - EXPECT_TRUE(exporterTest()); -} -#endif // ASSIMP_BUILD_NO_EXPORT diff --git a/libs/assimp/test/unit/utMDCImportExport.cpp b/libs/assimp/test/unit/utMDCImportExport.cpp deleted file mode 100644 index 29b9ed5..0000000 --- a/libs/assimp/test/unit/utMDCImportExport.cpp +++ /dev/null @@ -1,62 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ - -#include "AbstractImportExportBase.h" -#include "UnitTestPCH.h" -#include <assimp/postprocess.h> -#include <assimp/Importer.hpp> - -using namespace Assimp; - -class utMDCImportExport : public AbstractImportExportBase { -public: - virtual bool importerTest() { - Assimp::Importer importer; - - //const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/MDC/spider.mdc", 0); - static_cast<void>(importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/MDC/spider.mdc", 0)); - return true; - } -}; - -TEST_F(utMDCImportExport, importMDCFromFileTest) { - EXPECT_TRUE(importerTest()); -} diff --git a/libs/assimp/test/unit/utMaterialSystem.cpp b/libs/assimp/test/unit/utMaterialSystem.cpp deleted file mode 100644 index 7b45604..0000000 --- a/libs/assimp/test/unit/utMaterialSystem.cpp +++ /dev/null @@ -1,137 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "UnitTestPCH.h" - -#include "Material/MaterialSystem.h" -#include <assimp/scene.h> - -using namespace ::std; -using namespace ::Assimp; - -class MaterialSystemTest : public ::testing::Test { -public: - virtual void SetUp() { this->pcMat = new aiMaterial(); } - virtual void TearDown() { delete this->pcMat; } - -protected: - aiMaterial *pcMat; -}; - -// ------------------------------------------------------------------------------------------------ -TEST_F(MaterialSystemTest, testFloatProperty) { - float pf = 150392.63f; - this->pcMat->AddProperty(&pf, 1, "testKey1"); - pf = 0.0f; - - EXPECT_EQ(AI_SUCCESS, pcMat->Get("testKey1", 0, 0, pf)); - EXPECT_EQ(150392.63f, pf); -} - -// ------------------------------------------------------------------------------------------------ -TEST_F(MaterialSystemTest, testFloatArrayProperty) { - float pf[] = { 0.0f, 1.0f, 2.0f, 3.0f }; - unsigned int pMax = sizeof(pf) / sizeof(float); - this->pcMat->AddProperty(pf, pMax, "testKey2"); - pf[0] = pf[1] = pf[2] = pf[3] = 12.0f; - - EXPECT_EQ(AI_SUCCESS, pcMat->Get("testKey2", 0, 0, pf, &pMax)); - EXPECT_EQ(sizeof(pf) / sizeof(float), static_cast<size_t>(pMax)); - EXPECT_TRUE(!pf[0] && 1.0f == pf[1] && 2.0f == pf[2] && 3.0f == pf[3]); -} - -// ------------------------------------------------------------------------------------------------ -TEST_F(MaterialSystemTest, testIntProperty) { - int pf = 15039263; - this->pcMat->AddProperty(&pf, 1, "testKey3"); - pf = 12; - - EXPECT_EQ(AI_SUCCESS, pcMat->Get("testKey3", 0, 0, pf)); - EXPECT_EQ(15039263, pf); -} - -// ------------------------------------------------------------------------------------------------ -TEST_F(MaterialSystemTest, testIntArrayProperty) { - int pf[] = { 0, 1, 2, 3 }; - unsigned int pMax = sizeof(pf) / sizeof(int); - this->pcMat->AddProperty(pf, pMax, "testKey4"); - pf[0] = pf[1] = pf[2] = pf[3] = 12; - - EXPECT_EQ(AI_SUCCESS, pcMat->Get("testKey4", 0, 0, pf, &pMax)); - EXPECT_EQ(sizeof(pf) / sizeof(int), pMax); - EXPECT_TRUE(!pf[0] && 1 == pf[1] && 2 == pf[2] && 3 == pf[3]); -} - -// ------------------------------------------------------------------------------------------------ -TEST_F(MaterialSystemTest, testColorProperty) { - aiColor4D clr; - clr.r = 2.0f; - clr.g = 3.0f; - clr.b = 4.0f; - clr.a = 5.0f; - this->pcMat->AddProperty(&clr, 1, "testKey5"); - clr.b = 1.0f; - clr.a = clr.g = clr.r = 0.0f; - - EXPECT_EQ(AI_SUCCESS, pcMat->Get("testKey5", 0, 0, clr)); - EXPECT_TRUE(clr.r == 2.0f && clr.g == 3.0f && clr.b == 4.0f && clr.a == 5.0f); -} - -// ------------------------------------------------------------------------------------------------ -TEST_F(MaterialSystemTest, testStringProperty) { - aiString s; - s.Set("Hello, this is a small test"); - this->pcMat->AddProperty(&s, "testKey6"); - s.Set("358358"); - EXPECT_EQ(AI_SUCCESS, pcMat->Get("testKey6", 0, 0, s)); - EXPECT_STREQ("Hello, this is a small test", s.data); -} - -// ------------------------------------------------------------------------------------------------ -TEST_F(MaterialSystemTest, testMaterialNameAccess) { - aiMaterial *mat = new aiMaterial(); - EXPECT_NE(nullptr, mat); - - aiString name = mat->GetName(); - const int retValue(strncmp(name.C_Str(), AI_DEFAULT_MATERIAL_NAME, name.length)); - EXPECT_EQ(0, retValue); - - delete mat; -} diff --git a/libs/assimp/test/unit/utMatrix3x3.cpp b/libs/assimp/test/unit/utMatrix3x3.cpp deleted file mode 100644 index ae722a8..0000000 --- a/libs/assimp/test/unit/utMatrix3x3.cpp +++ /dev/null @@ -1,99 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ - -#include "UnitTestPCH.h" -#include <iostream> - -using namespace ::Assimp; - -class utMatrix3x3Test : public ::testing::Test { - // empty -}; - -TEST_F(utMatrix3x3Test, FromToMatrixTest) { - aiVector3D res; - aiMatrix3x3 trafo; - - const double PRECISION = 0.000001; - - // axes test - aiVector3D axes[] = { aiVector3D(1, 0, 0), aiVector3D(0, 1, 0), aiVector3D(0, 0, 1) }; - - for (int i = 0; i < 3; ++i) { - for (int j = 0; j < 3; ++j) { - aiMatrix3x3::FromToMatrix(axes[i], axes[j], trafo); - res = trafo * axes[i]; - - ASSERT_NEAR(axes[j].x, res.x, PRECISION); - ASSERT_NEAR(axes[j].y, res.y, PRECISION); - ASSERT_NEAR(axes[j].z, res.z, PRECISION); - } - } - - // random test - const int NUM_SAMPLES = 10000; - - aiVector3D from, to; - - auto random_ratio = []() -> float { - return static_cast<float>(rand()) / static_cast<float>(RAND_MAX); - }; - - for (int i = 0; i < NUM_SAMPLES; ++i) { - from = aiVector3D( - 1.f * random_ratio(), - 1.f * random_ratio(), - 1.f * random_ratio()) - .Normalize(); - to = aiVector3D( - 1.f * random_ratio(), - 1.f * random_ratio(), - 1.f * random_ratio()) - .Normalize(); - - aiMatrix3x3::FromToMatrix(from, to, trafo); - res = trafo * from; - - ASSERT_NEAR(to.x, res.x, PRECISION); - ASSERT_NEAR(to.y, res.y, PRECISION); - ASSERT_NEAR(to.z, res.z, PRECISION); - } -} diff --git a/libs/assimp/test/unit/utMatrix4x4.cpp b/libs/assimp/test/unit/utMatrix4x4.cpp deleted file mode 100644 index 0b85a8f..0000000 --- a/libs/assimp/test/unit/utMatrix4x4.cpp +++ /dev/null @@ -1,92 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ - -#include "UnitTestPCH.h" - -using namespace Assimp; - -class utMatrix4x4 : public ::testing::Test { -}; - -TEST_F(utMatrix4x4, badIndexOperatorTest) { - aiMatrix4x4 m; - ai_real *a0 = m[4]; - EXPECT_EQ(NULL, a0); -} - -TEST_F(utMatrix4x4, indexOperatorTest) { - aiMatrix4x4 m; - ai_real *a0 = m[0]; - EXPECT_FLOAT_EQ(1.0, *a0); - ai_real *a1 = a0 + 1; - EXPECT_FLOAT_EQ(0.0, *a1); - ai_real *a2 = a0 + 2; - EXPECT_FLOAT_EQ(0.0, *a2); - ai_real *a3 = a0 + 3; - EXPECT_FLOAT_EQ(0.0, *a3); - - ai_real *a4 = m[1]; - EXPECT_FLOAT_EQ(0.0, *a4); - ai_real *a5 = a4 + 1; - EXPECT_FLOAT_EQ(1.0, *a5); - ai_real *a6 = a4 + 2; - EXPECT_FLOAT_EQ(0.0, *a6); - ai_real *a7 = a4 + 3; - EXPECT_FLOAT_EQ(0.0, *a7); - - ai_real *a8 = m[2]; - EXPECT_FLOAT_EQ(0.0, *a8); - ai_real *a9 = a8 + 1; - EXPECT_FLOAT_EQ(0.0, *a9); - ai_real *a10 = a8 + 2; - EXPECT_FLOAT_EQ(1.0, *a10); - ai_real *a11 = a8 + 3; - EXPECT_FLOAT_EQ(0.0, *a11); - - ai_real *a12 = m[3]; - EXPECT_FLOAT_EQ(0.0, *a12); - ai_real *a13 = a12 + 1; - EXPECT_FLOAT_EQ(0.0, *a13); - ai_real *a14 = a12 + 2; - EXPECT_FLOAT_EQ(0.0, *a14); - ai_real *a15 = a12 + 3; - EXPECT_FLOAT_EQ(1.0, *a15); -} diff --git a/libs/assimp/test/unit/utMetadata.cpp b/libs/assimp/test/unit/utMetadata.cpp deleted file mode 100644 index 6bd536d..0000000 --- a/libs/assimp/test/unit/utMetadata.cpp +++ /dev/null @@ -1,272 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ - -#include "UnitTestPCH.h" - -#include <assimp/metadata.h> - -using namespace ::Assimp; - -class utMetadata: public ::testing::Test { -protected: - aiMetadata *m_data; - - void SetUp() override { - m_data = nullptr; - } - - void TearDown() override { - aiMetadata::Dealloc( m_data ); - } - -}; - -TEST_F( utMetadata, creationTest ) { - bool ok( true ); - try { - aiMetadata data; - } catch ( ... ) { - ok = false; - } - EXPECT_TRUE( ok ); -} - -TEST_F( utMetadata, allocTest ) { - aiMetadata *data = aiMetadata::Alloc( 0 ); - EXPECT_EQ( nullptr, data ); - - data = aiMetadata::Alloc( 1 ); - EXPECT_NE( nullptr, data ); - EXPECT_EQ( 1U, data->mNumProperties ); - EXPECT_NE( nullptr, data->mKeys ); - EXPECT_NE( nullptr, data->mValues ); - aiMetadata::Dealloc( data ); -} - -TEST_F( utMetadata, get_set_pod_Test ) { - m_data = aiMetadata::Alloc( 5 ); - - // int, 32 bit - unsigned int index( 0 ); - bool success( false ); - const std::string key_int = "test_int"; - success = m_data->Set( index, key_int, 1 ); - EXPECT_TRUE( success ); - success = m_data->Set( index + 10, key_int, 1 ); - EXPECT_FALSE( success ); - - // unsigned int, 64 bit - index++; - const std::string key_uint = "test_uint"; - success = m_data->Set<uint64_t>( index, key_uint, 1UL ); - EXPECT_TRUE( success ); - uint64_t result_uint( 0 ); - success = m_data->Get( key_uint, result_uint ); - EXPECT_TRUE( success ); - EXPECT_EQ( 1UL, result_uint ); - - // bool - index++; - const std::string key_bool = "test_bool"; - success = m_data->Set( index, key_bool, true ); - EXPECT_TRUE( success ); - bool result_bool( false ); - success = m_data->Get( key_bool, result_bool ); - EXPECT_TRUE( success ); - EXPECT_EQ( true, result_bool ); - - // float - index++; - const std::string key_float = "test_float"; - float fVal = 2.0f; - success = m_data->Set( index, key_float, fVal ); - EXPECT_TRUE( success ); - float result_float( 0.0f ); - success = m_data->Get( key_float, result_float ); - EXPECT_TRUE( success ); - EXPECT_FLOAT_EQ( 2.0f, result_float ); - - // double - index++; - const std::string key_double = "test_double"; - double dVal = 3.0; - success = m_data->Set( index, key_double, dVal ); - EXPECT_TRUE( success ); - double result_double( 0.0 ); - success = m_data->Get( key_double, result_double ); - EXPECT_TRUE( success ); - EXPECT_DOUBLE_EQ( 3.0, result_double ); - - // error - int result; - success = m_data->Get( "bla", result ); - EXPECT_FALSE( success ); -} - -TEST_F( utMetadata, get_set_string_Test ) { - m_data = aiMetadata::Alloc( 1 ); - - unsigned int index( 0 ); - bool success( false ); - const std::string key = "test"; - success = m_data->Set( index, key, aiString( std::string( "test" ) ) ); - EXPECT_TRUE( success ); - - success = m_data->Set( index+10, key, aiString( std::string( "test" ) ) ); - EXPECT_FALSE( success ); - - aiString result; - success = m_data->Get( key, result ); - EXPECT_EQ( aiString( std::string( "test" ) ), result ); - EXPECT_TRUE( success ); - - success = m_data->Get( "bla", result ); - EXPECT_FALSE( success ); -} - -TEST_F( utMetadata, get_set_aiVector3D_Test ) { - m_data = aiMetadata::Alloc( 1 ); - - unsigned int index( 0 ); - bool success( false ); - const std::string key = "test"; - aiVector3D vec( 1, 2, 3 ); - - success = m_data->Set( index, key, vec ); - EXPECT_TRUE( success ); - - aiVector3D result( 0, 0, 0 ); - success = m_data->Get( key, result ); - EXPECT_EQ( vec, result ); - EXPECT_TRUE( success ); -} - -TEST_F( utMetadata, copy_test ) { - m_data = aiMetadata::Alloc( AI_META_MAX ); - bool bv = true; - m_data->Set( 0, "bool", bv ); - int32_t i32v = -10; - m_data->Set( 1, "int32", i32v ); - uint64_t ui64v = static_cast<uint64_t>( 10 ); - m_data->Set( 2, "uint64", ui64v ); - float fv = 1.0f; - m_data->Set( 3, "float", fv ); - double dv = 2.0; - m_data->Set( 4, "double", dv ); - const aiString strVal( std::string( "test" ) ); - m_data->Set( 5, "aiString", strVal ); - aiVector3D vecVal( 1, 2, 3 ); - m_data->Set( 6, "aiVector3D", vecVal ); - aiMetadata metaVal; - m_data->Set( 7, "aiMetadata", metaVal ); - - aiMetadata copy( *m_data ); - EXPECT_EQ( 8u, copy.mNumProperties ); - - // bool test - { - bool v; - EXPECT_TRUE( copy.Get( "bool", v ) ); - EXPECT_EQ( bv, v ); - } - - // int32_t test - { - int32_t v = 0; - bool ok = copy.Get( "int32", v ); - EXPECT_TRUE( ok ); - EXPECT_EQ( i32v, v ); - } - - // uint64_t test - { - uint64_t v; - bool ok = copy.Get( "uint64", v ); - EXPECT_TRUE( ok ); - EXPECT_EQ( ui64v, v ); - } - - // float test - { - float v; - EXPECT_TRUE( copy.Get( "float", v ) ); - EXPECT_EQ( fv, v ); - } - - // double test - { - double v; - EXPECT_TRUE( copy.Get( "double", v ) ); - EXPECT_EQ( dv, v ); - } - - // bool test - { - aiString v; - EXPECT_TRUE( copy.Get( "aiString", v ) ); - EXPECT_EQ( strVal, v ); - } - - // bool test - { - aiVector3D v; - EXPECT_TRUE( copy.Get( "aiVector3D", v ) ); - EXPECT_EQ( vecVal, v ); - } - - // metadata test - { - aiMetadata v; - EXPECT_TRUE( copy.Get( "aiMetadata", v ) ); - EXPECT_EQ( metaVal, v ); - } -} - -TEST_F( utMetadata, set_test ) { - aiMetadata v; - const std::string key_bool = "test_bool"; - v.Set(1, key_bool, true); - v.Set(1, key_bool, true); - v.Set(1, key_bool, true); - v.Set(1, key_bool, true); -} diff --git a/libs/assimp/test/unit/utNoBoostTest.cpp b/libs/assimp/test/unit/utNoBoostTest.cpp deleted file mode 100644 index cb6c391..0000000 --- a/libs/assimp/test/unit/utNoBoostTest.cpp +++ /dev/null @@ -1,112 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2020, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "UnitTestPCH.h" - -#include "BoostWorkaround/boost/tuple/tuple.hpp" - -#define ASSIMP_FORCE_NOBOOST -#include "BoostWorkaround/boost/format.hpp" -#include <assimp/TinyFormatter.h> - - -using namespace std; -using namespace Assimp; -using namespace Assimp::Formatter; - -// ------------------------------------------------------------------------------------------------ -TEST(NoBoostTest, testFormat) -{ - EXPECT_EQ( "Ahoi!", boost::str( boost::format("Ahoi!") )); - EXPECT_EQ( "Ahoi! %", boost::str( boost::format("Ahoi! %%") )); - EXPECT_EQ( "Ahoi! ", boost::str( boost::format("Ahoi! %s") )); - EXPECT_EQ( "Ahoi! !!", boost::str( boost::format("Ahoi! %s") % "!!" )); - EXPECT_EQ( "Ahoi! !!", boost::str( boost::format("Ahoi! %s") % "!!" % "!!" )); - EXPECT_EQ( "abc", boost::str( boost::format("%s%s%s") % "a" % std::string("b") % "c" )); -} - -struct another -{ - int dummy; -}; - -// ------------------------------------------------------------------------------------------------ -TEST(NoBoostTest, Tuple) { - // Implicit conversion - boost::tuple<unsigned,unsigned,unsigned> first = boost::make_tuple(4,4,4); - EXPECT_EQ(4U, first.get<0>()); - EXPECT_EQ(4U, first.get<1>()); - EXPECT_EQ(4U, first.get<2>()); - - boost::tuple<int, float, double, bool, another> second= - boost::make_tuple(1,1.0f,0.0,false,another()); - bool b = second.get<3>(); - - // check empty tuple - boost::tuple<> third; - third; - - // FIXME: Explicit conversion not really required yet - boost::tuple<float,float,float> last = - (boost::tuple<float,float,float>)boost::make_tuple(1.,2.,3.); - EXPECT_EQ(1.f, last.get<0>()); - EXPECT_EQ(2.f, last.get<1>()); - EXPECT_EQ(3.f, last.get<2>()); - - // Non-const access - first.get<0>() = 1; - first.get<1>() = 2; - first.get<2>() = 3; - EXPECT_EQ(1U, first.get<0>()); - EXPECT_EQ(2U, first.get<1>()); - EXPECT_EQ(3U, first.get<2>()); - - // Const cases - const boost::tuple<unsigned,unsigned,unsigned> constant = boost::make_tuple(5,5,5); - first.get<0>() = constant.get<0>(); - EXPECT_EQ(5U, constant.get<0>()); - EXPECT_EQ(5U, first.get<0>()); - - // Direct assignment w. explicit conversion - last = first; - EXPECT_EQ(5.f, last.get<0>()); - EXPECT_EQ(2.f, last.get<1>()); - EXPECT_EQ(3.f, last.get<2>()); -} diff --git a/libs/assimp/test/unit/utObjImportExport.cpp b/libs/assimp/test/unit/utObjImportExport.cpp deleted file mode 100644 index 58eace0..0000000 --- a/libs/assimp/test/unit/utObjImportExport.cpp +++ /dev/null @@ -1,479 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ - -#include "AbstractImportExportBase.h" -#include "SceneDiffer.h" -#include "UnitTestPCH.h" -#include <assimp/postprocess.h> -#include <assimp/scene.h> -#include <assimp/Exporter.hpp> -#include <assimp/Importer.hpp> - -using namespace Assimp; - -static const float VertComponents[24 * 3] = { - -0.500000, 0.500000, 0.500000, - -0.500000, 0.500000, -0.500000, - -0.500000, -0.500000, -0.500000, - -0.500000, -0.500000, 0.500000, - -0.500000, -0.500000, -0.500000, - 0.500000, -0.500000, -0.500000, - 0.500000, -0.500000, 0.500000, - -0.500000, -0.500000, 0.500000, - -0.500000, 0.500000, -0.500000, - 0.500000, 0.500000, -0.500000, - 0.500000, -0.500000, -0.500000, - -0.500000, -0.500000, -0.500000, - 0.500000, 0.500000, 0.500000, - 0.500000, 0.500000, -0.500000, - -0.500000, 0.500000, -0.500000, - -0.500000, 0.500000, 0.500000, - 0.500000, -0.500000, 0.500000, - 0.500000, 0.500000, 0.500000, - -0.500000, 0.500000, 0.500000, - -0.500000, -0.500000, 0.500000, - 0.500000, -0.500000, -0.500000, - 0.500000, 0.500000, -0.500000, - 0.500000, 0.500000, 0.500000f, - 0.500000, -0.500000, 0.500000f -}; - -static const char *ObjModel = - "o 1\n" - "\n" - "# Vertex list\n" - "\n" - "v -0.5 -0.5 0.5\n" - "v -0.5 -0.5 -0.5\n" - "v -0.5 0.5 -0.5\n" - "v -0.5 0.5 0.5\n" - "v 0.5 -0.5 0.5\n" - "v 0.5 -0.5 -0.5\n" - "v 0.5 0.5 -0.5\n" - "v 0.5 0.5 0.5\n" - "\n" - "# Point / Line / Face list\n" - "\n" - "g Box01\n" - "usemtl Default\n" - "f 4 3 2 1\n" - "f 2 6 5 1\n" - "f 3 7 6 2\n" - "f 8 7 3 4\n" - "f 5 8 4 1\n" - "f 6 7 8 5\n" - "\n" - "# End of file\n"; - -static const char *ObjModel_Issue1111 = - "o 1\n" - "\n" - "# Vertex list\n" - "\n" - "v -0.5 -0.5 0.5\n" - "v -0.5 -0.5 -0.5\n" - "v -0.5 0.5 -0.5\n" - "\n" - "usemtl\n" - "f 1 2 3\n" - "\n" - "# End of file\n"; - -class utObjImportExport : public AbstractImportExportBase { -protected: - void SetUp() override { - m_im = new Assimp::Importer; - } - - void TearDown() override { - delete m_im; - m_im = nullptr; - } - - aiScene *createScene() { - aiScene *expScene = new aiScene; - expScene->mNumMeshes = 1; - expScene->mMeshes = new aiMesh *[1]; - aiMesh *mesh = new aiMesh; - mesh->mName.Set("Box01"); - mesh->mNumVertices = 24; - mesh->mVertices = new aiVector3D[24]; - ::memcpy(&mesh->mVertices->x, &VertComponents[0], sizeof(float) * 24 * 3); - mesh->mNumFaces = 6; - mesh->mFaces = new aiFace[mesh->mNumFaces]; - - mesh->mFaces[0].mNumIndices = 4; - mesh->mFaces[0].mIndices = new unsigned int[mesh->mFaces[0].mNumIndices]; - mesh->mFaces[0].mIndices[0] = 0; - mesh->mFaces[0].mIndices[1] = 1; - mesh->mFaces[0].mIndices[2] = 2; - mesh->mFaces[0].mIndices[3] = 3; - - mesh->mFaces[1].mNumIndices = 4; - mesh->mFaces[1].mIndices = new unsigned int[mesh->mFaces[0].mNumIndices]; - mesh->mFaces[1].mIndices[0] = 4; - mesh->mFaces[1].mIndices[1] = 5; - mesh->mFaces[1].mIndices[2] = 6; - mesh->mFaces[1].mIndices[3] = 7; - - mesh->mFaces[2].mNumIndices = 4; - mesh->mFaces[2].mIndices = new unsigned int[mesh->mFaces[0].mNumIndices]; - mesh->mFaces[2].mIndices[0] = 8; - mesh->mFaces[2].mIndices[1] = 9; - mesh->mFaces[2].mIndices[2] = 10; - mesh->mFaces[2].mIndices[3] = 11; - - mesh->mFaces[3].mNumIndices = 4; - mesh->mFaces[3].mIndices = new unsigned int[mesh->mFaces[0].mNumIndices]; - mesh->mFaces[3].mIndices[0] = 12; - mesh->mFaces[3].mIndices[1] = 13; - mesh->mFaces[3].mIndices[2] = 14; - mesh->mFaces[3].mIndices[3] = 15; - - mesh->mFaces[4].mNumIndices = 4; - mesh->mFaces[4].mIndices = new unsigned int[mesh->mFaces[0].mNumIndices]; - mesh->mFaces[4].mIndices[0] = 16; - mesh->mFaces[4].mIndices[1] = 17; - mesh->mFaces[4].mIndices[2] = 18; - mesh->mFaces[4].mIndices[3] = 19; - - mesh->mFaces[5].mNumIndices = 4; - mesh->mFaces[5].mIndices = new unsigned int[mesh->mFaces[0].mNumIndices]; - mesh->mFaces[5].mIndices[0] = 20; - mesh->mFaces[5].mIndices[1] = 21; - mesh->mFaces[5].mIndices[2] = 22; - mesh->mFaces[5].mIndices[3] = 23; - - expScene->mMeshes[0] = mesh; - - expScene->mNumMaterials = 1; - expScene->mMaterials = new aiMaterial *[expScene->mNumMaterials]; - - return expScene; - } - - bool importerTest() override { - ::Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/OBJ/spider.obj", aiProcess_ValidateDataStructure); - return nullptr != scene; - } - -#ifndef ASSIMP_BUILD_NO_EXPORT - - bool exporterTest() override { - ::Assimp::Importer importer; - ::Assimp::Exporter exporter; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/OBJ/spider.obj", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); - EXPECT_EQ(aiReturn_SUCCESS, exporter.Export(scene, "obj", ASSIMP_TEST_MODELS_DIR "/OBJ/spider_out.obj")); - EXPECT_EQ(aiReturn_SUCCESS, exporter.Export(scene, "objnomtl", ASSIMP_TEST_MODELS_DIR "/OBJ/spider_nomtl_out.obj")); - - return true; - } - -#endif // ASSIMP_BUILD_NO_EXPORT - -protected: - ::Assimp::Importer *m_im; - aiScene *m_expectedScene; -}; - -TEST_F(utObjImportExport, importObjFromFileTest) { - EXPECT_TRUE(importerTest()); -} - -#ifndef ASSIMP_BUILD_NO_EXPORT - -TEST_F(utObjImportExport, exportObjFromFileTest) { - EXPECT_TRUE(exporterTest()); -} - -#endif // ASSIMP_BUILD_NO_EXPORT - -TEST_F(utObjImportExport, obj_import_test) { - const aiScene *scene = m_im->ReadFileFromMemory((void *)ObjModel, strlen(ObjModel), 0); - aiScene *expected = createScene(); - EXPECT_NE(nullptr, scene); - - SceneDiffer differ; - EXPECT_TRUE(differ.isEqual(expected, scene)); - differ.showReport(); - - m_im->FreeScene(); - for (unsigned int i = 0; i < expected->mNumMeshes; ++i) { - delete expected->mMeshes[i]; - } - delete[] expected->mMeshes; - expected->mMeshes = nullptr; - delete[] expected->mMaterials; - expected->mMaterials = nullptr; - delete expected; -} - -TEST_F(utObjImportExport, issue1111_no_mat_name_Test) { - const aiScene *scene = m_im->ReadFileFromMemory((void *)ObjModel_Issue1111, strlen(ObjModel_Issue1111), 0); - EXPECT_NE(nullptr, scene); -} - -TEST_F(utObjImportExport, issue809_vertex_color_Test) { - ::Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/OBJ/cube_with_vertexcolors.obj", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); - -#ifndef ASSIMP_BUILD_NO_EXPORT - ::Assimp::Exporter exporter; - EXPECT_EQ(aiReturn_SUCCESS, exporter.Export(scene, "obj", ASSIMP_TEST_MODELS_DIR "/OBJ/test_out.obj")); -#endif // ASSIMP_BUILD_NO_EXPORT -} - -TEST_F(utObjImportExport, issue1923_vertex_color_Test) { - ::Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/OBJ/cube_with_vertexcolors_uni.obj", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); - - scene = importer.GetOrphanedScene(); - -#ifndef ASSIMP_BUILD_NO_EXPORT - ::Assimp::Exporter exporter; - const aiExportDataBlob *blob = exporter.ExportToBlob(scene, "obj"); - EXPECT_NE(nullptr, blob); - - const aiScene *sceneReImport = importer.ReadFileFromMemory(blob->data, blob->size, aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); - - SceneDiffer differ; - EXPECT_TRUE(differ.isEqual(scene, sceneReImport)); -#endif // ASSIMP_BUILD_NO_EXPORT - - delete scene; -} - -TEST_F(utObjImportExport, issue1453_segfault) { - static const char *curObjModel = - "v 0.0 0.0 0.0\n" - "v 0.0 0.0 1.0\n" - "v 0.0 1.0 0.0\n" - "v 0.0 1.0 1.0\n" - "v 1.0 0.0 0.0\n" - "v 1.0 0.0 1.0\n" - "v 1.0 1.0 0.0\n" - "v 1.0 1.0 1.0\nB"; - - Assimp::Importer myimporter; - const aiScene *scene = myimporter.ReadFileFromMemory(curObjModel, strlen(curObjModel), aiProcess_ValidateDataStructure); - EXPECT_EQ(nullptr, scene); -} - -TEST_F(utObjImportExport, relative_indices_Test) { - static const char *curObjModel = - "v -0.500000 0.000000 0.400000\n" - "v -0.500000 0.000000 -0.800000\n" - "v -0.500000 1.000000 -0.800000\n" - "v -0.500000 1.000000 0.400000\n" - "f -4 -3 -2 -1\nB"; - - Assimp::Importer myimporter; - const aiScene *scene = myimporter.ReadFileFromMemory(curObjModel, strlen(curObjModel), aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); - - EXPECT_EQ(scene->mNumMeshes, 1U); - const aiMesh *mesh = scene->mMeshes[0]; - EXPECT_EQ(mesh->mNumVertices, 4U); - EXPECT_EQ(mesh->mNumFaces, 1U); - const aiFace face = mesh->mFaces[0]; - EXPECT_EQ(face.mNumIndices, 4U); - for (unsigned int i = 0; i < face.mNumIndices; ++i) { - EXPECT_EQ(face.mIndices[i], i); - } -} - -TEST_F(utObjImportExport, homogeneous_coordinates_Test) { - static const char *curObjModel = - "v -0.500000 0.000000 0.400000 0.50000\n" - "v -0.500000 0.000000 -0.800000 1.00000\n" - "v 0.500000 1.000000 -0.800000 0.5000\n" - "f 1 2 3\nB"; - - Assimp::Importer myimporter; - const aiScene *scene = myimporter.ReadFileFromMemory(curObjModel, strlen(curObjModel), aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); - - EXPECT_EQ(scene->mNumMeshes, 1U); - const aiMesh *mesh = scene->mMeshes[0]; - EXPECT_EQ(mesh->mNumVertices, 3U); - EXPECT_EQ(mesh->mNumFaces, 1U); - const aiFace face = mesh->mFaces[0]; - EXPECT_EQ(face.mNumIndices, 3U); - const aiVector3D vertice = mesh->mVertices[0]; - EXPECT_EQ(vertice.x, -1.0f); - EXPECT_EQ(vertice.y, 0.0f); - EXPECT_EQ(vertice.z, 0.8f); -} - -TEST_F(utObjImportExport, homogeneous_coordinates_divide_by_zero_Test) { - static const char *curObjModel = - "v -0.500000 0.000000 0.400000 0.\n" - "v -0.500000 0.000000 -0.800000 1.00000\n" - "v 0.500000 1.000000 -0.800000 0.5000\n" - "f 1 2 3\nB"; - - Assimp::Importer myimporter; - const aiScene *scene = myimporter.ReadFileFromMemory(curObjModel, std::strlen(curObjModel), aiProcess_ValidateDataStructure); - EXPECT_EQ(nullptr, scene); -} - -TEST_F(utObjImportExport, 0based_array_Test) { - static const char *curObjModel = - "v -0.500000 0.000000 0.400000\n" - "v -0.500000 0.000000 -0.800000\n" - "v -0.500000 1.000000 -0.800000\n" - "f 0 1 2\nB"; - - Assimp::Importer myImporter; - const aiScene *scene = myImporter.ReadFileFromMemory(curObjModel, strlen(curObjModel), 0); - EXPECT_EQ(nullptr, scene); -} - -TEST_F(utObjImportExport, invalid_normals_uvs) { - static const char *curObjModel = - "v -0.500000 0.000000 0.400000\n" - "v -0.500000 0.000000 -0.800000\n" - "v -0.500000 1.000000 -0.800000\n" - "vt 0 0\n" - "vn 0 1 0\n" - "f 1/1/1 1/1/1 2/2/2\nB"; - - Assimp::Importer myImporter; - const aiScene *scene = myImporter.ReadFileFromMemory(curObjModel, strlen(curObjModel), 0); - EXPECT_NE(nullptr, scene); -} - -TEST_F(utObjImportExport, no_vt_just_vns) { - static const char *curObjModel = - "v 0 0 0\n" - "v 0 0 0\n" - "v 0 0 0\n" - "v 0 0 0\n" - "v 0 0 0\n" - "v 0 0 0\n" - "v 0 0 0\n" - "v 0 0 0\n" - "v 0 0 0\n" - "v 0 0 0\n" - "v 10 0 0\n" - "v 0 10 0\n" - "vn 0 0 1\n" - "vn 0 0 1\n" - "vn 0 0 1\n" - "vn 0 0 1\n" - "vn 0 0 1\n" - "vn 0 0 1\n" - "vn 0 0 1\n" - "vn 0 0 1\n" - "vn 0 0 1\n" - "vn 0 0 1\n" - "vn 0 0 1\n" - "vn 0 0 1\n" - "f 10/10 11/11 12/12\n"; - - Assimp::Importer myImporter; - const aiScene *scene = myImporter.ReadFileFromMemory(curObjModel, strlen(curObjModel), 0); - EXPECT_NE(nullptr, scene); -} - -TEST_F(utObjImportExport, mtllib_after_g) { - ::Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/OBJ/cube_mtllib_after_g.obj", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); - - EXPECT_EQ(scene->mNumMeshes, 1U); - const aiMesh *mesh = scene->mMeshes[0]; - const aiMaterial *mat = scene->mMaterials[mesh->mMaterialIndex]; - aiString name; - ASSERT_EQ(aiReturn_SUCCESS, mat->Get(AI_MATKEY_NAME, name)); - EXPECT_STREQ("MyMaterial", name.C_Str()); -} - -TEST_F(utObjImportExport, import_point_cloud) { - ::Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/OBJ/point_cloud.obj", 0); - ASSERT_NE(nullptr, scene); -} - -TEST_F(utObjImportExport, import_without_linend) { - Assimp::Importer myImporter; - const aiScene *scene = myImporter.ReadFile(ASSIMP_TEST_MODELS_DIR "/OBJ/box_without_lineending.obj", 0); - ASSERT_NE(nullptr, scene); -} - -TEST_F(utObjImportExport, import_with_line_continuations) { - static const char *curObjModel = - "v -0.5 -0.5 0.5\n" - "v -0.5 \\\n" - " -0.5 -0.5\n" - "v -0.5 \\\n" - " 0.5 \\\n" - " -0.5\n" - "f 1 2 3\n"; - - Assimp::Importer myImporter; - const aiScene *scene = myImporter.ReadFileFromMemory(curObjModel, strlen(curObjModel), 0); - EXPECT_NE(nullptr, scene); - - EXPECT_EQ(scene->mNumMeshes, 1U); - EXPECT_EQ(scene->mMeshes[0]->mNumVertices, 3U); - EXPECT_EQ(scene->mMeshes[0]->mNumFaces, 1U); - - auto vertices = scene->mMeshes[0]->mVertices; - const float threshold = 0.0001f; - - EXPECT_NEAR(vertices[0].x, -0.5f, threshold); - EXPECT_NEAR(vertices[0].y, -0.5f, threshold); - EXPECT_NEAR(vertices[0].z, 0.5f, threshold); - - EXPECT_NEAR(vertices[1].x, -0.5f, threshold); - EXPECT_NEAR(vertices[1].y, -0.5f, threshold); - EXPECT_NEAR(vertices[1].z, -0.5f, threshold); - - EXPECT_NEAR(vertices[2].x, -0.5f, threshold); - EXPECT_NEAR(vertices[2].y, 0.5f, threshold); - EXPECT_NEAR(vertices[2].z, -0.5f, threshold); -} diff --git a/libs/assimp/test/unit/utObjTools.cpp b/libs/assimp/test/unit/utObjTools.cpp deleted file mode 100644 index 744e226..0000000 --- a/libs/assimp/test/unit/utObjTools.cpp +++ /dev/null @@ -1,116 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "AssetLib/Obj/ObjFileParser.h" -#include "AssetLib/Obj/ObjTools.h" -#include "UnitTestPCH.h" - -using namespace ::Assimp; - -class utObjTools : public ::testing::Test { - // empty -}; - -class TestObjFileParser : public ObjFileParser { -public: - TestObjFileParser() : - ObjFileParser() { - // empty - } - - ~TestObjFileParser() { - // empty - } - - void testCopyNextWord(char *pBuffer, size_t length) { - copyNextWord(pBuffer, length); - } - - size_t testGetNumComponentsInDataDefinition() { - return getNumComponentsInDataDefinition(); - } -}; - -TEST_F(utObjTools, skipDataLine_OneLine_Success) { - std::vector<char> buffer; - std::string data("v -0.5 -0.5 0.5\nend"); - buffer.resize(data.size()); - ::memcpy(&buffer[0], &data[0], data.size()); - std::vector<char>::iterator itBegin(buffer.begin()), itEnd(buffer.end()); - unsigned int line = 0; - std::vector<char>::iterator current = skipLine<std::vector<char>::iterator>(itBegin, itEnd, line); - EXPECT_EQ('e', *current); -} - -TEST_F(utObjTools, skipDataLine_TwoLines_Success) { - TestObjFileParser test_parser; - std::string data("vn -2.061493116917992e-15 -0.9009688496589661 \\\n-0.4338837265968323"); - std::vector<char> buffer; - buffer.resize(data.size()); - ::memcpy(&buffer[0], &data[0], data.size()); - test_parser.setBuffer(buffer); - static const size_t Size = 4096UL; - char data_buffer[Size]; - - test_parser.testCopyNextWord(data_buffer, Size); - EXPECT_EQ(0, strncmp(data_buffer, "vn", 2)); - - test_parser.testCopyNextWord(data_buffer, Size); - EXPECT_EQ(data_buffer[0], '-'); - - test_parser.testCopyNextWord(data_buffer, Size); - EXPECT_EQ(data_buffer[0], '-'); - - test_parser.testCopyNextWord(data_buffer, Size); - EXPECT_EQ(data_buffer[0], '-'); -} - -TEST_F(utObjTools, countComponents_TwoLines_Success) { - TestObjFileParser test_parser; - std::string data("-2.061493116917992e-15 -0.9009688496589661 \\\n-0.4338837265968323"); - std::vector<char> buffer; - buffer.resize(data.size() + 1); - ::memcpy(&buffer[0], &data[0], data.size()); - buffer[buffer.size() - 1] = '\0'; - test_parser.setBuffer(buffer); - - size_t numComps = test_parser.testGetNumComponentsInDataDefinition(); - EXPECT_EQ(3U, numComps); -} diff --git a/libs/assimp/test/unit/utOpenGEXImportExport.cpp b/libs/assimp/test/unit/utOpenGEXImportExport.cpp deleted file mode 100644 index a7b6820..0000000 --- a/libs/assimp/test/unit/utOpenGEXImportExport.cpp +++ /dev/null @@ -1,72 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ - -#include "AbstractImportExportBase.h" -#include "UnitTestPCH.h" - -#include <assimp/Importer.hpp> - -using namespace Assimp; - -class utOpenGEXImportExport : public AbstractImportExportBase { -public: - bool importerTest() override { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/OpenGEX/Example.ogex", 0); - return nullptr != scene; - } -}; - -TEST_F(utOpenGEXImportExport, importLWSFromFileTest) { - EXPECT_TRUE(importerTest()); -} - -TEST_F(utOpenGEXImportExport, Importissue1262_NoCrash) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/OpenGEX/light_issue1262.ogex", 0); - EXPECT_NE(nullptr, scene); -} - -TEST_F(utOpenGEXImportExport, Importissue1340_EmptyCameraObject) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/OpenGEX/empty_camera.ogex", 0); - EXPECT_NE(nullptr, scene); -} diff --git a/libs/assimp/test/unit/utPLYImportExport.cpp b/libs/assimp/test/unit/utPLYImportExport.cpp deleted file mode 100644 index 2edbdd7..0000000 --- a/libs/assimp/test/unit/utPLYImportExport.cpp +++ /dev/null @@ -1,182 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "UnitTestPCH.h" - -#include "AbstractImportExportBase.h" -#include <assimp/postprocess.h> -#include <assimp/scene.h> -#include <assimp/Exporter.hpp> -#include <assimp/Importer.hpp> - -using namespace ::Assimp; - -class utPLYImportExport : public AbstractImportExportBase { -public: - virtual bool importerTest() { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/PLY/cube.ply", aiProcess_ValidateDataStructure); - EXPECT_EQ(1u, scene->mNumMeshes); - EXPECT_NE(nullptr, scene->mMeshes[0]); - if (nullptr == scene->mMeshes[0]) { - return false; - } - EXPECT_EQ(8u, scene->mMeshes[0]->mNumVertices); - EXPECT_EQ(6u, scene->mMeshes[0]->mNumFaces); - - return (nullptr != scene); - } - -#ifndef ASSIMP_BUILD_NO_EXPORT - virtual bool exporterTest() { - Importer importer; - Exporter exporter; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/PLY/cube.ply", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); - EXPECT_EQ(aiReturn_SUCCESS, exporter.Export(scene, "ply", ASSIMP_TEST_MODELS_DIR "/PLY/cube_out.ply")); - - return true; - } -#endif // ASSIMP_BUILD_NO_EXPORT -}; - -TEST_F(utPLYImportExport, importTest_Success) { - EXPECT_TRUE(importerTest()); -} - -#ifndef ASSIMP_BUILD_NO_EXPORT - -TEST_F(utPLYImportExport, exportTest_Success) { - EXPECT_TRUE(exporterTest()); -} - -#endif // ASSIMP_BUILD_NO_EXPORT - -//Test issue 1623, crash when loading two PLY files in a row -TEST_F(utPLYImportExport, importerMultipleTest) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/PLY/cube.ply", aiProcess_ValidateDataStructure); - - EXPECT_NE(nullptr, scene); - - scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/PLY/cube.ply", aiProcess_ValidateDataStructure); - - EXPECT_NE(nullptr, scene); - EXPECT_NE(nullptr, scene->mMeshes[0]); - EXPECT_EQ(6u, scene->mMeshes[0]->mNumFaces); -} - -TEST_F(utPLYImportExport, importPLYwithUV) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/PLY/cube_uv.ply", aiProcess_ValidateDataStructure); - - EXPECT_NE(nullptr, scene); - EXPECT_NE(nullptr, scene->mMeshes[0]); - //This test model is using n-gons, so 6 faces instead of 12 tris - EXPECT_EQ(6u, scene->mMeshes[0]->mNumFaces); - EXPECT_EQ(aiPrimitiveType_POLYGON, scene->mMeshes[0]->mPrimitiveTypes); - EXPECT_EQ(true, scene->mMeshes[0]->HasTextureCoords(0)); -} - -TEST_F(utPLYImportExport, importBinaryPLY) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/PLY/cube_binary.ply", aiProcess_ValidateDataStructure); - - EXPECT_NE(nullptr, scene); - EXPECT_NE(nullptr, scene->mMeshes[0]); - //This test model is double sided, so 12 faces instead of 6 - EXPECT_EQ(12u, scene->mMeshes[0]->mNumFaces); -} - -TEST_F(utPLYImportExport, vertexColorTest) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/PLY/float-color.ply", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); - EXPECT_EQ(1u, scene->mMeshes[0]->mNumFaces); - EXPECT_EQ(aiPrimitiveType_TRIANGLE, scene->mMeshes[0]->mPrimitiveTypes); - EXPECT_EQ(true, scene->mMeshes[0]->HasVertexColors(0)); - - auto first_face = scene->mMeshes[0]->mFaces[0]; - EXPECT_EQ(3u, first_face.mNumIndices); - EXPECT_EQ(0u, first_face.mIndices[0]); - EXPECT_EQ(1u, first_face.mIndices[1]); - EXPECT_EQ(2u, first_face.mIndices[2]); -} - -// Test issue #623, PLY importer should not automatically create faces -TEST_F(utPLYImportExport, pointcloudTest) { - Assimp::Importer importer; - - //Could not use aiProcess_ValidateDataStructure since it's missing faces. - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/PLY/issue623.ply", 0); - EXPECT_NE(nullptr, scene); - - EXPECT_EQ(1u, scene->mNumMeshes); - EXPECT_NE(nullptr, scene->mMeshes[0]); - EXPECT_EQ(24u, scene->mMeshes[0]->mNumVertices); - EXPECT_EQ(aiPrimitiveType::aiPrimitiveType_POINT, scene->mMeshes[0]->mPrimitiveTypes); - EXPECT_EQ(0u, scene->mMeshes[0]->mNumFaces); -} - -static const char *test_file = - "ply\n" - "format ascii 1.0\n" - "element vertex 4\n" - "property float x\n" - "property float y\n" - "property float z\n" - "property uchar red\n" - "property uchar green\n" - "property uchar blue\n" - "property float nx\n" - "property float ny\n" - "property float nz\n" - "end_header\n" - "0.0 0.0 0.0 255 255 255 0.0 1.0 0.0\n" - "0.0 0.0 1.0 255 0 255 0.0 0.0 1.0\n" - "0.0 1.0 0.0 255 255 0 1.0 0.0 0.0\n" - "0.0 1.0 1.0 0 255 255 1.0 1.0 0.0\n"; - -TEST_F(utPLYImportExport, parseErrorTest) { - Assimp::Importer importer; - //Could not use aiProcess_ValidateDataStructure since it's missing faces. - const aiScene *scene = importer.ReadFileFromMemory(test_file, strlen(test_file), 0); - EXPECT_NE(nullptr, scene); -} diff --git a/libs/assimp/test/unit/utPMXImporter.cpp b/libs/assimp/test/unit/utPMXImporter.cpp deleted file mode 100644 index a0d663d..0000000 --- a/libs/assimp/test/unit/utPMXImporter.cpp +++ /dev/null @@ -1,62 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ - -#include "UnitTestPCH.h" -#include "AbstractImportExportBase.h" -#include "AssetLib/MMD/MMDImporter.h" - -#include <assimp/Importer.hpp> - -using namespace ::Assimp; - -class utPMXImporter : public AbstractImportExportBase { -public: - virtual bool importerTest() { - Assimp::Importer importer; - /*const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/../models-nonbsd/MMD/Alicia_blade.pmx", aiProcess_ValidateDataStructure ); - return nullptr != scene;*/ - return true; - } -}; - -TEST_F( utPMXImporter, importTest ) { - EXPECT_TRUE( importerTest() ); -} diff --git a/libs/assimp/test/unit/utPretransformVertices.cpp b/libs/assimp/test/unit/utPretransformVertices.cpp deleted file mode 100644 index b22fdf7..0000000 --- a/libs/assimp/test/unit/utPretransformVertices.cpp +++ /dev/null @@ -1,157 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "UnitTestPCH.h" - -#include "PostProcessing/PretransformVertices.h" -#include <assimp/scene.h> - -using namespace std; -using namespace Assimp; - -class PretransformVerticesTest : public ::testing::Test { -public: - PretransformVerticesTest() : - Test(), mScene(nullptr), mProcess(nullptr) { - // empty - } - -protected: - virtual void SetUp(); - virtual void TearDown(); - -protected: - aiScene *mScene; - PretransformVertices *mProcess; -}; - -// ------------------------------------------------------------------------------------------------ -void AddNodes(unsigned int num, aiNode *father, unsigned int depth) { - father->mChildren = new aiNode *[father->mNumChildren = 5]; - for (unsigned int i = 0; i < 5; ++i) { - aiNode *nd = father->mChildren[i] = new aiNode(); - - nd->mName.length = sprintf(nd->mName.data, "%i%i", depth, i); - - // spawn two meshes - nd->mMeshes = new unsigned int[nd->mNumMeshes = 2]; - nd->mMeshes[0] = num * 5 + i; - nd->mMeshes[1] = 24 - (num * 5 + i); // mesh 12 is special ... it references the same mesh twice - - // setup an unique transformation matrix - nd->mTransformation.a1 = num * 5.f + i + 1; - } - - if (depth > 1) { - for (unsigned int i = 0; i < 5; ++i) { - AddNodes(i, father->mChildren[i], depth - 1); - } - } -} - -// ------------------------------------------------------------------------------------------------ -void PretransformVerticesTest::SetUp() { - mScene = new aiScene(); - - // add 5 empty materials - mScene->mMaterials = new aiMaterial *[mScene->mNumMaterials = 5]; - for (unsigned int i = 0; i < 5; ++i) { - mScene->mMaterials[i] = new aiMaterial(); - } - - // add 25 test meshes - mScene->mMeshes = new aiMesh *[mScene->mNumMeshes = 25]; - for (unsigned int i = 0; i < 25; ++i) { - aiMesh *mesh = mScene->mMeshes[i] = new aiMesh(); - - mesh->mPrimitiveTypes = aiPrimitiveType_POINT; - mesh->mFaces = new aiFace[mesh->mNumFaces = 10 + i]; - mesh->mVertices = new aiVector3D[mesh->mNumVertices = mesh->mNumFaces]; - for (unsigned int a = 0; a < mesh->mNumFaces; ++a) { - aiFace &f = mesh->mFaces[a]; - f.mIndices = new unsigned int[f.mNumIndices = 1]; - f.mIndices[0] = a * 3; - - mesh->mVertices[a] = aiVector3D((float)i, (float)a, 0.f); - } - mesh->mMaterialIndex = i % 5; - - if (i % 2) { - mesh->mNormals = new aiVector3D[mesh->mNumVertices]; - for (unsigned int normalIdx = 0; normalIdx < mesh->mNumVertices; ++normalIdx) { - mesh->mNormals[normalIdx].x = 1.0f; - mesh->mNormals[normalIdx].y = 1.0f; - mesh->mNormals[normalIdx].z = 1.0f; - mesh->mNormals[normalIdx].Normalize(); - } - } - } - - // construct some nodes (1+25) - mScene->mRootNode = new aiNode(); - mScene->mRootNode->mName.Set("Root"); - AddNodes(0, mScene->mRootNode, 2); - - mProcess = new PretransformVertices(); -} - -// ------------------------------------------------------------------------------------------------ -void PretransformVerticesTest::TearDown() { - delete mScene; - delete mProcess; -} - -// ------------------------------------------------------------------------------------------------ -TEST_F(PretransformVerticesTest, testProcessCollapseHierarchy) { - mProcess->KeepHierarchy(false); - mProcess->Execute(mScene); - - EXPECT_EQ(5U, mScene->mNumMaterials); - EXPECT_EQ(10U, mScene->mNumMeshes); // every second mesh has normals -} - -// ------------------------------------------------------------------------------------------------ -TEST_F(PretransformVerticesTest, testProcessKeepHierarchy) { - mProcess->KeepHierarchy(true); - mProcess->Execute(mScene); - - EXPECT_EQ(5U, mScene->mNumMaterials); - EXPECT_EQ(49U, mScene->mNumMeshes); // see note on mesh 12 above -} diff --git a/libs/assimp/test/unit/utProfiler.cpp b/libs/assimp/test/unit/utProfiler.cpp deleted file mode 100644 index 6738d56..0000000 --- a/libs/assimp/test/unit/utProfiler.cpp +++ /dev/null @@ -1,77 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "UnitTestPCH.h" -#include "UTLogStream.h" -#include <assimp/Profiler.h> -#include <assimp/DefaultLogger.hpp> - -using namespace ::Assimp; -using namespace ::Assimp::Profiling; - -class utProfiler : public ::testing::Test { -public: - LogStream *m_stream; - - /*virtual void SetUp() { - m_stream = new UTLogStream; - DefaultLogger::create(); - DefaultLogger::get()->attachStream( m_stream ); - } - - virtual void TearDown() { - DefaultLogger::get()->detatchStream( m_stream ); - m_stream = nullptr; - }*/ -}; - -TEST_F( utProfiler, addRegion_success ) { - Profiler myProfiler; - myProfiler.BeginRegion( "t1" ); - for ( int i=0; i<10; i++ ) { - volatile int j=0; - j++; - } - myProfiler.EndRegion( "t1" ); - //UTLogStream *stream( (UTLogStream*) m_stream ); - //EXPECT_FALSE( stream->m_messages.empty() ); -} diff --git a/libs/assimp/test/unit/utQ3DImportExport.cpp b/libs/assimp/test/unit/utQ3DImportExport.cpp deleted file mode 100644 index e5396a6..0000000 --- a/libs/assimp/test/unit/utQ3DImportExport.cpp +++ /dev/null @@ -1,61 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "UnitTestPCH.h" - -#include "AbstractImportExportBase.h" - -#include <assimp/postprocess.h> -#include <assimp/Importer.hpp> - -using namespace Assimp; - -class utQ3DImportExport : public AbstractImportExportBase { -public: - virtual bool importerTest() { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/Q3D/earth.q3o", aiProcess_ValidateDataStructure); - return nullptr != scene; - } -}; - -TEST_F(utQ3DImportExport, importTest) { - EXPECT_TRUE(importerTest()); -} diff --git a/libs/assimp/test/unit/utRemoveComments.cpp b/libs/assimp/test/unit/utRemoveComments.cpp deleted file mode 100644 index 44fb56e..0000000 --- a/libs/assimp/test/unit/utRemoveComments.cpp +++ /dev/null @@ -1,92 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "UnitTestPCH.h" - -#include <assimp/RemoveComments.h> - -using namespace std; -using namespace Assimp; - -// ------------------------------------------------------------------------------------------------ -TEST(RemoveCommentsTest, testSingleLineComments) { - const char *szTest = "int i = 0; \n" - "if (4 == //)\n" - "\ttrue) { // do something here \n" - "\t// hello ... and bye //\n"; - - const size_t len(::strlen(szTest) + 1); - char *szTest2 = new char[len]; - ::strncpy(szTest2, szTest, len); - - const char *szTestResult = "int i = 0; \n" - "if (4 == \n" - "\ttrue) { \n" - "\t \n"; - - CommentRemover::RemoveLineComments("//", szTest2, ' '); - EXPECT_STREQ(szTestResult, szTest2); - - delete[] szTest2; -} - -// ------------------------------------------------------------------------------------------------ -TEST(RemoveCommentsTest, testMultiLineComments) { - const char *szTest = - "/* comment to be removed */\n" - "valid text /* \n " - " comment across multiple lines */" - " / * Incomplete comment */ /* /* multiple comments */ */"; - - const char *szTestResult = - " \n" - "valid text " - " " - " / * Incomplete comment */ */"; - - const size_t len(::strlen(szTest) + 1); - char *szTest2 = new char[len]; - ::strncpy(szTest2, szTest, len); - - CommentRemover::RemoveMultiLineComments("/*", "*/", szTest2, ' '); - EXPECT_STREQ(szTestResult, szTest2); - - delete[] szTest2; -} diff --git a/libs/assimp/test/unit/utRemoveComponent.cpp b/libs/assimp/test/unit/utRemoveComponent.cpp deleted file mode 100644 index 42fb85f..0000000 --- a/libs/assimp/test/unit/utRemoveComponent.cpp +++ /dev/null @@ -1,208 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "UnitTestPCH.h" - -#include "Material/MaterialSystem.h" -#include "PostProcessing/RemoveVCProcess.h" -#include <assimp/scene.h> - -using namespace std; -using namespace Assimp; - -class RemoveVCProcessTest : public ::testing::Test { -public: - virtual void SetUp(); - virtual void TearDown(); - -protected: - RemoveVCProcess *piProcess; - aiScene *pScene; -}; - -// ------------------------------------------------------------------------------------------------ -void RemoveVCProcessTest::SetUp() { - // construct the process - piProcess = new RemoveVCProcess(); - pScene = new aiScene(); - - // fill the scene .. - pScene->mMeshes = new aiMesh *[pScene->mNumMeshes = 2]; - pScene->mMeshes[0] = new aiMesh(); - pScene->mMeshes[1] = new aiMesh(); - - pScene->mMeshes[0]->mNumVertices = 120; - pScene->mMeshes[0]->mVertices = new aiVector3D[120]; - pScene->mMeshes[0]->mNormals = new aiVector3D[120]; - pScene->mMeshes[0]->mTextureCoords[0] = new aiVector3D[120]; - pScene->mMeshes[0]->mTextureCoords[1] = new aiVector3D[120]; - pScene->mMeshes[0]->mTextureCoords[2] = new aiVector3D[120]; - pScene->mMeshes[0]->mTextureCoords[3] = new aiVector3D[120]; - - pScene->mMeshes[1]->mNumVertices = 120; - pScene->mMeshes[1]->mVertices = new aiVector3D[120]; - - pScene->mAnimations = new aiAnimation *[pScene->mNumAnimations = 2]; - pScene->mAnimations[0] = new aiAnimation(); - pScene->mAnimations[1] = new aiAnimation(); - - pScene->mTextures = new aiTexture *[pScene->mNumTextures = 2]; - pScene->mTextures[0] = new aiTexture(); - pScene->mTextures[1] = new aiTexture(); - - pScene->mMaterials = new aiMaterial *[pScene->mNumMaterials = 2]; - pScene->mMaterials[0] = new aiMaterial(); - pScene->mMaterials[1] = new aiMaterial(); - - pScene->mLights = new aiLight *[pScene->mNumLights = 2]; - pScene->mLights[0] = new aiLight(); - pScene->mLights[1] = new aiLight(); - - pScene->mCameras = new aiCamera *[pScene->mNumCameras = 2]; - pScene->mCameras[0] = new aiCamera(); - pScene->mCameras[1] = new aiCamera(); -} - -// ------------------------------------------------------------------------------------------------ -void RemoveVCProcessTest::TearDown() { - delete pScene; - delete piProcess; -} - -// ------------------------------------------------------------------------------------------------ -TEST_F(RemoveVCProcessTest, testMeshRemove) { - piProcess->SetDeleteFlags(aiComponent_MESHES); - piProcess->Execute(pScene); - - EXPECT_TRUE(NULL == pScene->mMeshes); - EXPECT_EQ(0U, pScene->mNumMeshes); - EXPECT_TRUE(pScene->mFlags == AI_SCENE_FLAGS_INCOMPLETE); -} - -// ------------------------------------------------------------------------------------------------ -TEST_F(RemoveVCProcessTest, testAnimRemove) { - piProcess->SetDeleteFlags(aiComponent_ANIMATIONS); - piProcess->Execute(pScene); - - EXPECT_TRUE(NULL == pScene->mAnimations); - EXPECT_EQ(0U, pScene->mNumAnimations); - EXPECT_EQ(0U, pScene->mFlags); -} - -// ------------------------------------------------------------------------------------------------ -TEST_F(RemoveVCProcessTest, testMaterialRemove) { - piProcess->SetDeleteFlags(aiComponent_MATERIALS); - piProcess->Execute(pScene); - - // there should be one default material now ... - EXPECT_TRUE(1 == pScene->mNumMaterials && - pScene->mMeshes[0]->mMaterialIndex == 0 && - pScene->mMeshes[1]->mMaterialIndex == 0); - EXPECT_EQ(0U, pScene->mFlags); -} - -// ------------------------------------------------------------------------------------------------ -TEST_F(RemoveVCProcessTest, testTextureRemove) { - piProcess->SetDeleteFlags(aiComponent_TEXTURES); - piProcess->Execute(pScene); - - EXPECT_TRUE(NULL == pScene->mTextures); - EXPECT_EQ(0U, pScene->mNumTextures); - EXPECT_EQ(0U, pScene->mFlags); -} - -// ------------------------------------------------------------------------------------------------ -TEST_F(RemoveVCProcessTest, testCameraRemove) { - piProcess->SetDeleteFlags(aiComponent_CAMERAS); - piProcess->Execute(pScene); - - EXPECT_TRUE(NULL == pScene->mCameras); - EXPECT_EQ(0U, pScene->mNumCameras); - EXPECT_EQ(0U, pScene->mFlags); -} - -// ------------------------------------------------------------------------------------------------ -TEST_F(RemoveVCProcessTest, testLightRemove) { - piProcess->SetDeleteFlags(aiComponent_LIGHTS); - piProcess->Execute(pScene); - - EXPECT_TRUE(NULL == pScene->mLights); - EXPECT_EQ(0U, pScene->mNumLights); - EXPECT_EQ(0U, pScene->mFlags); -} - -// ------------------------------------------------------------------------------------------------ -TEST_F(RemoveVCProcessTest, testMeshComponentsRemoveA) { - piProcess->SetDeleteFlags(aiComponent_TEXCOORDSn(1) | aiComponent_TEXCOORDSn(2) | aiComponent_TEXCOORDSn(3)); - piProcess->Execute(pScene); - - EXPECT_TRUE(pScene->mMeshes[0]->mTextureCoords[0] && - !pScene->mMeshes[0]->mTextureCoords[1] && - !pScene->mMeshes[0]->mTextureCoords[2] && - !pScene->mMeshes[0]->mTextureCoords[3]); - EXPECT_EQ(0U, pScene->mFlags); -} - -// ------------------------------------------------------------------------------------------------ -TEST_F(RemoveVCProcessTest, testMeshComponentsRemoveB) { - piProcess->SetDeleteFlags(aiComponent_TEXCOORDSn(1) | aiComponent_NORMALS); - piProcess->Execute(pScene); - - EXPECT_TRUE(pScene->mMeshes[0]->mTextureCoords[0] && - pScene->mMeshes[0]->mTextureCoords[1] && - pScene->mMeshes[0]->mTextureCoords[2] && // shift forward ... - !pScene->mMeshes[0]->mTextureCoords[3] && - !pScene->mMeshes[0]->mNormals); - EXPECT_EQ(0U, pScene->mFlags); -} - -// ------------------------------------------------------------------------------------------------ -TEST_F(RemoveVCProcessTest, testRemoveEverything) { - piProcess->SetDeleteFlags(aiComponent_LIGHTS | aiComponent_ANIMATIONS | - aiComponent_MATERIALS | aiComponent_MESHES | aiComponent_CAMERAS | aiComponent_TEXTURES); - piProcess->Execute(pScene); - EXPECT_EQ(0U, pScene->mNumAnimations); - EXPECT_EQ(0U, pScene->mNumCameras); - EXPECT_EQ(0U, pScene->mNumLights); - EXPECT_EQ(0U, pScene->mNumMeshes); - EXPECT_EQ(0U, pScene->mNumTextures); - // Only the default material should remain. - EXPECT_EQ(1U, pScene->mNumMaterials); -} diff --git a/libs/assimp/test/unit/utRemoveRedundantMaterials.cpp b/libs/assimp/test/unit/utRemoveRedundantMaterials.cpp deleted file mode 100644 index cec4501..0000000 --- a/libs/assimp/test/unit/utRemoveRedundantMaterials.cpp +++ /dev/null @@ -1,177 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "UnitTestPCH.h" - -#include "Material/MaterialSystem.h" -#include "PostProcessing/RemoveRedundantMaterials.h" -#include <assimp/scene.h> - -using namespace std; -using namespace Assimp; - -class RemoveRedundantMatsTest : public ::testing::Test { -public: - virtual void SetUp(); - virtual void TearDown(); - -protected: - RemoveRedundantMatsProcess *piProcess; - aiScene *pcScene1; -}; - -// ------------------------------------------------------------------------------------------------ -aiMaterial *getUniqueMaterial1() { - // setup an unique name for each material - this shouldn't care - aiString mTemp; - mTemp.Set("UniqueMat1"); - - aiMaterial *pcMat = new aiMaterial(); - pcMat->AddProperty(&mTemp, AI_MATKEY_NAME); - float f = 2.0f; - pcMat->AddProperty<float>(&f, 1, AI_MATKEY_BUMPSCALING); - pcMat->AddProperty<float>(&f, 1, AI_MATKEY_SHININESS_STRENGTH); - return pcMat; -} - -// ------------------------------------------------------------------------------------------------ -aiMaterial *getUniqueMaterial2() { - // setup an unique name for each material - this shouldn't care - aiString mTemp; - mTemp.Set("Unique Mat2"); - - aiMaterial *pcMat = new aiMaterial(); - pcMat->AddProperty(&mTemp, AI_MATKEY_NAME); - float f = 4.0f; - int i = 1; - pcMat->AddProperty<float>(&f, 1, AI_MATKEY_BUMPSCALING); - pcMat->AddProperty<int>(&i, 1, AI_MATKEY_ENABLE_WIREFRAME); - return pcMat; -} - -// ------------------------------------------------------------------------------------------------ -aiMaterial *getUniqueMaterial3() { - // setup an unique name for each material - this shouldn't care - aiString mTemp; - mTemp.Set("Complex material name"); - - aiMaterial *pcMat = new aiMaterial(); - pcMat->AddProperty(&mTemp, AI_MATKEY_NAME); - return pcMat; -} - -// ------------------------------------------------------------------------------------------------ -void RemoveRedundantMatsTest::SetUp() { - // construct the process - piProcess = new RemoveRedundantMatsProcess(); - - // create a scene with 5 materials (2 is a duplicate of 0, 3 of 1) - pcScene1 = new aiScene(); - pcScene1->mNumMaterials = 5; - pcScene1->mMaterials = new aiMaterial *[5]; - - pcScene1->mMaterials[0] = getUniqueMaterial1(); - pcScene1->mMaterials[1] = getUniqueMaterial2(); - pcScene1->mMaterials[4] = getUniqueMaterial3(); - - // all materials must be referenced - pcScene1->mNumMeshes = 5; - pcScene1->mMeshes = new aiMesh *[5]; - for (unsigned int i = 0; i < 5; ++i) { - pcScene1->mMeshes[i] = new aiMesh(); - pcScene1->mMeshes[i]->mMaterialIndex = i; - } - - // setup an unique name for each material - this shouldn't care - aiString mTemp; - mTemp.length = 1; - mTemp.data[0] = 48; - mTemp.data[1] = 0; - - aiMaterial *pcMat; - pcScene1->mMaterials[2] = pcMat = new aiMaterial(); - aiMaterial::CopyPropertyList(pcMat, (const aiMaterial *)pcScene1->mMaterials[0]); - pcMat->AddProperty(&mTemp, AI_MATKEY_NAME); - mTemp.data[0]++; - - pcScene1->mMaterials[3] = pcMat = new aiMaterial(); - aiMaterial::CopyPropertyList(pcMat, (const aiMaterial *)pcScene1->mMaterials[1]); - pcMat->AddProperty(&mTemp, AI_MATKEY_NAME); - mTemp.data[0]++; -} - -// ------------------------------------------------------------------------------------------------ -void RemoveRedundantMatsTest::TearDown() { - delete piProcess; - delete pcScene1; -} - -// ------------------------------------------------------------------------------------------------ -TEST_F(RemoveRedundantMatsTest, testRedundantMaterials) { - piProcess->SetFixedMaterialsString(); - - piProcess->Execute(pcScene1); - EXPECT_EQ(3U, pcScene1->mNumMaterials); - EXPECT_TRUE(0 != pcScene1->mMaterials && - 0 != pcScene1->mMaterials[0] && - 0 != pcScene1->mMaterials[1] && - 0 != pcScene1->mMaterials[2]); - - aiString sName; - EXPECT_EQ(AI_SUCCESS, aiGetMaterialString(pcScene1->mMaterials[2], AI_MATKEY_NAME, &sName)); - EXPECT_STREQ("Complex material name", sName.data); -} - -// ------------------------------------------------------------------------------------------------ -TEST_F(RemoveRedundantMatsTest, testRedundantMaterialsWithExcludeList) { - piProcess->SetFixedMaterialsString("\'Unique Mat2\'\t\'Complex material name\' and_another_one_which_we_wont_use"); - - piProcess->Execute(pcScene1); - EXPECT_EQ(4U, pcScene1->mNumMaterials); - EXPECT_TRUE(0 != pcScene1->mMaterials && - 0 != pcScene1->mMaterials[0] && - 0 != pcScene1->mMaterials[1] && - 0 != pcScene1->mMaterials[2] && - 0 != pcScene1->mMaterials[3]); - - aiString sName; - EXPECT_EQ(AI_SUCCESS, aiGetMaterialString(pcScene1->mMaterials[3], AI_MATKEY_NAME, &sName)); - EXPECT_STREQ("Complex material name", sName.data); -} diff --git a/libs/assimp/test/unit/utRemoveVCProcess.cpp b/libs/assimp/test/unit/utRemoveVCProcess.cpp deleted file mode 100644 index b555b0c..0000000 --- a/libs/assimp/test/unit/utRemoveVCProcess.cpp +++ /dev/null @@ -1,76 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "PostProcessing/RemoveVCProcess.h" -#include "UnitTestPCH.h" - -#include <assimp/mesh.h> -#include <assimp/scene.h> - -using namespace ::Assimp; - -class utRevmoveVCProcess : public ::testing::Test { - // empty -}; - -TEST_F(utRevmoveVCProcess, createTest) { - bool ok = true; - try { - RemoveVCProcess *process = new RemoveVCProcess; - delete process; - } catch (...) { - ok = false; - } - EXPECT_TRUE(ok); -} - -TEST_F(utRevmoveVCProcess, issue1266_ProcessMeshTest_NoCrash) { - aiScene *scene = new aiScene; - scene->mNumMeshes = 1; - scene->mMeshes = new aiMesh *[1]; - - aiMesh *mesh = new aiMesh; - mesh->mNumVertices = 1; - mesh->mColors[0] = new aiColor4D[2]; - scene->mMeshes[0] = mesh; - std::unique_ptr<RemoveVCProcess> process(new RemoveVCProcess); - process->Execute(scene); - delete scene; -} diff --git a/libs/assimp/test/unit/utSIBImporter.cpp b/libs/assimp/test/unit/utSIBImporter.cpp deleted file mode 100644 index b36e088..0000000 --- a/libs/assimp/test/unit/utSIBImporter.cpp +++ /dev/null @@ -1,73 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "UnitTestPCH.h" - -#include "AssetLib/SIB/SIBImporter.h" - -#include <assimp/postprocess.h> -#include <assimp/Importer.hpp> - -#include "AbstractImportExportBase.h" - -using namespace ::Assimp; - -class utSIBImporter : public AbstractImportExportBase { -public: - virtual bool importerTest() { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/SIB/heffalump.sib", aiProcess_ValidateDataStructure); - return nullptr != scene; - } -}; - -TEST_F(utSIBImporter, createTest) { - bool ok(true); - try { - SIBImporter myImporter; - } catch (...) { - ok = false; - } - EXPECT_TRUE(ok); -} - -TEST_F(utSIBImporter, importTest) { - EXPECT_TRUE(importerTest()); -} diff --git a/libs/assimp/test/unit/utSMDImportExport.cpp b/libs/assimp/test/unit/utSMDImportExport.cpp deleted file mode 100644 index 08683d5..0000000 --- a/libs/assimp/test/unit/utSMDImportExport.cpp +++ /dev/null @@ -1,77 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "UnitTestPCH.h" - -#include "AbstractImportExportBase.h" -#include "AssetLib/SMD/SMDLoader.h" -#include <assimp/postprocess.h> -#include <assimp/Importer.hpp> - -using namespace ::Assimp; - -class utSMDImporter : public AbstractImportExportBase { -public: - virtual bool importerTest() { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/SMD/triangle.smd", aiProcess_ValidateDataStructure); - return nullptr != scene; - } -}; - -TEST_F(utSMDImporter, createTest) { - bool ok(true); - try { - SMDImporter myImporter; - } catch (...) { - ok = false; - } - EXPECT_TRUE(ok); -} - -TEST_F(utSMDImporter, importTest) { - EXPECT_TRUE(importerTest()); -} - -TEST_F(utSMDImporter, issue_899_Texture_garbage_at_end_of_string_Test) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR"/SMD/holy_grailref.smd", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); -} diff --git a/libs/assimp/test/unit/utSTLImportExport.cpp b/libs/assimp/test/unit/utSTLImportExport.cpp deleted file mode 100644 index 4bf374a..0000000 --- a/libs/assimp/test/unit/utSTLImportExport.cpp +++ /dev/null @@ -1,170 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ - -#include "AbstractImportExportBase.h" -#include "UnitTestPCH.h" - -#include <assimp/postprocess.h> -#include <assimp/scene.h> -#include <assimp/Exporter.hpp> -#include <assimp/Importer.hpp> - -#include <vector> - -using namespace Assimp; - -class utSTLImporterExporter : public AbstractImportExportBase { -public: - virtual bool importerTest() { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/STL/Spider_ascii.stl", aiProcess_ValidateDataStructure); - return nullptr != scene; - } -}; - -TEST_F(utSTLImporterExporter, importSTLFromFileTest) { - EXPECT_TRUE(importerTest()); -} - -TEST_F(utSTLImporterExporter, test_multiple) { - // import same file twice, each with its own importer - // must work both times and not crash - Assimp::Importer importer1; - const aiScene *scene1 = importer1.ReadFile(ASSIMP_TEST_MODELS_DIR "/STL/Spider_ascii.stl", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene1); - - Assimp::Importer importer2; - const aiScene *scene2 = importer2.ReadFile(ASSIMP_TEST_MODELS_DIR "/STL/Spider_ascii.stl", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene2); -} - -TEST_F(utSTLImporterExporter, importSTLformatdetection) { - ::Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/STL/formatDetection", aiProcess_ValidateDataStructure); - - EXPECT_NE(nullptr, scene); -} - -TEST_F(utSTLImporterExporter, test_with_two_solids) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/STL/triangle_with_two_solids.stl", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); -} - -TEST_F(utSTLImporterExporter, test_with_empty_solid) { - Assimp::Importer importer; - //STL File with empty mesh. We should still be able to import other meshes in this file. ValidateDataStructure should fail. - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/STL/triangle_with_empty_solid.stl", 0); - EXPECT_NE(nullptr, scene); - - const aiScene *scene2 = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/STL/triangle_with_empty_solid.stl", aiProcess_ValidateDataStructure); - EXPECT_EQ(nullptr, scene2); -} - -#ifndef ASSIMP_BUILD_NO_EXPORT - -TEST_F(utSTLImporterExporter, exporterTest) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/STL/Spider_ascii.stl", aiProcess_ValidateDataStructure); - - Assimp::Exporter mAiExporter; - mAiExporter.Export(scene, "stl", "spiderExport.stl"); - - const aiScene *scene2 = importer.ReadFile("spiderExport.stl", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene2); -} - -TEST_F(utSTLImporterExporter, test_export_pointclouds) { - struct XYZ { - float x, y, z; - }; - - std::vector<XYZ> points; - - for (size_t i = 0; i < 10; ++i) { - XYZ current; - current.x = static_cast<float>(i); - current.y = static_cast<float>(i); - current.z = static_cast<float>(i); - points.push_back(current); - } - aiScene scene; - scene.mRootNode = new aiNode(); - - scene.mMeshes = new aiMesh *[1]; - scene.mMeshes[0] = nullptr; - scene.mNumMeshes = 1; - - scene.mMaterials = new aiMaterial *[1]; - scene.mMaterials[0] = nullptr; - scene.mNumMaterials = 1; - - scene.mMaterials[0] = new aiMaterial(); - - scene.mMeshes[0] = new aiMesh(); - scene.mMeshes[0]->mMaterialIndex = 0; - - scene.mRootNode->mMeshes = new unsigned int[1]; - scene.mRootNode->mMeshes[0] = 0; - scene.mRootNode->mNumMeshes = 1; - - auto pMesh = scene.mMeshes[0]; - - size_t numValidPoints = points.size(); - - pMesh->mVertices = new aiVector3D[numValidPoints]; - pMesh->mNumVertices = static_cast<unsigned int>(numValidPoints); - - int i = 0; - for (XYZ &p : points) { - pMesh->mVertices[i] = aiVector3D(p.x, p.y, p.z); - ++i; - } - - Assimp::Exporter mAiExporter; - ExportProperties *properties = new ExportProperties; - properties->SetPropertyBool(AI_CONFIG_EXPORT_POINT_CLOUDS, true); - mAiExporter.Export(&scene, "stl", "testExport.stl", 0, properties); - - delete properties; -} - -#endif diff --git a/libs/assimp/test/unit/utScaleProcess.cpp b/libs/assimp/test/unit/utScaleProcess.cpp deleted file mode 100644 index baa13ab..0000000 --- a/libs/assimp/test/unit/utScaleProcess.cpp +++ /dev/null @@ -1,71 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "PostProcessing/ScaleProcess.h" -#include "TestModelFactory.h" -#include "UnitTestPCH.h" - -namespace Assimp { -namespace UnitTest { - -class utScaleProcess : public ::testing::Test { - // empty -}; - -TEST_F(utScaleProcess, createTest) { - bool ok = true; - try { - ScaleProcess process; - } catch (...) { - ok = false; - } - EXPECT_TRUE(ok); -} - -TEST_F(utScaleProcess, accessScaleTest) { - ScaleProcess process; - EXPECT_FLOAT_EQ(AI_CONFIG_GLOBAL_SCALE_FACTOR_DEFAULT, process.getScale()); - - process.setScale(2.0f); - EXPECT_FLOAT_EQ(2.0f, process.getScale()); -} - -} // Namespace UnitTest -} // Namespace Assimp diff --git a/libs/assimp/test/unit/utScene.cpp b/libs/assimp/test/unit/utScene.cpp deleted file mode 100644 index e989db7..0000000 --- a/libs/assimp/test/unit/utScene.cpp +++ /dev/null @@ -1,64 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2020, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "UnitTestPCH.h" -#include <assimp/scene.h> - -using namespace ::Assimp; - -class utScene : public ::testing::Test { - // empty -}; - -TEST_F( utScene, aiNode_addChildrenTest ) { - aiNode myNode; - - static const size_t NumChildren = 10; - aiNode **childrenPtr = new aiNode*[ NumChildren ]; - for ( unsigned int i = 0; i < NumChildren; i++ ) { - childrenPtr[ i ] = new aiNode; - } - myNode.addChildren( NumChildren, childrenPtr ); - EXPECT_EQ( NumChildren, myNode.mNumChildren ); - for ( unsigned int i = 0; i < NumChildren; i++ ) { - EXPECT_EQ( childrenPtr[ i ], myNode.mChildren[ i ] ); - } -} - diff --git a/libs/assimp/test/unit/utSceneCombiner.cpp b/libs/assimp/test/unit/utSceneCombiner.cpp deleted file mode 100644 index d837e4d..0000000 --- a/libs/assimp/test/unit/utSceneCombiner.cpp +++ /dev/null @@ -1,77 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "UnitTestPCH.h" -#include <assimp/SceneCombiner.h> -#include <assimp/mesh.h> -#include <memory> - -using namespace ::Assimp; - -class utSceneCombiner : public ::testing::Test { - // empty -}; - -TEST_F(utSceneCombiner, MergeMeshes_ValidNames_Test) { - std::vector<aiMesh *> merge_list; - aiMesh *mesh1 = new aiMesh; - mesh1->mName.Set("mesh_1"); - merge_list.push_back(mesh1); - - aiMesh *mesh2 = new aiMesh; - mesh2->mName.Set("mesh_2"); - merge_list.push_back(mesh2); - - aiMesh *mesh3 = new aiMesh; - mesh3->mName.Set("mesh_3"); - merge_list.push_back(mesh3); - - std::unique_ptr<aiMesh> out; - aiMesh *ptr = nullptr; - SceneCombiner::MergeMeshes(&ptr, 0, merge_list.begin(), merge_list.end()); - out.reset(ptr); - std::string outName = out->mName.C_Str(); - EXPECT_EQ("mesh_1.mesh_2.mesh_3", outName); -} - -TEST_F(utSceneCombiner, CopySceneWithNullptr_AI_NO_EXCEPTion) { - EXPECT_NO_THROW(SceneCombiner::CopyScene(nullptr, nullptr)); - EXPECT_NO_THROW(SceneCombiner::CopySceneFlat(nullptr, nullptr)); -} diff --git a/libs/assimp/test/unit/utScenePreprocessor.cpp b/libs/assimp/test/unit/utScenePreprocessor.cpp deleted file mode 100644 index 45d8a36..0000000 --- a/libs/assimp/test/unit/utScenePreprocessor.cpp +++ /dev/null @@ -1,197 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "UnitTestPCH.h" - -#include "Common/ScenePreprocessor.h" -#include <assimp/mesh.h> -#include <assimp/scene.h> -#include <assimp/Importer.hpp> - -using namespace std; -using namespace Assimp; - -class ScenePreprocessorTest : public ::testing::Test { -public: - ScenePreprocessorTest() : - Test(), mScenePreprocessor(nullptr), mScene(nullptr) { - // empty - } - -protected: - virtual void SetUp(); - virtual void TearDown(); - -protected: - void CheckIfOnly(aiMesh *p, unsigned int num, unsigned flag); - void ProcessAnimation(aiAnimation *anim) { mScenePreprocessor->ProcessAnimation(anim); } - void ProcessMesh(aiMesh *mesh) { mScenePreprocessor->ProcessMesh(mesh); } - -private: - ScenePreprocessor *mScenePreprocessor; - aiScene *mScene; -}; - -// ------------------------------------------------------------------------------------------------ -void ScenePreprocessorTest::SetUp() { - // setup a dummy scene with a single node - mScene = new aiScene(); - mScene->mRootNode = new aiNode(); - mScene->mRootNode->mName.Set("<test>"); - - // add some translation - mScene->mRootNode->mTransformation.a4 = 1.f; - mScene->mRootNode->mTransformation.b4 = 2.f; - mScene->mRootNode->mTransformation.c4 = 3.f; - - // and allocate a ScenePreprocessor to operate on the scene - mScenePreprocessor = new ScenePreprocessor(mScene); -} - -// ------------------------------------------------------------------------------------------------ -void ScenePreprocessorTest::TearDown() { - delete mScenePreprocessor; - delete mScene; -} - -// ------------------------------------------------------------------------------------------------ -// Check whether ProcessMesh() returns flag for a mesh that consist of primitives with num indices -void ScenePreprocessorTest::CheckIfOnly(aiMesh *p, unsigned int num, unsigned int flag) { - // Triangles only - for (unsigned i = 0; i < p->mNumFaces; ++i) { - p->mFaces[i].mNumIndices = num; - } - mScenePreprocessor->ProcessMesh(p); - EXPECT_EQ(flag, p->mPrimitiveTypes); - p->mPrimitiveTypes = 0; -} - -// ------------------------------------------------------------------------------------------------ -// Check whether a mesh is preprocessed correctly. Case 1: The mesh needs preprocessing -TEST_F(ScenePreprocessorTest, testMeshPreprocessingPos) { - aiMesh *p = new aiMesh; - p->mNumFaces = 100; - p->mFaces = new aiFace[p->mNumFaces]; - - p->mTextureCoords[0] = new aiVector3D[10]; - p->mNumUVComponents[0] = 0; - p->mNumUVComponents[1] = 0; - - CheckIfOnly(p, 1, aiPrimitiveType_POINT); - CheckIfOnly(p, 2, aiPrimitiveType_LINE); - CheckIfOnly(p, 3, aiPrimitiveType_TRIANGLE); - CheckIfOnly(p, 4, aiPrimitiveType_POLYGON); - CheckIfOnly(p, 1249, aiPrimitiveType_POLYGON); - - // Polygons and triangles mixed - unsigned i; - for (i = 0; i < p->mNumFaces / 2; ++i) { - p->mFaces[i].mNumIndices = 3; - } - for (; i < p->mNumFaces - p->mNumFaces / 4; ++i) { - p->mFaces[i].mNumIndices = 4; - } - for (; i < p->mNumFaces; ++i) { - p->mFaces[i].mNumIndices = 10; - } - ProcessMesh(p); - EXPECT_EQ(static_cast<unsigned int>(aiPrimitiveType_TRIANGLE | aiPrimitiveType_POLYGON), - p->mPrimitiveTypes); - EXPECT_EQ(2U, p->mNumUVComponents[0]); - EXPECT_EQ(0U, p->mNumUVComponents[1]); - delete p; -} - -// ------------------------------------------------------------------------------------------------ -// Check whether a mesh is preprocessed correctly. Case 1: The mesh doesn't need preprocessing -TEST_F(ScenePreprocessorTest, testMeshPreprocessingNeg) { - aiMesh *p = new aiMesh; - p->mPrimitiveTypes = aiPrimitiveType_TRIANGLE | aiPrimitiveType_POLYGON; - ProcessMesh(p); - - // should be unmodified - EXPECT_EQ(static_cast<unsigned int>(aiPrimitiveType_TRIANGLE | aiPrimitiveType_POLYGON), - p->mPrimitiveTypes); - - delete p; -} - -// ------------------------------------------------------------------------------------------------ -// Make a dummy animation with a single channel, '<test>' -aiAnimation *MakeDummyAnimation() { - aiAnimation *p = new aiAnimation(); - p->mNumChannels = 1; - p->mChannels = new aiNodeAnim *[1]; - aiNodeAnim *anim = p->mChannels[0] = new aiNodeAnim(); - anim->mNodeName.Set("<test>"); - return p; -} - -// ------------------------------------------------------------------------------------------------ -// Check whether an anim is preprocessed correctly. Case 1: The anim needs preprocessing -TEST_F(ScenePreprocessorTest, testAnimationPreprocessingPos) { - aiAnimation *p = MakeDummyAnimation(); - aiNodeAnim *anim = p->mChannels[0]; - - // we don't set the animation duration, but generate scaling channels - anim->mNumScalingKeys = 10; - anim->mScalingKeys = new aiVectorKey[10]; - - for (unsigned int i = 0; i < 10; ++i) { - anim->mScalingKeys[i].mTime = i; - anim->mScalingKeys[i].mValue = aiVector3D((float)i); - } - ProcessAnimation(p); - - // we should now have a proper duration - EXPECT_NEAR(p->mDuration, 9., 0.005); - - // ... one scaling key - EXPECT_TRUE(anim->mNumPositionKeys == 1 && - anim->mPositionKeys && - anim->mPositionKeys[0].mTime == 0.0 && - anim->mPositionKeys[0].mValue == aiVector3D(1.f, 2.f, 3.f)); - - // ... and one rotation key - EXPECT_TRUE(anim->mNumRotationKeys == 1 && anim->mRotationKeys && - anim->mRotationKeys[0].mTime == 0.0); - - delete p; -} diff --git a/libs/assimp/test/unit/utSharedPPData.cpp b/libs/assimp/test/unit/utSharedPPData.cpp deleted file mode 100644 index e4be169..0000000 --- a/libs/assimp/test/unit/utSharedPPData.cpp +++ /dev/null @@ -1,124 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "UnitTestPCH.h" - -#include <assimp/scene.h> - -#include "Common/BaseProcess.h" - -using namespace std; -using namespace Assimp; - -class SharedPPDataTest : public ::testing::Test { -public: - virtual void SetUp(); - virtual void TearDown(); - -protected: - SharedPostProcessInfo* shared; -}; - -// ------------------------------------------------------------------------------------------------ -void SharedPPDataTest::SetUp() -{ - shared = new SharedPostProcessInfo(); -} - -// ------------------------------------------------------------------------------------------------ -void SharedPPDataTest::TearDown() -{ - delete shared; -} - -// ------------------------------------------------------------------------------------------------ -TEST_F(SharedPPDataTest, testPODProperty) -{ - int i = 5; - shared->AddProperty("test",i); - int o = 0; - EXPECT_TRUE(shared->GetProperty("test",o)); - EXPECT_EQ(5, o); - EXPECT_FALSE(shared->GetProperty("test2",o)); - EXPECT_EQ(5, o); - - float f = 12.f, m; - shared->AddProperty("test",f); - EXPECT_TRUE(shared->GetProperty("test",m)); - EXPECT_EQ(12.f, m); -} - -// ------------------------------------------------------------------------------------------------ -TEST_F(SharedPPDataTest, testPropertyPointer) -{ - int *i = new int; - shared->AddProperty("test16",i); - int* o; - EXPECT_TRUE(shared->GetProperty("test16",o)); - EXPECT_EQ(i, o); - shared->RemoveProperty("test16"); - EXPECT_FALSE(shared->GetProperty("test16",o)); -} - -static bool destructed; - -struct TestType -{ - ~TestType() - { - destructed = true; - } -}; -// ------------------------------------------------------------------------------------------------ -TEST_F(SharedPPDataTest, testPropertyDeallocation) -{ - SharedPostProcessInfo* localShared = new SharedPostProcessInfo(); - destructed = false; - - TestType *out, * pip = new TestType(); - localShared->AddProperty("quak",pip); - EXPECT_TRUE(localShared->GetProperty("quak",out)); - EXPECT_EQ(pip, out); - - delete localShared; - EXPECT_TRUE(destructed); -} diff --git a/libs/assimp/test/unit/utSimd.cpp b/libs/assimp/test/unit/utSimd.cpp deleted file mode 100644 index 720d657..0000000 --- a/libs/assimp/test/unit/utSimd.cpp +++ /dev/null @@ -1,62 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ - -#include "UnitTestPCH.h" - -#include "Common/simd.h" - -using namespace ::Assimp; - -class utSimd : public ::testing::Test { -protected: - // empty -}; - -TEST_F( utSimd, SSE2SupportedTest ) { - bool isSupported; - - isSupported = CPUSupportsSSE2(); - if ( isSupported ) { - std::cout << "Supported" << std::endl; - } else { - std::cout << "Not supported" << std::endl; - } -} diff --git a/libs/assimp/test/unit/utSortByPType.cpp b/libs/assimp/test/unit/utSortByPType.cpp deleted file mode 100644 index 4dc0342..0000000 --- a/libs/assimp/test/unit/utSortByPType.cpp +++ /dev/null @@ -1,204 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "UnitTestPCH.h" - -#include "Common/ScenePreprocessor.h" -#include "PostProcessing/SortByPTypeProcess.h" -#include <assimp/scene.h> - -using namespace std; -using namespace Assimp; - -class SortByPTypeProcessTest : public ::testing::Test { -public: - SortByPTypeProcessTest() : - Test(), mProcess1(nullptr), mScene(nullptr) { - // empty - } - -protected: - virtual void SetUp(); - virtual void TearDown(); - -protected: - SortByPTypeProcess *mProcess1; - aiScene *mScene; -}; - -// ------------------------------------------------------------------------------------------------ -static unsigned int num[10][4] = { - { 0, 0, 0, 1000 }, - { 0, 0, 1000, 0 }, - { 0, 1000, 0, 0 }, - { 1000, 0, 0, 0 }, - { 500, 500, 0, 0 }, - { 500, 0, 500, 0 }, - { 0, 330, 330, 340 }, - { 250, 250, 250, 250 }, - { 100, 100, 100, 700 }, - { 0, 100, 0, 900 }, -}; - -// ------------------------------------------------------------------------------------------------ -static unsigned int result[10] = { - aiPrimitiveType_POLYGON, - aiPrimitiveType_TRIANGLE, - aiPrimitiveType_LINE, - aiPrimitiveType_POINT, - aiPrimitiveType_POINT | aiPrimitiveType_LINE, - aiPrimitiveType_POINT | aiPrimitiveType_TRIANGLE, - aiPrimitiveType_TRIANGLE | aiPrimitiveType_LINE | aiPrimitiveType_POLYGON, - aiPrimitiveType_POLYGON | aiPrimitiveType_LINE | aiPrimitiveType_TRIANGLE | aiPrimitiveType_POINT, - aiPrimitiveType_POLYGON | aiPrimitiveType_LINE | aiPrimitiveType_TRIANGLE | aiPrimitiveType_POINT, - aiPrimitiveType_LINE | aiPrimitiveType_POLYGON, -}; - -// ------------------------------------------------------------------------------------------------ -void SortByPTypeProcessTest::SetUp() { - mProcess1 = new SortByPTypeProcess(); - mScene = new aiScene(); - - mScene->mNumMeshes = 10; - mScene->mMeshes = new aiMesh *[10]; - - bool five = false; - for (unsigned int i = 0; i < 10; ++i) { - aiMesh *mesh = mScene->mMeshes[i] = new aiMesh(); - mesh->mNumFaces = 1000; - aiFace *faces = mesh->mFaces = new aiFace[1000]; - aiVector3D *pv = mesh->mVertices = new aiVector3D[mesh->mNumFaces * 5]; - aiVector3D *pn = mesh->mNormals = new aiVector3D[mesh->mNumFaces * 5]; - - aiVector3D *pt = mesh->mTangents = new aiVector3D[mesh->mNumFaces * 5]; - aiVector3D *pb = mesh->mBitangents = new aiVector3D[mesh->mNumFaces * 5]; - - aiVector3D *puv = mesh->mTextureCoords[0] = new aiVector3D[mesh->mNumFaces * 5]; - - unsigned int remaining[4] = { num[i][0], num[i][1], num[i][2], num[i][3] }; - unsigned int n = 0; - for (unsigned int m = 0; m < 1000; ++m) { - unsigned int idx = m % 4; - while (true) { - if (!remaining[idx]) { - if (4 == ++idx) { - idx = 0; - } - continue; - } - break; - } - faces->mNumIndices = idx + 1; - if (4 == faces->mNumIndices) { - if (five) ++faces->mNumIndices; - five = !five; - } - faces->mIndices = new unsigned int[faces->mNumIndices]; - for (unsigned int q = 0; q < faces->mNumIndices; ++q, ++n) { - faces->mIndices[q] = n; - float f = (float)remaining[idx]; - - // (the values need to be unique - otherwise all degenerates would be removed) - *pv++ = aiVector3D(f, f + 1.f, f + q); - *pn++ = aiVector3D(f, f + 1.f, f + q); - *pt++ = aiVector3D(f, f + 1.f, f + q); - *pb++ = aiVector3D(f, f + 1.f, f + q); - *puv++ = aiVector3D(f, f + 1.f, f + q); - } - ++faces; - --remaining[idx]; - } - mesh->mNumVertices = n; - } - - mScene->mRootNode = new aiNode(); - mScene->mRootNode->mNumChildren = 5; - mScene->mRootNode->mChildren = new aiNode *[5]; - for (unsigned int i = 0; i < 5; ++i) { - aiNode *node = mScene->mRootNode->mChildren[i] = new aiNode(); - node->mNumMeshes = 2; - node->mMeshes = new unsigned int[2]; - node->mMeshes[0] = (i << 1u); - node->mMeshes[1] = (i << 1u) + 1; - } -} - -// ------------------------------------------------------------------------------------------------ -void SortByPTypeProcessTest::TearDown() { - delete mProcess1; - delete mScene; -} - -// ------------------------------------------------------------------------------------------------ -TEST_F(SortByPTypeProcessTest, SortByPTypeStep) { - ScenePreprocessor s(mScene); - s.ProcessScene(); - for (unsigned int m = 0; m < 10; ++m) - EXPECT_EQ(result[m], mScene->mMeshes[m]->mPrimitiveTypes); - - mProcess1->Execute(mScene); - - unsigned int idx = 0; - for (unsigned int m = 0, real = 0; m < 10; ++m) { - for (unsigned int n = 0; n < 4; ++n) { - idx = num[m][n]; - if (idx) { - EXPECT_TRUE(real < mScene->mNumMeshes); - - aiMesh *mesh = mScene->mMeshes[real]; - - EXPECT_TRUE(NULL != mesh); - EXPECT_EQ(AI_PRIMITIVE_TYPE_FOR_N_INDICES(n + 1), mesh->mPrimitiveTypes); - EXPECT_TRUE(NULL != mesh->mVertices); - EXPECT_TRUE(NULL != mesh->mNormals); - EXPECT_TRUE(NULL != mesh->mTangents); - EXPECT_TRUE(NULL != mesh->mBitangents); - EXPECT_TRUE(NULL != mesh->mTextureCoords[0]); - - EXPECT_TRUE(mesh->mNumFaces == idx); - for (unsigned int f = 0; f < mesh->mNumFaces; ++f) { - aiFace &face = mesh->mFaces[f]; - EXPECT_TRUE(face.mNumIndices == (n + 1) || (3 == n && face.mNumIndices > 3)); - } - ++real; - } - } - } -} diff --git a/libs/assimp/test/unit/utSplitLargeMeshes.cpp b/libs/assimp/test/unit/utSplitLargeMeshes.cpp deleted file mode 100644 index c8a697d..0000000 --- a/libs/assimp/test/unit/utSplitLargeMeshes.cpp +++ /dev/null @@ -1,155 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "UnitTestPCH.h" - -#include "PostProcessing/SplitLargeMeshes.h" -#include <assimp/scene.h> - -using namespace std; -using namespace Assimp; - -class SplitLargeMeshesTest : public ::testing::Test { -public: - virtual void SetUp(); - virtual void TearDown(); - -protected: - SplitLargeMeshesProcess_Triangle *piProcessTriangle; - SplitLargeMeshesProcess_Vertex *piProcessVertex; -}; - -// ------------------------------------------------------------------------------------------------ -void SplitLargeMeshesTest::SetUp() { - // construct the processes - this->piProcessTriangle = new SplitLargeMeshesProcess_Triangle(); - this->piProcessVertex = new SplitLargeMeshesProcess_Vertex(); - - this->piProcessTriangle->SetLimit(1000); - this->piProcessVertex->SetLimit(1000); -} - -// ------------------------------------------------------------------------------------------------ -void SplitLargeMeshesTest::TearDown() { - delete this->piProcessTriangle; - delete this->piProcessVertex; -} - -// ------------------------------------------------------------------------------------------------ -TEST_F(SplitLargeMeshesTest, testVertexSplit) { - std::vector<std::pair<aiMesh *, unsigned int>> avOut; - - aiMesh *pcMesh1 = new aiMesh(); - pcMesh1->mNumVertices = 2100; // quersumme: 3 - pcMesh1->mVertices = new aiVector3D[pcMesh1->mNumVertices]; - pcMesh1->mNormals = new aiVector3D[pcMesh1->mNumVertices]; - - pcMesh1->mNumFaces = pcMesh1->mNumVertices / 3; - pcMesh1->mFaces = new aiFace[pcMesh1->mNumFaces]; - - unsigned int qq = 0; - for (unsigned int i = 0; i < pcMesh1->mNumFaces; ++i) { - aiFace &face = pcMesh1->mFaces[i]; - face.mNumIndices = 3; - face.mIndices = new unsigned int[3]; - face.mIndices[0] = qq++; - face.mIndices[1] = qq++; - face.mIndices[2] = qq++; - } - - int iOldFaceNum = (int)pcMesh1->mNumFaces; - piProcessVertex->SplitMesh(0, pcMesh1, avOut); - - for (std::vector<std::pair<aiMesh *, unsigned int>>::const_iterator - iter = avOut.begin(), - end = avOut.end(); - iter != end; ++iter) { - aiMesh *mesh = (*iter).first; - EXPECT_LT(mesh->mNumVertices, 1000U); - EXPECT_TRUE(NULL != mesh->mNormals); - EXPECT_TRUE(NULL != mesh->mVertices); - - iOldFaceNum -= mesh->mNumFaces; - delete mesh; - } - EXPECT_EQ(0, iOldFaceNum); -} - -// ------------------------------------------------------------------------------------------------ -TEST_F(SplitLargeMeshesTest, testTriangleSplit) { - std::vector<std::pair<aiMesh *, unsigned int>> avOut; - - // generate many, many faces with randomized indices for - // the second mesh - aiMesh *pcMesh2 = new aiMesh(); - pcMesh2->mNumVertices = 3000; - pcMesh2->mVertices = new aiVector3D[pcMesh2->mNumVertices]; - pcMesh2->mNormals = new aiVector3D[pcMesh2->mNumVertices]; - - pcMesh2->mNumFaces = 10000; - pcMesh2->mFaces = new aiFace[pcMesh2->mNumFaces]; - - for (unsigned int i = 0; i < pcMesh2->mNumFaces; ++i) { - aiFace &face = pcMesh2->mFaces[i]; - face.mNumIndices = 3; - face.mIndices = new unsigned int[3]; - face.mIndices[0] = (unsigned int)((rand() / (float)RAND_MAX) * pcMesh2->mNumVertices); - face.mIndices[1] = (unsigned int)((rand() / (float)RAND_MAX) * pcMesh2->mNumVertices); - face.mIndices[2] = (unsigned int)((rand() / (float)RAND_MAX) * pcMesh2->mNumVertices); - } - - // the number of faces shouldn't change - int iOldFaceNum = (int)pcMesh2->mNumFaces; - piProcessTriangle->SplitMesh(0, pcMesh2, avOut); - - for (std::vector<std::pair<aiMesh *, unsigned int>>::const_iterator - iter = avOut.begin(), - end = avOut.end(); - iter != end; ++iter) { - aiMesh *mesh = (*iter).first; - EXPECT_LT(mesh->mNumFaces, 1000U); - EXPECT_TRUE(NULL != mesh->mNormals); - EXPECT_TRUE(NULL != mesh->mVertices); - - iOldFaceNum -= mesh->mNumFaces; - delete mesh; - } - EXPECT_EQ(0, iOldFaceNum); -} diff --git a/libs/assimp/test/unit/utStringUtils.cpp b/libs/assimp/test/unit/utStringUtils.cpp deleted file mode 100644 index 9c5ab31..0000000 --- a/libs/assimp/test/unit/utStringUtils.cpp +++ /dev/null @@ -1,77 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "UnitTestPCH.h" -#include <assimp/StringUtils.h> - -class utStringUtils : public ::testing::Test { - // empty -}; - -TEST_F(utStringUtils, to_string_Test ) { - std::string res = ai_to_string( 1 ); - EXPECT_EQ( res, "1" ); - - res = ai_to_string( 1.0f ); - EXPECT_EQ( res, "1" ); -} - -TEST_F(utStringUtils, ai_strtofTest ) { - float res = ai_strtof( nullptr, nullptr ); - EXPECT_FLOAT_EQ( res, 0.0f ); - - std::string testStr1 = "200.0"; - res = ai_strtof( testStr1.c_str(), nullptr ); - EXPECT_FLOAT_EQ( res, 200.0f ); - - std::string testStr2 = "200.0 xxx"; - const char *begin( testStr2.c_str() ); - const char *end( begin + 6 ); - res = ai_strtof( begin, end ); - EXPECT_FLOAT_EQ( res, 200.0f ); -} - -TEST_F(utStringUtils, ai_rgba2hexTest) { - std::string result; - result = ai_rgba2hex(255, 255, 255, 255, true); - EXPECT_EQ(result, "#ffffffff"); - result = ai_rgba2hex(0, 0, 0, 0, false); - EXPECT_EQ(result, "00000000"); -} diff --git a/libs/assimp/test/unit/utTargetAnimation.cpp b/libs/assimp/test/unit/utTargetAnimation.cpp deleted file mode 100644 index 9cbb453..0000000 --- a/libs/assimp/test/unit/utTargetAnimation.cpp +++ /dev/null @@ -1,43 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "UnitTestPCH.h" - -// TODO diff --git a/libs/assimp/test/unit/utTextureTransform.cpp b/libs/assimp/test/unit/utTextureTransform.cpp deleted file mode 100644 index 9cbb453..0000000 --- a/libs/assimp/test/unit/utTextureTransform.cpp +++ /dev/null @@ -1,43 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "UnitTestPCH.h" - -// TODO diff --git a/libs/assimp/test/unit/utTriangulate.cpp b/libs/assimp/test/unit/utTriangulate.cpp deleted file mode 100644 index 874e55c..0000000 --- a/libs/assimp/test/unit/utTriangulate.cpp +++ /dev/null @@ -1,137 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "UnitTestPCH.h" - -#include <assimp/scene.h> - -#include "PostProcessing/TriangulateProcess.h" - -using namespace std; -using namespace Assimp; - -class TriangulateProcessTest : public ::testing::Test { -public: - virtual void SetUp(); - virtual void TearDown(); - -protected: - aiMesh *pcMesh; - TriangulateProcess *piProcess; -}; - -void TriangulateProcessTest::SetUp() { - piProcess = new TriangulateProcess(); - pcMesh = new aiMesh(); - - pcMesh->mNumFaces = 1000; - pcMesh->mFaces = new aiFace[1000]; - pcMesh->mVertices = new aiVector3D[10000]; - - pcMesh->mPrimitiveTypes = aiPrimitiveType_POINT | aiPrimitiveType_LINE | aiPrimitiveType_POLYGON; - - for (unsigned int m = 0, t = 0, q = 4; m < 1000; ++m) { - ++t; - aiFace &face = pcMesh->mFaces[m]; - face.mNumIndices = t; - if (4 == t) { - face.mNumIndices = q++; - t = 0; - - if (10 == q) q = 4; - } - face.mIndices = new unsigned int[face.mNumIndices]; - for (unsigned int p = 0; p < face.mNumIndices; ++p) { - face.mIndices[p] = pcMesh->mNumVertices; - - // construct fully convex input data in ccw winding, xy plane - aiVector3D &v = pcMesh->mVertices[pcMesh->mNumVertices++]; - v.z = 0.f; - v.x = cos(p * (float)(AI_MATH_TWO_PI) / face.mNumIndices); - v.y = sin(p * (float)(AI_MATH_TWO_PI) / face.mNumIndices); - } - } -} - -void TriangulateProcessTest::TearDown() { - delete piProcess; - delete pcMesh; -} - -TEST_F(TriangulateProcessTest, testTriangulation) { - piProcess->TriangulateMesh(pcMesh); - - for (unsigned int m = 0, t = 0, q = 4, max = 1000, idx = 0; m < max; ++m) { - ++t; - aiFace &face = pcMesh->mFaces[m]; - if (4 == t) { - t = 0; - max += q - 3; - - std::vector<bool> ait(q, false); - - for (unsigned int i = 0, tt = q - 2; i < tt; ++i, ++m) { - aiFace &curFace = pcMesh->mFaces[m]; - EXPECT_EQ(3U, curFace.mNumIndices); - - for (unsigned int qqq = 0; qqq < curFace.mNumIndices; ++qqq) { - ait[curFace.mIndices[qqq] - idx] = true; - } - } - for (std::vector<bool>::const_iterator it = ait.begin(); it != ait.end(); ++it) { - EXPECT_TRUE(*it); - } - --m; - idx += q; - if (++q == 10) { - q = 4; - } - } else { - EXPECT_EQ(t, face.mNumIndices); - - for (unsigned int i = 0; i < face.mNumIndices; ++i, ++idx) { - EXPECT_EQ(idx, face.mIndices[i]); - } - } - } - - // we should have no valid normal vectors now because we aren't a pure polygon mesh - EXPECT_TRUE(pcMesh->mNormals == NULL); -} diff --git a/libs/assimp/test/unit/utTypes.cpp b/libs/assimp/test/unit/utTypes.cpp deleted file mode 100644 index 33d2b4f..0000000 --- a/libs/assimp/test/unit/utTypes.cpp +++ /dev/null @@ -1,77 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "UnitTestPCH.h" - -#include <assimp/types.h> - -using namespace Assimp; - -class utTypes : public ::testing::Test { - // empty -}; - -TEST_F( utTypes, Color3dCpmpareOpTest ) { - aiColor3D col1( 1, 2, 3 ); - aiColor3D col2( 4, 5, 6 ); - const aiColor3D &col3(col1); - - EXPECT_FALSE( col1 == col2 ); - EXPECT_FALSE( col2 == col3 ); - EXPECT_TRUE( col1 == col3 ); - - EXPECT_TRUE( col1 != col2 ); - EXPECT_TRUE( col2 != col3 ); - EXPECT_FALSE( col1 != col3 ); -} - -TEST_F( utTypes, Color3dIndexOpTest ) { - aiColor3D col( 1, 2, 3 ); - const ai_real r = col[ 0 ]; - EXPECT_FLOAT_EQ( 1, r ); - - const ai_real g = col[ 1 ]; - EXPECT_FLOAT_EQ( 2, g ); - - const ai_real b = col[ 2 ]; - EXPECT_FLOAT_EQ( 3, b ); -} diff --git a/libs/assimp/test/unit/utValidateDataStructure.cpp b/libs/assimp/test/unit/utValidateDataStructure.cpp deleted file mode 100644 index 099c54d..0000000 --- a/libs/assimp/test/unit/utValidateDataStructure.cpp +++ /dev/null @@ -1,199 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2020, assimp team - - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "UnitTestPCH.h" - -#include <assimp/mesh.h> -#include <assimp/scene.h> -#include <ValidateDataStructure.h> - -using namespace std; -using namespace Assimp; - - -class ValidateDataStructureTest : public ::testing::Test -{ -public: - - virtual void SetUp(); - virtual void TearDown(); - -protected: - - - ValidateDSProcess* vds; - aiScene* scene; -}; - -// ------------------------------------------------------------------------------------------------ -void ValidateDataStructureTest::SetUp() -{ - // setup a dummy scene with a single node - scene = new aiScene(); - scene->mRootNode = new aiNode(); - scene->mRootNode->mName.Set("<test>"); - - // add some translation - scene->mRootNode->mTransformation.a4 = 1.f; - scene->mRootNode->mTransformation.b4 = 2.f; - scene->mRootNode->mTransformation.c4 = 3.f; - - // and allocate a ScenePreprocessor to operate on the scene - vds = new ValidateDSProcess(); -} - -// ------------------------------------------------------------------------------------------------ -void ValidateDataStructureTest::TearDown() -{ - delete vds; - delete scene; -} - - - -// ------------------------------------------------------------------------------------------------ -//Template -//TEST_F(ScenePreprocessorTest, test) -//{ -//} -// TODO Conditions not yet checked: -//132: ReportError("aiScene::%s is NULL (aiScene::%s is %i)", -//139: ReportError("aiScene::%s[%i] is NULL (aiScene::%s is %i)", -//156: ReportError("aiScene::%s is NULL (aiScene::%s is %i)", -//163: ReportError("aiScene::%s[%i] is NULL (aiScene::%s is %i)", -//173: ReportError("aiScene::%s[%i] has the same name as " -//192: ReportError("aiScene::%s[%i] has no corresponding node in the scene graph (%s)", -//196: ReportError("aiScene::%s[%i]: there are more than one nodes with %s as name", -//217: ReportError("aiScene::mNumMeshes is 0. At least one mesh must be there"); -//220: ReportError("aiScene::mMeshes is non-null although there are no meshes"); -//229: ReportError("aiScene::mAnimations is non-null although there are no animations"); -//238: ReportError("aiScene::mCameras is non-null although there are no cameras"); -//247: ReportError("aiScene::mLights is non-null although there are no lights"); -//256: ReportError("aiScene::mTextures is non-null although there are no textures"); -//266: ReportError("aiScene::mNumMaterials is 0. At least one material must be there"); -//270: ReportError("aiScene::mMaterials is non-null although there are no materials"); -//281: ReportWarning("aiLight::mType is aiLightSource_UNDEFINED"); -//286: ReportWarning("aiLight::mAttenuationXXX - all are zero"); -//290: ReportError("aiLight::mAngleInnerCone is larger than aiLight::mAngleOuterCone"); -//295: ReportWarning("aiLight::mColorXXX - all are black and won't have any influence"); -//303: ReportError("aiCamera::mClipPlaneFar must be >= aiCamera::mClipPlaneNear"); -//308: ReportWarning("%f is not a valid value for aiCamera::mHorizontalFOV",pCamera->mHorizontalFOV); -//317: ReportError("aiMesh::mMaterialIndex is invalid (value: %i maximum: %i)", -//332: ReportError("aiMesh::mFaces[%i].mNumIndices is 0",i); -//336: ReportError("aiMesh::mFaces[%i] is a POINT but aiMesh::mPrimitiveTypes " -//337: "does not report the POINT flag",i); -//343: ReportError("aiMesh::mFaces[%i] is a LINE but aiMesh::mPrimitiveTypes " -//344: "does not report the LINE flag",i); -//350: ReportError("aiMesh::mFaces[%i] is a TRIANGLE but aiMesh::mPrimitiveTypes " -//351: "does not report the TRIANGLE flag",i); -//357: this->ReportError("aiMesh::mFaces[%i] is a POLYGON but aiMesh::mPrimitiveTypes " -//358: "does not report the POLYGON flag",i); -//365: ReportError("aiMesh::mFaces[%i].mIndices is NULL",i); -//370: ReportError("The mesh %s contains no vertices", pMesh->mName.C_Str()); -//374: ReportError("Mesh has too many vertices: %u, but the limit is %u",pMesh->mNumVertices,AI_MAX_VERTICES); -//377: ReportError("Mesh has too many faces: %u, but the limit is %u",pMesh->mNumFaces,AI_MAX_FACES); -//382: ReportError("If there are tangents, bitangent vectors must be present as well"); -//387: ReportError("Mesh %s contains no faces", pMesh->mName.C_Str()); -//398: ReportError("Face %u has too many faces: %u, but the limit is %u",i,face.mNumIndices,AI_MAX_FACE_INDICES); -//404: ReportError("aiMesh::mFaces[%i]::mIndices[%i] is out of range",i,a); -//412: ReportError("aiMesh::mVertices[%i] is referenced twice - second " -//426: ReportWarning("There are unreferenced vertices"); -//439: ReportError("Texture coordinate channel %i exists " -//453: ReportError("Vertex color channel %i is exists " -//464: ReportError("aiMesh::mBones is NULL (aiMesh::mNumBones is %i)", -//480: ReportError("Bone %u has too many weights: %u, but the limit is %u",i,bone->mNumWeights,AI_MAX_BONE_WEIGHTS); -//485: ReportError("aiMesh::mBones[%i] is NULL (aiMesh::mNumBones is %i)", -//498: ReportError("aiMesh::mBones[%i], name = \"%s\" has the same name as " -//507: ReportWarning("aiMesh::mVertices[%i]: bone weight sum != 1.0 (sum is %f)",i,afSum[i]); -//513: ReportError("aiMesh::mBones is non-null although there are no bones"); -//524: ReportError("aiBone::mNumWeights is zero"); -//531: ReportError("aiBone::mWeights[%i].mVertexId is out of range",i); -//534: ReportWarning("aiBone::mWeights[%i].mWeight has an invalid value",i); -//549: ReportError("aiAnimation::mChannels is NULL (aiAnimation::mNumChannels is %i)", -//556: ReportError("aiAnimation::mChannels[%i] is NULL (aiAnimation::mNumChannels is %i)", -//563: ReportError("aiAnimation::mNumChannels is 0. At least one node animation channel must be there."); -//567: // if (!pAnimation->mDuration)this->ReportError("aiAnimation::mDuration is zero"); -//592: ReportError("Material property %s is expected to be a string",prop->mKey.data); -//596: ReportError("%s #%i is set, but there are only %i %s textures", -//611: ReportError("Found texture property with index %i, although there " -//619: ReportError("Material property %s%i is expected to be an integer (size is %i)", -//627: ReportError("Material property %s%i is expected to be 5 floats large (size is %i)", -//635: ReportError("Material property %s%i is expected to be an integer (size is %i)", -//656: ReportWarning("Invalid UV index: %i (key %s). Mesh %i has only %i UV channels", -//676: ReportWarning("UV-mapped texture, but there are no UV coords"); -//690: ReportError("aiMaterial::mProperties[%i] is NULL (aiMaterial::mNumProperties is %i)", -//694: ReportError("aiMaterial::mProperties[%i].mDataLength or " -//702: ReportError("aiMaterial::mProperties[%i].mDataLength is " -//707: ReportError("Missing null-terminator in string material property"); -//713: ReportError("aiMaterial::mProperties[%i].mDataLength is " -//720: ReportError("aiMaterial::mProperties[%i].mDataLength is " -//739: ReportWarning("A specular shading model is specified but there is no " -//743: ReportWarning("A specular shading model is specified but the value of the " -//752: ReportWarning("Invalid opacity value (must be 0 < opacity < 1.0)"); -//776: ReportError("aiTexture::pcData is NULL"); -//781: ReportError("aiTexture::mWidth is zero (aiTexture::mHeight is %i, uncompressed texture)", -//788: ReportError("aiTexture::mWidth is zero (compressed texture)"); -//791: ReportWarning("aiTexture::achFormatHint must be zero-terminated"); -//794: ReportWarning("aiTexture::achFormatHint should contain a file extension " -//804: ReportError("aiTexture::achFormatHint contains non-lowercase letters"); -//815: ReportError("Empty node animation channel"); -//822: ReportError("aiNodeAnim::mPositionKeys is NULL (aiNodeAnim::mNumPositionKeys is %i)", -//833: ReportError("aiNodeAnim::mPositionKeys[%i].mTime (%.5f) is larger " -//840: ReportWarning("aiNodeAnim::mPositionKeys[%i].mTime (%.5f) is smaller " -//853: ReportError("aiNodeAnim::mRotationKeys is NULL (aiNodeAnim::mNumRotationKeys is %i)", -//861: ReportError("aiNodeAnim::mRotationKeys[%i].mTime (%.5f) is larger " -//868: ReportWarning("aiNodeAnim::mRotationKeys[%i].mTime (%.5f) is smaller " -//880: ReportError("aiNodeAnim::mScalingKeys is NULL (aiNodeAnim::mNumScalingKeys is %i)", -//888: ReportError("aiNodeAnim::mScalingKeys[%i].mTime (%.5f) is larger " -//895: ReportWarning("aiNodeAnim::mScalingKeys[%i].mTime (%.5f) is smaller " -//907: ReportError("A node animation channel must have at least one subtrack"); -//915: ReportError("A node of the scenegraph is NULL"); -//920: ReportError("Non-root node %s lacks a valid parent (aiNode::mParent is NULL) ",pNode->mName); -//928: ReportError("aiNode::mMeshes is NULL for node %s (aiNode::mNumMeshes is %i)", -//937: ReportError("aiNode::mMeshes[%i] is out of range for node %s (maximum is %i)", -//942: ReportError("aiNode::mMeshes[%i] is already referenced by this node %s (value: %i)", -//951: ReportError("aiNode::mChildren is NULL for node %s (aiNode::mNumChildren is %i)", -//965: ReportError("aiString::length is too large (%i, maximum is %lu)", -//974: ReportError("aiString::data is invalid: the terminal zero is at a wrong offset"); -//979: ReportError("aiString::data is invalid. There is no terminal character"); -} - diff --git a/libs/assimp/test/unit/utVector3.cpp b/libs/assimp/test/unit/utVector3.cpp deleted file mode 100644 index 2602c28..0000000 --- a/libs/assimp/test/unit/utVector3.cpp +++ /dev/null @@ -1,69 +0,0 @@ -/*------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------*/ -#include "UnitTestPCH.h" -#include <assimp/vector3.h> - -using namespace ::Assimp; - -class utVector3 : public ::testing::Test { - // empty -}; - -TEST_F(utVector3, CreationTest) { - aiVector3D v0; - aiVector3D v1(1.0f, 2.0f, 3.0f); - EXPECT_FLOAT_EQ(1.0f, v1[0]); - EXPECT_FLOAT_EQ(2.0f, v1[1]); - EXPECT_FLOAT_EQ(3.0f, v1[2]); - aiVector3D v2(1); - EXPECT_FLOAT_EQ(1.0f, v2[0]); - EXPECT_FLOAT_EQ(1.0f, v2[1]); - EXPECT_FLOAT_EQ(1.0f, v2[2]); - aiVector3D v3(v1); - EXPECT_FLOAT_EQ(v1[0], v3[0]); - EXPECT_FLOAT_EQ(v1[1], v3[1]); - EXPECT_FLOAT_EQ(v1[2], v3[2]); -} - -TEST_F(utVector3, BracketOpTest) { - aiVector3D v(1.0f, 2.0f, 3.0f); - EXPECT_FLOAT_EQ(1.0f, v[0]); - EXPECT_FLOAT_EQ(2.0f, v[1]); - EXPECT_FLOAT_EQ(3.0f, v[2]); -} diff --git a/libs/assimp/test/unit/utVersion.cpp b/libs/assimp/test/unit/utVersion.cpp deleted file mode 100644 index 7548417..0000000 --- a/libs/assimp/test/unit/utVersion.cpp +++ /dev/null @@ -1,77 +0,0 @@ -/*------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------*/ -#include "UnitTestPCH.h" -#include <assimp/version.h> - -class utVersion : public ::testing::Test { - // empty -}; - -TEST_F( utVersion, aiGetLegalStringTest ) { - const char *lv = aiGetLegalString(); - EXPECT_NE( lv, nullptr ); - std::string text( lv ); - - size_t pos = text.find(std::string("2022")); - EXPECT_NE(pos, std::string::npos); -} - -TEST_F( utVersion, aiGetVersionMinorTest ) { - EXPECT_EQ(aiGetVersionMinor(), 2U); -} - -TEST_F( utVersion, aiGetVersionMajorTest ) { - EXPECT_EQ( aiGetVersionMajor(), 5U ); -} - -TEST_F( utVersion, aiGetVersionPatchTest ) { - EXPECT_EQ(aiGetVersionPatch(), 0U ); -} - -TEST_F( utVersion, aiGetCompileFlagsTest ) { - EXPECT_NE( aiGetCompileFlags(), 0U ); -} - -TEST_F( utVersion, aiGetVersionRevisionTest ) { - EXPECT_NE( aiGetVersionRevision(), 0U ); -} - -TEST_F( utVersion, aiGetBranchNameTest ) { - EXPECT_NE( nullptr, aiGetBranchName() ); -} diff --git a/libs/assimp/test/unit/utVertexTriangleAdjacency.cpp b/libs/assimp/test/unit/utVertexTriangleAdjacency.cpp deleted file mode 100644 index bda6304..0000000 --- a/libs/assimp/test/unit/utVertexTriangleAdjacency.cpp +++ /dev/null @@ -1,210 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "UnitTestPCH.h" - -#include <assimp/mesh.h> -#include <assimp/types.h> - -#include "Common/VertexTriangleAdjacency.h" - -using namespace std; -using namespace Assimp; - -class VTAdjacencyTest : public ::testing::Test { -protected: - void checkMesh(const aiMesh &mesh); -}; - -// ------------------------------------------------------------------------------------------------ -TEST_F(VTAdjacencyTest, largeRandomDataSet) { - // build a test mesh with randomized input data - // ******************************************************************************* - aiMesh mesh; - - mesh.mNumVertices = 500; - mesh.mNumFaces = 600; - - mesh.mFaces = new aiFace[600]; - unsigned int iCurrent = 0; - for (unsigned int i = 0; i < 600; ++i) { - aiFace &face = mesh.mFaces[i]; - face.mNumIndices = 3; - face.mIndices = new unsigned int[3]; - - if (499 == iCurrent) iCurrent = 0; - face.mIndices[0] = iCurrent++; - - while (face.mIndices[0] == (face.mIndices[1] = (unsigned int)(((float)rand() / RAND_MAX) * 499))) - ; - while (face.mIndices[0] == (face.mIndices[2] = (unsigned int)(((float)rand() / RAND_MAX) * 499)) || - face.mIndices[1] == face.mIndices[2]) - ; - } - - checkMesh(mesh); -} - -// ------------------------------------------------------------------------------------------------ -TEST_F(VTAdjacencyTest, smallDataSet) { - - // build a test mesh - this one is extremely small - // ******************************************************************************* - aiMesh mesh; - - mesh.mNumVertices = 5; - mesh.mNumFaces = 3; - - mesh.mFaces = new aiFace[3]; - mesh.mFaces[0].mIndices = new unsigned int[3]; - mesh.mFaces[0].mNumIndices = 3; - mesh.mFaces[1].mIndices = new unsigned int[3]; - mesh.mFaces[1].mNumIndices = 3; - mesh.mFaces[2].mIndices = new unsigned int[3]; - mesh.mFaces[2].mNumIndices = 3; - - mesh.mFaces[0].mIndices[0] = 1; - mesh.mFaces[0].mIndices[1] = 3; - mesh.mFaces[0].mIndices[2] = 2; - - mesh.mFaces[1].mIndices[0] = 0; - mesh.mFaces[1].mIndices[1] = 2; - mesh.mFaces[1].mIndices[2] = 3; - - mesh.mFaces[2].mIndices[0] = 3; - mesh.mFaces[2].mIndices[1] = 0; - mesh.mFaces[2].mIndices[2] = 4; - - checkMesh(mesh); -} - -// ------------------------------------------------------------------------------------------------ -TEST_F(VTAdjacencyTest, unreferencedVerticesSet) { - // build a test mesh which does not reference all vertices - // ******************************************************************************* - aiMesh mesh; - - mesh.mNumVertices = 500; - mesh.mNumFaces = 600; - - mesh.mFaces = new aiFace[600]; - unsigned int iCurrent = 0; - for (unsigned int i = 0; i < 600; ++i) { - aiFace &face = mesh.mFaces[i]; - face.mNumIndices = 3; - face.mIndices = new unsigned int[3]; - - if (499 == iCurrent) iCurrent = 0; - face.mIndices[0] = iCurrent++; - - if (499 == iCurrent) iCurrent = 0; - face.mIndices[1] = iCurrent++; - - if (499 == iCurrent) iCurrent = 0; - face.mIndices[2] = iCurrent++; - - if (rand() > RAND_MAX / 2 && face.mIndices[0]) { - face.mIndices[0]--; - } else if (face.mIndices[1]) - face.mIndices[1]--; - } - - checkMesh(mesh); -} - -// ------------------------------------------------------------------------------------------------ -void VTAdjacencyTest::checkMesh(const aiMesh &mesh) { - VertexTriangleAdjacency adj(mesh.mFaces, mesh.mNumFaces, mesh.mNumVertices, true); - - unsigned int *const piNum = adj.mLiveTriangles; - - // check the primary adjacency table and check whether all faces - // are contained in the list - unsigned int maxOfs = 0; - for (unsigned int i = 0; i < mesh.mNumFaces; ++i) { - aiFace &face = mesh.mFaces[i]; - for (unsigned int qq = 0; qq < 3; ++qq) { - const unsigned int idx = face.mIndices[qq]; - const unsigned int num = piNum[idx]; - - // go to this offset - const unsigned int ofs = adj.mOffsetTable[idx]; - maxOfs = std::max(ofs + num, maxOfs); - unsigned int *pi = &adj.mAdjacencyTable[ofs]; - - // and search for us ... - unsigned int tt = 0; - for (; tt < num; ++tt, ++pi) { - if (i == *pi) { - // mask our entry in the table. Finally all entries should be masked - *pi = 0xffffffff; - - // there shouldn't be two entries for the same face - break; - } - } - // assert if *this* vertex has not been found in the table - EXPECT_LT(tt, num); - } - } - - // now check whether there are invalid faces - const unsigned int *pi = adj.mAdjacencyTable; - for (unsigned int i = 0; i < maxOfs; ++i, ++pi) { - EXPECT_EQ(0xffffffff, *pi); - } - - // check the numTrianglesPerVertex table - for (unsigned int i = 0; i < mesh.mNumFaces; ++i) { - aiFace &face = mesh.mFaces[i]; - for (unsigned int qq = 0; qq < 3; ++qq) { - const unsigned int idx = face.mIndices[qq]; - - // we should not reach 0 here ... - EXPECT_NE(0U, piNum[idx]); - piNum[idx]--; - } - } - - // check whether we reached 0 in all entries - for (unsigned int i = 0; i < mesh.mNumVertices; ++i) { - EXPECT_FALSE(piNum[i]); - } -} diff --git a/libs/assimp/test/unit/utX3DImportExport.cpp b/libs/assimp/test/unit/utX3DImportExport.cpp deleted file mode 100644 index f2df81a..0000000 --- a/libs/assimp/test/unit/utX3DImportExport.cpp +++ /dev/null @@ -1,61 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ - -#include "AbstractImportExportBase.h" -#include "UnitTestPCH.h" - -#include <assimp/postprocess.h> -#include <assimp/Importer.hpp> - -using namespace Assimp; - -class utX3DImportExport : public AbstractImportExportBase { -public: - bool importerTest() override { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/X3D/HelloX3dTrademark.x3d", aiProcess_ValidateDataStructure); - return nullptr != scene; - } -}; - -TEST_F(utX3DImportExport, importX3DFromFileTest) { - EXPECT_TRUE(importerTest()); -} diff --git a/libs/assimp/test/unit/utXImporterExporter.cpp b/libs/assimp/test/unit/utXImporterExporter.cpp deleted file mode 100644 index 4d247cc..0000000 --- a/libs/assimp/test/unit/utXImporterExporter.cpp +++ /dev/null @@ -1,126 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ - -#include "AbstractImportExportBase.h" -#include "UnitTestPCH.h" - -#include <assimp/postprocess.h> -#include <assimp/Importer.hpp> - -using namespace Assimp; - -class utXImporterExporter : public AbstractImportExportBase { -public: - virtual bool importerTest() { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/X/test.x", aiProcess_ValidateDataStructure); - return nullptr != scene; - } -}; - -TEST_F(utXImporterExporter, importXFromFileTest) { - EXPECT_TRUE(importerTest()); -} - -TEST_F(utXImporterExporter, heap_overflow_in_tokenizer) { - Assimp::Importer importer; - EXPECT_NO_THROW(importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/X/OV_GetNextToken", 0)); -} - -TEST(utXImporter, importAnimTest) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/X/anim_test.x", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); -} - -TEST(utXImporter, importBCNEpileptic) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/X/BCN_Epileptic.X", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); -} - -TEST(utXImporter, importFromTrueSpaceBin32) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/X/fromtruespace_bin32.x", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); -} - -TEST(utXImporter, import_kwxport_test_cubewithvcolors) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/X/kwxport_test_cubewithvcolors.x", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); -} - -TEST(utXImporter, importTestCubeBinary) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/X/test_cube_binary.x", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); -} - -TEST(utXImporter, importTestCubeCompressed) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/X/test_cube_compressed.x", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); -} - -TEST(utXImporter, importTestCubeText) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/X/test_cube_text.x", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); -} - -TEST(utXImporter, importTestWuson) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/X/Testwuson.X", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); -} - -TEST(utXImporter, TestFormatDetection) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/X/TestFormatDetection", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); -} - -TEST(utXImporter, importDwarf) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_NONBSD_DIR "/X/dwarf.x", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); -} diff --git a/libs/assimp/test/unit/utglTF2ImportExport.cpp b/libs/assimp/test/unit/utglTF2ImportExport.cpp deleted file mode 100644 index 00f76aa..0000000 --- a/libs/assimp/test/unit/utglTF2ImportExport.cpp +++ /dev/null @@ -1,834 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "AbstractImportExportBase.h" -#include "UnitTestPCH.h" - -#include <assimp/commonMetaData.h> -#include <assimp/postprocess.h> -#include <assimp/scene.h> -#include <assimp/Exporter.hpp> -#include <assimp/Importer.hpp> -#include <assimp/LogStream.hpp> -#include <assimp/DefaultLogger.hpp> - -#include <rapidjson/schema.h> - -#include <array> - -#include <assimp/material.h> -#include <assimp/GltfMaterial.h> - -using namespace Assimp; - -class utglTF2ImportExport : public AbstractImportExportBase { -public: - virtual bool importerMatTest(const char *file, bool spec_gloss, std::array<aiTextureMapMode, 2> exp_modes = { aiTextureMapMode_Wrap, aiTextureMapMode_Wrap }) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(file, aiProcess_ValidateDataStructure); - EXPECT_NE(scene, nullptr); - if (!scene) { - return false; - } - - EXPECT_TRUE(scene->HasMaterials()); - if (!scene->HasMaterials()) { - return false; - } - const aiMaterial *material = scene->mMaterials[0]; - - // This Material should be a PBR - aiShadingMode shadingMode; - EXPECT_EQ(aiReturn_SUCCESS, material->Get(AI_MATKEY_SHADING_MODEL, shadingMode)); - EXPECT_EQ(aiShadingMode_PBR_BRDF, shadingMode); - - // Should import the texture as diffuse and as base color - aiString path; - std::array<aiTextureMapMode,2> modes; - EXPECT_EQ(aiReturn_SUCCESS, material->GetTexture(aiTextureType_DIFFUSE, 0, &path, nullptr, nullptr, - nullptr, nullptr, modes.data())); - EXPECT_STREQ(path.C_Str(), "CesiumLogoFlat.png"); - EXPECT_EQ(exp_modes, modes); - - // Also as Base Color - EXPECT_EQ(aiReturn_SUCCESS, material->GetTexture(aiTextureType_BASE_COLOR, 0, &path, nullptr, nullptr, - nullptr, nullptr, modes.data())); - EXPECT_STREQ(path.C_Str(), "CesiumLogoFlat.png"); - EXPECT_EQ(exp_modes, modes); - - // Should have a MetallicFactor (default is 1.0) - ai_real metal_factor = ai_real(0.5); - EXPECT_EQ(aiReturn_SUCCESS, material->Get(AI_MATKEY_METALLIC_FACTOR, metal_factor)); - EXPECT_EQ(ai_real(0.0), metal_factor); - - // And a roughness factor (default is 1.0) - ai_real roughness_factor = ai_real(0.5); - EXPECT_EQ(aiReturn_SUCCESS, material->Get(AI_MATKEY_ROUGHNESS_FACTOR, roughness_factor)); - EXPECT_EQ(ai_real(1.0), roughness_factor); - - aiColor3D spec_color = { 0, 0, 0 }; - ai_real glossiness = ai_real(0.5); - if (spec_gloss) { - EXPECT_EQ(aiReturn_SUCCESS, material->Get(AI_MATKEY_COLOR_SPECULAR, spec_color)); - constexpr ai_real spec_val(0.20000000298023225); // From the file - EXPECT_EQ(spec_val, spec_color.r); - EXPECT_EQ(spec_val, spec_color.g); - EXPECT_EQ(spec_val, spec_color.b); - EXPECT_EQ(aiReturn_SUCCESS, material->Get(AI_MATKEY_GLOSSINESS_FACTOR, glossiness)); - EXPECT_EQ(ai_real(1.0), glossiness); - } else { - EXPECT_EQ(aiReturn_FAILURE, material->Get(AI_MATKEY_COLOR_SPECULAR, spec_color)); - EXPECT_EQ(aiReturn_FAILURE, material->Get(AI_MATKEY_GLOSSINESS_FACTOR, glossiness)); - } - - return true; - } - - virtual bool binaryImporterTest() { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/glTF2/2CylinderEngine-glTF-Binary/2CylinderEngine.glb", - aiProcess_ValidateDataStructure); - return nullptr != scene; - } - -#ifndef ASSIMP_BUILD_NO_EXPORT - virtual bool exporterTest() { - Assimp::Importer importer; - Assimp::Exporter exporter; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/glTF2/BoxTextured-glTF/BoxTextured.gltf", - aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); - EXPECT_EQ(aiReturn_SUCCESS, exporter.Export(scene, "gltf2", ASSIMP_TEST_MODELS_DIR "/glTF2/BoxTextured-glTF/BoxTextured_out.gltf")); - - return true; - } -#endif // ASSIMP_BUILD_NO_EXPORT -}; - -TEST_F(utglTF2ImportExport, importglTF2FromFileTest) { - EXPECT_TRUE(importerMatTest(ASSIMP_TEST_MODELS_DIR "/glTF2/BoxTextured-glTF/BoxTextured.gltf", false, {aiTextureMapMode_Mirror, aiTextureMapMode_Clamp})); -} - -TEST_F(utglTF2ImportExport, importBinaryglTF2FromFileTest) { - EXPECT_TRUE(binaryImporterTest()); -} - -TEST_F(utglTF2ImportExport, importglTF2_KHR_materials_pbrSpecularGlossiness) { - EXPECT_TRUE(importerMatTest(ASSIMP_TEST_MODELS_DIR "/glTF2/BoxTextured-glTF-pbrSpecularGlossiness/BoxTextured.gltf", true)); -} - -void VerifyClearCoatScene(const aiScene *scene) { - ASSERT_NE(nullptr, scene); - - ASSERT_TRUE(scene->HasMaterials()); - - // Find a specific Clearcoat material and check the values - const aiString partial_coated("Partial_Coated"); - bool found_partial_coat = false; - for (size_t i = 0; i < scene->mNumMaterials; ++i) { - const aiMaterial *material = scene->mMaterials[i]; - ASSERT_NE(nullptr, material); - if (material->GetName() == partial_coated) { - found_partial_coat = true; - - ai_real clearcoat_factor(0.0f); - EXPECT_EQ(aiReturn_SUCCESS, material->Get(AI_MATKEY_CLEARCOAT_FACTOR, clearcoat_factor)); - EXPECT_EQ(ai_real(1.0f), clearcoat_factor); - - ai_real clearcoat_rough_factor(0.0f); - EXPECT_EQ(aiReturn_SUCCESS, material->Get(AI_MATKEY_CLEARCOAT_ROUGHNESS_FACTOR, clearcoat_rough_factor)); - EXPECT_EQ(ai_real(0.03f), clearcoat_rough_factor); - - // Should import the texture as diffuse and as base color - aiString path; - std::array<aiTextureMapMode, 2> modes; - static const std::array<aiTextureMapMode, 2> exp_modes = { aiTextureMapMode_Wrap, aiTextureMapMode_Wrap }; - EXPECT_EQ(aiReturn_SUCCESS, material->GetTexture(AI_MATKEY_CLEARCOAT_TEXTURE, &path, nullptr, nullptr, - nullptr, nullptr, modes.data())); - EXPECT_STREQ(path.C_Str(), "PartialCoating.png"); - EXPECT_EQ(exp_modes, modes); - } - } - EXPECT_TRUE(found_partial_coat); -} - -TEST_F(utglTF2ImportExport, importglTF2_KHR_materials_clearcoat) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/glTF2/ClearCoat-glTF/ClearCoatTest.gltf", aiProcess_ValidateDataStructure); - VerifyClearCoatScene(scene); -} - -#ifndef ASSIMP_BUILD_NO_EXPORT - -TEST_F(utglTF2ImportExport, importglTF2AndExport_KHR_materials_clearcoat) { - { - Assimp::Importer importer; - Assimp::Exporter exporter; - const aiScene* scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/glTF2/ClearCoat-glTF/ClearCoatTest.gltf", aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); - // Export - EXPECT_EQ(aiReturn_SUCCESS, exporter.Export(scene, "glb2", ASSIMP_TEST_MODELS_DIR "/glTF2/ClearCoat-glTF/ClearCoatTest_out.glb")); - } - - // And re-import - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/glTF2/ClearCoat-glTF/ClearCoatTest_out.glb", aiProcess_ValidateDataStructure); - VerifyClearCoatScene(scene); -} - -TEST_F(utglTF2ImportExport, importglTF2AndExport_KHR_materials_pbrSpecularGlossiness) { - Assimp::Importer importer; - Assimp::Exporter exporter; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/glTF2/BoxTextured-glTF-pbrSpecularGlossiness/BoxTextured.gltf", - aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); - // Export - EXPECT_EQ(aiReturn_SUCCESS, exporter.Export(scene, "glb2", ASSIMP_TEST_MODELS_DIR "/glTF2/BoxTextured-glTF-pbrSpecularGlossiness/BoxTextured_out.glb")); - - // And re-import - EXPECT_TRUE(importerMatTest(ASSIMP_TEST_MODELS_DIR "/glTF2/BoxTextured-glTF-pbrSpecularGlossiness/BoxTextured_out.glb", true)); -} - -TEST_F(utglTF2ImportExport, importglTF2AndExportToOBJ) { - Assimp::Importer importer; - Assimp::Exporter exporter; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/glTF2/BoxTextured-glTF/BoxTextured.gltf", - aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); - EXPECT_EQ(aiReturn_SUCCESS, exporter.Export(scene, "obj", ASSIMP_TEST_MODELS_DIR "/glTF2/BoxTextured-glTF/BoxTextured_out.obj")); -} - -TEST_F(utglTF2ImportExport, importglTF2EmbeddedAndExportToOBJ) { - Assimp::Importer importer; - Assimp::Exporter exporter; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/glTF2/BoxTextured-glTF-Embedded/BoxTextured.gltf", - aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); - EXPECT_EQ(aiReturn_SUCCESS, exporter.Export(scene, "obj", ASSIMP_TEST_MODELS_DIR "/glTF2/BoxTextured-glTF-Embedded/BoxTextured_out.obj")); -} - -#endif // ASSIMP_BUILD_NO_EXPORT - -TEST_F(utglTF2ImportExport, importglTF2PrimitiveModePointsWithoutIndices) { - Assimp::Importer importer; - //Points without indices - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_00.gltf", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); - EXPECT_EQ(scene->mMeshes[0]->mNumVertices, 1024u); - for (unsigned int i = 0; i < scene->mMeshes[0]->mNumFaces; ++i) { - EXPECT_EQ(scene->mMeshes[0]->mFaces[i].mNumIndices, 1u); - EXPECT_EQ(scene->mMeshes[0]->mFaces[i].mIndices[0], i); - } -} - -TEST_F(utglTF2ImportExport, importglTF2PrimitiveModeLinesWithoutIndices) { - Assimp::Importer importer; - //Lines without indices - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_01.gltf", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); - EXPECT_EQ(scene->mMeshes[0]->mNumVertices, 8u); - for (unsigned int i = 0; i < scene->mMeshes[0]->mNumFaces; ++i) { - EXPECT_EQ(scene->mMeshes[0]->mFaces[i].mNumIndices, 2u); - EXPECT_EQ(scene->mMeshes[0]->mFaces[i].mIndices[0], i * 2u); - EXPECT_EQ(scene->mMeshes[0]->mFaces[i].mIndices[1], i * 2u + 1u); - } -} - -TEST_F(utglTF2ImportExport, importglTF2PrimitiveModeLinesLoopWithoutIndices) { - Assimp::Importer importer; - //Lines loop without indices - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_02.gltf", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); - EXPECT_EQ(scene->mMeshes[0]->mNumVertices, 4u); - - std::array<unsigned int, 5> l1 = { { 0u, 1u, 2u, 3u, 0u } }; - EXPECT_EQ(scene->mMeshes[0]->mFaces[0].mNumIndices, 2u); - for (unsigned int i = 0; i < scene->mMeshes[0]->mNumFaces; ++i) { - EXPECT_EQ(scene->mMeshes[0]->mFaces[i].mNumIndices, 2u); - EXPECT_EQ(scene->mMeshes[0]->mFaces[i].mIndices[0], l1[i]); - EXPECT_EQ(scene->mMeshes[0]->mFaces[i].mIndices[1], l1[i + 1u]); - } -} - -TEST_F(utglTF2ImportExport, importglTF2PrimitiveModeLinesStripWithoutIndices) { - Assimp::Importer importer; - //Lines strip without indices - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_03.gltf", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); - EXPECT_EQ(scene->mMeshes[0]->mNumVertices, 5u); - - EXPECT_EQ(scene->mMeshes[0]->mFaces[0].mNumIndices, 2u); - for (unsigned int i = 0; i < scene->mMeshes[0]->mNumFaces; ++i) { - EXPECT_EQ(scene->mMeshes[0]->mFaces[i].mNumIndices, 2u); - EXPECT_EQ(scene->mMeshes[0]->mFaces[i].mIndices[0], i); - EXPECT_EQ(scene->mMeshes[0]->mFaces[i].mIndices[1], i + 1u); - } -} - -TEST_F(utglTF2ImportExport, importglTF2PrimitiveModeTrianglesStripWithoutIndices) { - Assimp::Importer importer; - //Triangles strip without indices - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_04.gltf", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); - EXPECT_EQ(scene->mMeshes[0]->mNumFaces, 2u); - EXPECT_EQ(scene->mMeshes[0]->mNumVertices, 4u); - std::array<unsigned int, 3> f1 = { { 0u, 1u, 2u } }; - EXPECT_EQ(scene->mMeshes[0]->mFaces[0].mNumIndices, 3u); - for (unsigned int i = 0; i < 3; ++i) { - EXPECT_EQ(scene->mMeshes[0]->mFaces[0].mIndices[i], f1[i]); - } - - std::array<unsigned int, 3> f2 = { { 2u, 1u, 3u } }; - EXPECT_EQ(scene->mMeshes[0]->mFaces[1].mNumIndices, 3u); - for (size_t i = 0; i < 3; ++i) { - EXPECT_EQ(scene->mMeshes[0]->mFaces[1].mIndices[i], f2[i]); - } -} - -TEST_F(utglTF2ImportExport, importglTF2PrimitiveModeTrianglesFanWithoutIndices) { - Assimp::Importer importer; - //Triangles fan without indices - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_05.gltf", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); - EXPECT_EQ(scene->mMeshes[0]->mNumFaces, 2u); - EXPECT_EQ(scene->mMeshes[0]->mNumVertices, 4u); - std::array<unsigned int, 3> f1 = { { 0u, 1u, 2u } }; - EXPECT_EQ(scene->mMeshes[0]->mFaces[0].mNumIndices, 3u); - for (size_t i = 0; i < 3; ++i) { - EXPECT_EQ(scene->mMeshes[0]->mFaces[0].mIndices[i], f1[i]); - } - - std::array<unsigned int, 3> f2 = { { 0u, 2u, 3u } }; - EXPECT_EQ(scene->mMeshes[0]->mFaces[1].mNumIndices, 3u); - for (size_t i = 0; i < 3; ++i) { - EXPECT_EQ(scene->mMeshes[0]->mFaces[1].mIndices[i], f2[i]); - } -} - -TEST_F(utglTF2ImportExport, importglTF2PrimitiveModeTrianglesWithoutIndices) { - Assimp::Importer importer; - //Triangles without indices - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_06.gltf", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); - EXPECT_EQ(scene->mMeshes[0]->mNumFaces, 2u); - EXPECT_EQ(scene->mMeshes[0]->mNumVertices, 6u); - std::array<unsigned int, 3> f1 = { { 0u, 1u, 2u } }; - EXPECT_EQ(scene->mMeshes[0]->mFaces[0].mNumIndices, 3u); - for (size_t i = 0; i < 3; ++i) { - EXPECT_EQ(scene->mMeshes[0]->mFaces[0].mIndices[i], f1[i]); - } - - std::array<unsigned int, 3> f2 = { { 3u, 4u, 5u } }; - EXPECT_EQ(scene->mMeshes[0]->mFaces[1].mNumIndices, 3u); - for (size_t i = 0; i < 3; ++i) { - EXPECT_EQ(scene->mMeshes[0]->mFaces[1].mIndices[i], f2[i]); - } -} - -TEST_F(utglTF2ImportExport, importglTF2PrimitiveModePoints) { - Assimp::Importer importer; - //Line loop - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_07.gltf", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); - EXPECT_EQ(scene->mMeshes[0]->mNumVertices, 1024u); - for (unsigned int i = 0; i < scene->mMeshes[0]->mNumFaces; ++i) { - EXPECT_EQ(scene->mMeshes[0]->mFaces[i].mNumIndices, 1u); - EXPECT_EQ(scene->mMeshes[0]->mFaces[i].mIndices[0], i); - } -} - -TEST_F(utglTF2ImportExport, importglTF2PrimitiveModeLines) { - Assimp::Importer importer; - //Lines - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_08.gltf", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); - EXPECT_EQ(scene->mMeshes[0]->mNumVertices, 4u); - std::array<unsigned int, 5> l1 = { { 0u, 3u, 2u, 1u, 0u } }; - EXPECT_EQ(scene->mMeshes[0]->mFaces[0].mNumIndices, 2u); - for (unsigned int i = 0; i < scene->mMeshes[0]->mNumFaces; ++i) { - EXPECT_EQ(scene->mMeshes[0]->mFaces[i].mIndices[0], l1[i]); - EXPECT_EQ(scene->mMeshes[0]->mFaces[i].mIndices[1], l1[i + 1]); - } -} - -TEST_F(utglTF2ImportExport, importglTF2PrimitiveModeLineLoop) { - Assimp::Importer importer; - //Line loop - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_09.gltf", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); - EXPECT_EQ(scene->mMeshes[0]->mNumVertices, 4u); - std::array<unsigned int, 5> l1 = { { 0, 3u, 2u, 1u, 0u } }; - EXPECT_EQ(scene->mMeshes[0]->mFaces[0].mNumIndices, 2u); - for (unsigned int i = 0; i < scene->mMeshes[0]->mNumFaces; ++i) { - EXPECT_EQ(scene->mMeshes[0]->mFaces[i].mIndices[0], l1[i]); - EXPECT_EQ(scene->mMeshes[0]->mFaces[i].mIndices[1], l1[i + 1]); - } -} - -TEST_F(utglTF2ImportExport, importglTF2PrimitiveModeLineStrip) { - Assimp::Importer importer; - //Lines Strip - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_10.gltf", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); - EXPECT_EQ(scene->mMeshes[0]->mNumVertices, 4u); - std::array<unsigned int, 5> l1 = { { 0u, 3u, 2u, 1u, 0u } }; - EXPECT_EQ(scene->mMeshes[0]->mFaces[0].mNumIndices, 2u); - for (unsigned int i = 0; i < scene->mMeshes[0]->mNumFaces; ++i) { - EXPECT_EQ(scene->mMeshes[0]->mFaces[i].mIndices[0], l1[i]); - EXPECT_EQ(scene->mMeshes[0]->mFaces[i].mIndices[1], l1[i + 1]); - } -} - -TEST_F(utglTF2ImportExport, importglTF2PrimitiveModeTrianglesStrip) { - Assimp::Importer importer; - //Triangles strip - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_11.gltf", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); - EXPECT_EQ(scene->mMeshes[0]->mNumFaces, 2u); - EXPECT_EQ(scene->mMeshes[0]->mNumVertices, 4u); - std::array<unsigned int, 3> f1 = { { 0u, 3u, 1u } }; - EXPECT_EQ(scene->mMeshes[0]->mFaces[0].mNumIndices, 3u); - for (size_t i = 0; i < 3; ++i) { - EXPECT_EQ(scene->mMeshes[0]->mFaces[0].mIndices[i], f1[i]); - } - - std::array<unsigned int, 3> f2 = { { 1u, 3u, 2u } }; - EXPECT_EQ(scene->mMeshes[0]->mFaces[1].mNumIndices, 3u); - for (size_t i = 0; i < 3; ++i) { - EXPECT_EQ(scene->mMeshes[0]->mFaces[1].mIndices[i], f2[i]); - } -} - -TEST_F(utglTF2ImportExport, importglTF2PrimitiveModeTrianglesFan) { - Assimp::Importer importer; - //Triangles fan - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_12.gltf", aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); - EXPECT_EQ(scene->mMeshes[0]->mNumVertices, 4u); - EXPECT_EQ(scene->mMeshes[0]->mNumFaces, 2u); - std::array<unsigned int, 3> f1 = { { 0u, 3u, 2u } }; - EXPECT_EQ(scene->mMeshes[0]->mFaces[0].mNumIndices, 3u); - for (size_t i = 0; i < 3; ++i) { - EXPECT_EQ(scene->mMeshes[0]->mFaces[0].mIndices[i], f1[i]); - } - - std::array<unsigned int, 3> f2 = { { 0u, 2u, 1u } }; - EXPECT_EQ(scene->mMeshes[0]->mFaces[1].mNumIndices, 3u); - for (size_t i = 0; i < 3; ++i) { - EXPECT_EQ(scene->mMeshes[0]->mFaces[1].mIndices[i], f2[i]); - } -} - -std::vector<char> ReadFile(const char *name) { - std::vector<char> ret; - - FILE *p = ::fopen(name, "r"); - if (nullptr == p) { - return ret; - } - - ::fseek(p, 0, SEEK_END); - const size_t size = ::ftell(p); - ::fseek(p, 0, SEEK_SET); - - ret.resize(size); - const size_t readSize = ::fread(&ret[0], 1, size, p); - EXPECT_EQ(readSize, size); - ::fclose(p); - - return ret; -} - -TEST_F(utglTF2ImportExport, importglTF2FromMemory) { - /*const auto flags = aiProcess_CalcTangentSpace | aiProcess_Triangulate | aiProcess_RemoveComponent | - aiProcess_GenSmoothNormals | aiProcess_PreTransformVertices | aiProcess_FixInfacingNormals | - aiProcess_FindDegenerates | aiProcess_GenUVCoords | aiProcess_SortByPType; - const auto& buff = ReadFile("C:\\Users\\kimkulling\\Downloads\\camel\\camel\\scene.gltf");*/ - /*const aiScene* Scene = ::aiImportFileFromMemory(&buff[0], buff.size(), flags, ".gltf"); - EXPECT_EQ( nullptr, Scene );*/ -} - -TEST_F(utglTF2ImportExport, bug_import_simple_skin) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/glTF2/simple_skin/simple_skin.gltf", - aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); -} - -TEST_F(utglTF2ImportExport, import_cameras) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/glTF2/cameras/Cameras.gltf", - aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); -} - -TEST_F(utglTF2ImportExport, incorrect_vertex_arrays) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/glTF2/IncorrectVertexArrays/Cube.gltf", - aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); - EXPECT_EQ(scene->mMeshes[0]->mNumVertices, 36u); - EXPECT_EQ(scene->mMeshes[0]->mNumFaces, 12u); - EXPECT_EQ(scene->mMeshes[1]->mNumVertices, 35u); - EXPECT_EQ(scene->mMeshes[1]->mNumFaces, 11u); - EXPECT_EQ(scene->mMeshes[2]->mNumVertices, 36u); - EXPECT_EQ(scene->mMeshes[2]->mNumFaces, 18u); - EXPECT_EQ(scene->mMeshes[3]->mNumVertices, 35u); - EXPECT_EQ(scene->mMeshes[3]->mNumFaces, 17u); - EXPECT_EQ(scene->mMeshes[4]->mNumVertices, 36u); - EXPECT_EQ(scene->mMeshes[4]->mNumFaces, 12u); - EXPECT_EQ(scene->mMeshes[5]->mNumVertices, 35u); - EXPECT_EQ(scene->mMeshes[5]->mNumFaces, 11u); - EXPECT_EQ(scene->mMeshes[6]->mNumVertices, 36u); - EXPECT_EQ(scene->mMeshes[6]->mNumFaces, 18u); - EXPECT_EQ(scene->mMeshes[7]->mNumVertices, 35u); - EXPECT_EQ(scene->mMeshes[7]->mNumFaces, 17u); -} - -TEST_F(utglTF2ImportExport, texture_transform_test) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/glTF2/textureTransform/TextureTransformTest.gltf", - aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); -} - -#ifndef ASSIMP_BUILD_NO_EXPORT -TEST_F(utglTF2ImportExport, exportglTF2FromFileTest) { - EXPECT_TRUE(exporterTest()); -} - -TEST_F(utglTF2ImportExport, crash_in_anim_mesh_destructor) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/glTF2/glTF-Sample-Models/AnimatedMorphCube-glTF/AnimatedMorphCube.gltf", - aiProcess_ValidateDataStructure); - ASSERT_NE(nullptr, scene); - Assimp::Exporter exporter; - ASSERT_EQ(aiReturn_SUCCESS, exporter.Export(scene, "glb2", ASSIMP_TEST_MODELS_DIR "/glTF2/glTF-Sample-Models/AnimatedMorphCube-glTF/AnimatedMorphCube_out.glTF")); -} - -TEST_F(utglTF2ImportExport, error_string_preserved) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/glTF2/MissingBin/BoxTextured.gltf", - aiProcess_ValidateDataStructure); - ASSERT_EQ(nullptr, scene); - std::string error = importer.GetErrorString(); - ASSERT_NE(error.find("BoxTextured0.bin"), std::string::npos) << "Error string should contain an error about missing .bin file"; -} - -TEST_F(utglTF2ImportExport, export_bad_accessor_bounds) { - Assimp::Importer importer; - Assimp::Exporter exporter; - const aiScene* scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/glTF2/BoxWithInfinites-glTF-Binary/BoxWithInfinites.glb", aiProcess_ValidateDataStructure); - ASSERT_NE(scene, nullptr); - - EXPECT_EQ(aiReturn_SUCCESS, exporter.Export(scene, "glb2", ASSIMP_TEST_MODELS_DIR "/glTF2/BoxWithInfinites-glTF-Binary/BoxWithInfinites_out.glb")); - EXPECT_EQ(aiReturn_SUCCESS, exporter.Export(scene, "gltf2", ASSIMP_TEST_MODELS_DIR "/glTF2/BoxWithInfinites-glTF-Binary/BoxWithInfinites_out.gltf")); -} - -TEST_F(utglTF2ImportExport, export_normalized_normals) { - Assimp::Importer importer; - Assimp::Exporter exporter; - const aiScene* scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/glTF2/BoxBadNormals-glTF-Binary/BoxBadNormals.glb", aiProcess_ValidateDataStructure); - ASSERT_NE(scene, nullptr); - EXPECT_EQ(aiReturn_SUCCESS, exporter.Export(scene, "glb2", ASSIMP_TEST_MODELS_DIR "/glTF2/BoxBadNormals-glTF-Binary/BoxBadNormals_out.glb")); - - // load in again and ensure normal-length normals but no Nan's or Inf's introduced - scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/glTF2/BoxBadNormals-glTF-Binary/BoxBadNormals_out.glb", aiProcess_ValidateDataStructure); - for ( auto i = 0u; i < scene->mMeshes[0]->mNumVertices; ++i ) { - const auto length = scene->mMeshes[0]->mNormals[i].Length(); - EXPECT_TRUE(abs(length) < 1e-6 || abs(length - 1) < ai_epsilon); - } -} - -#endif // ASSIMP_BUILD_NO_EXPORT - -TEST_F(utglTF2ImportExport, sceneMetadata) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/glTF2/BoxTextured-glTF/BoxTextured.gltf", - aiProcess_ValidateDataStructure); - ASSERT_NE(scene, nullptr); - ASSERT_NE(scene->mMetaData, nullptr); - { - ASSERT_TRUE(scene->mMetaData->HasKey(AI_METADATA_SOURCE_FORMAT)); - aiString format; - ASSERT_TRUE(scene->mMetaData->Get(AI_METADATA_SOURCE_FORMAT, format)); - ASSERT_EQ(strcmp(format.C_Str(), "glTF2 Importer"), 0); - } - { - ASSERT_TRUE(scene->mMetaData->HasKey(AI_METADATA_SOURCE_FORMAT_VERSION)); - aiString version; - ASSERT_TRUE(scene->mMetaData->Get(AI_METADATA_SOURCE_FORMAT_VERSION, version)); - ASSERT_EQ(strcmp(version.C_Str(), "2.0"), 0); - } - { - ASSERT_TRUE(scene->mMetaData->HasKey(AI_METADATA_SOURCE_GENERATOR)); - aiString generator; - ASSERT_TRUE(scene->mMetaData->Get(AI_METADATA_SOURCE_GENERATOR, generator)); - ASSERT_EQ(strcmp(generator.C_Str(), "COLLADA2GLTF"), 0); - } -} - -TEST_F(utglTF2ImportExport, texcoords) { - - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/glTF2/BoxTexcoords-glTF/boxTexcoords.gltf", aiProcess_ValidateDataStructure); - ASSERT_NE(scene, nullptr); - ASSERT_TRUE(scene->HasMaterials()); - const aiMaterial *material = scene->mMaterials[0]; - - aiString path; - unsigned int uvIndex = 255; - aiTextureMapMode modes[2]; - EXPECT_EQ(aiReturn_SUCCESS, material->GetTexture(AI_MATKEY_BASE_COLOR_TEXTURE, &path, nullptr, &uvIndex, nullptr, nullptr, modes)); - EXPECT_STREQ(path.C_Str(), "texture.png"); - EXPECT_EQ(uvIndex, 0u); - - uvIndex = 255; - EXPECT_EQ(aiReturn_SUCCESS, material->GetTexture(AI_MATKEY_GLTF_PBRMETALLICROUGHNESS_METALLICROUGHNESS_TEXTURE, &path, nullptr, &uvIndex, nullptr, nullptr, modes)); - EXPECT_STREQ(path.C_Str(), "texture.png"); - EXPECT_EQ(uvIndex, 1u); -} - -#ifndef ASSIMP_BUILD_NO_EXPORT - -TEST_F(utglTF2ImportExport, texcoords_export) { - { - Assimp::Importer importer; - Assimp::Exporter exporter; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/glTF2/BoxTexcoords-glTF/boxTexcoords.gltf", aiProcess_ValidateDataStructure); - ASSERT_NE(scene, nullptr); - ASSERT_EQ(aiReturn_SUCCESS, exporter.Export(scene, "glb2", ASSIMP_TEST_MODELS_DIR "/glTF2/BoxTexcoords-glTF/boxTexcoords.gltf_out.glb")); - } - - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/glTF2/BoxTexcoords-glTF/boxTexcoords.gltf", aiProcess_ValidateDataStructure); - ASSERT_NE(scene, nullptr); - - ASSERT_TRUE(scene->HasMaterials()); - const aiMaterial *material = scene->mMaterials[0]; - - aiString path; - unsigned int uvIndex = 255; - aiTextureMapMode modes[2]; - EXPECT_EQ(aiReturn_SUCCESS, material->GetTexture(AI_MATKEY_BASE_COLOR_TEXTURE, &path, nullptr, &uvIndex, nullptr, nullptr, modes)); - EXPECT_STREQ(path.C_Str(), "texture.png"); - EXPECT_EQ(uvIndex, 0u); - - uvIndex = 255; - EXPECT_EQ(aiReturn_SUCCESS, material->GetTexture(AI_MATKEY_GLTF_PBRMETALLICROUGHNESS_METALLICROUGHNESS_TEXTURE, &path, nullptr, &uvIndex, nullptr, nullptr, modes)); - EXPECT_STREQ(path.C_Str(), "texture.png"); - EXPECT_EQ(uvIndex, 1u); -} - -#endif // ASSIMP_BUILD_NO_EXPORT -TEST_F(utglTF2ImportExport, recursive_nodes) { - Assimp::Importer importer; - const aiScene* scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/glTF2/RecursiveNodes/RecursiveNodes.gltf", aiProcess_ValidateDataStructure); - EXPECT_EQ(nullptr, scene); -} - -TEST_F(utglTF2ImportExport, norootnode_noscene) { - Assimp::Importer importer; - const aiScene* scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/glTF2/TestNoRootNode/NoScene.gltf", aiProcess_ValidateDataStructure); - ASSERT_EQ(scene, nullptr); -} - -TEST_F(utglTF2ImportExport, norootnode_scenewithoutnodes) { - Assimp::Importer importer; - const aiScene* scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/glTF2/TestNoRootNode/SceneWithoutNodes.gltf", aiProcess_ValidateDataStructure); - ASSERT_NE(scene, nullptr); - ASSERT_NE(scene->mRootNode, nullptr); -} - -// Shall not crash! -TEST_F(utglTF2ImportExport, norootnode_issue_3269) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/glTF2/issue_3269/texcoord_crash.gltf", aiProcess_ValidateDataStructure); - ASSERT_EQ(scene, nullptr); -} - -TEST_F(utglTF2ImportExport, indexOutOfRange) { - // The contents of an asset should not lead to an assert. - Assimp::Importer importer; - - struct LogObserver : Assimp::LogStream { - bool m_observedWarning = false; - void write(const char *message) override { - m_observedWarning = m_observedWarning || std::strstr(message, "faces were dropped"); - } - }; - LogObserver logObserver; - - DefaultLogger::get()->attachStream(&logObserver); - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/glTF2/IndexOutOfRange/IndexOutOfRange.gltf", aiProcess_ValidateDataStructure); - ASSERT_NE(scene, nullptr); - ASSERT_NE(scene->mRootNode, nullptr); - ASSERT_EQ(scene->mNumMeshes, 1u); - EXPECT_EQ(scene->mMeshes[0]->mNumFaces, 11u); - DefaultLogger::get()->detachStream(&logObserver); - EXPECT_TRUE(logObserver.m_observedWarning); -} - -TEST_F(utglTF2ImportExport, allIndicesOutOfRange) { - // The contents of an asset should not lead to an assert. - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/glTF2/IndexOutOfRange/AllIndicesOutOfRange.gltf", aiProcess_ValidateDataStructure); - ASSERT_EQ(scene, nullptr); - std::string error = importer.GetErrorString(); - ASSERT_NE(error.find("Mesh \"Mesh\" has no faces"), std::string::npos); -} - -///////////////////////////////// -// Draco decoding - -TEST_F(utglTF2ImportExport, import_dracoEncoded) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/glTF2/draco/2CylinderEngine.gltf", - aiProcess_ValidateDataStructure); -#ifndef ASSIMP_ENABLE_DRACO - // No draco support, scene should not load - ASSERT_EQ(scene, nullptr); -#else - ASSERT_NE(scene, nullptr); - ASSERT_NE(scene->mMetaData, nullptr); - { - ASSERT_TRUE(scene->mMetaData->HasKey(AI_METADATA_SOURCE_FORMAT)); - aiString format; - ASSERT_TRUE(scene->mMetaData->Get(AI_METADATA_SOURCE_FORMAT, format)); - ASSERT_EQ(strcmp(format.C_Str(), "glTF2 Importer"), 0); - } - { - ASSERT_TRUE(scene->mMetaData->HasKey(AI_METADATA_SOURCE_FORMAT_VERSION)); - aiString version; - ASSERT_TRUE(scene->mMetaData->Get(AI_METADATA_SOURCE_FORMAT_VERSION, version)); - ASSERT_EQ(strcmp(version.C_Str(), "2.0"), 0); - } - { - ASSERT_TRUE(scene->mMetaData->HasKey(AI_METADATA_SOURCE_GENERATOR)); - aiString generator; - ASSERT_TRUE(scene->mMetaData->Get(AI_METADATA_SOURCE_GENERATOR, generator)); - ASSERT_EQ(strcmp(generator.C_Str(), "COLLADA2GLTF"), 0); - } -#endif -} - -TEST_F(utglTF2ImportExport, wrongTypes) { - // Deliberately broken version of the BoxTextured.gltf asset. - using tup_T = std::tuple<std::string, std::string, std::string, std::string>; - std::vector<tup_T> wrongTypes = { - { "/glTF2/wrongTypes/badArray.gltf", "array", "primitives", "meshes[0]" }, - { "/glTF2/wrongTypes/badString.gltf", "string", "name", "scenes[0]" }, - { "/glTF2/wrongTypes/badUint.gltf", "uint", "index", "materials[0]" }, - { "/glTF2/wrongTypes/badNumber.gltf", "number", "scale", "materials[0]" }, - { "/glTF2/wrongTypes/badObject.gltf", "object", "pbrMetallicRoughness", "materials[0]" }, - { "/glTF2/wrongTypes/badExtension.gltf", "object", "KHR_texture_transform", "materials[0]" } - }; - for (const auto& tuple : wrongTypes) - { - const auto& file = std::get<0>(tuple); - const auto& type = std::get<1>(tuple); - const auto& member = std::get<2>(tuple); - const auto& context = std::get<3>(tuple); - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR + file , aiProcess_ValidateDataStructure); - ASSERT_EQ(scene, nullptr); - const std::string error = importer.GetErrorString(); - EXPECT_FALSE(error.empty()); - EXPECT_NE(error.find(member + "\" was not of type \"" + type + "\" when reading " + context), std::string::npos); - } -} - -namespace { - /// This class provides a fake schema to the GLTF importer. - /// It just checks that the file has a top-level "scene" property which is an integer. - class FakeSchemaProvider : public rapidjson::IRemoteSchemaDocumentProvider - { - public: - FakeSchemaProvider(const char* schemaName) : - m_schemaName(schemaName) - { - rapidjson::Document schemaDoc; - schemaDoc.Parse(R"==({"properties":{"scene" : { "type" : "integer" }}, "required": [ "scene" ]})=="); - EXPECT_FALSE(schemaDoc.HasParseError()); - m_schema.reset(new rapidjson::SchemaDocument(schemaDoc, m_schemaName.c_str(), static_cast<rapidjson::SizeType>(m_schemaName.size()), this)); - } - - const rapidjson::SchemaDocument* GetRemoteDocument(const char* uri, rapidjson::SizeType) override { - if (m_schemaName == uri) { - return m_schema.get(); - } - return nullptr; - } - - private: - std::string m_schemaName; - std::unique_ptr<const rapidjson::SchemaDocument> m_schema; - }; -} - -TEST_F(utglTF2ImportExport, schemaCheckPass) { - FakeSchemaProvider schemaProvider("glTF.schema.json"); - Assimp::Importer importer; - importer.SetPropertyPointer(AI_CONFIG_IMPORT_SCHEMA_DOCUMENT_PROVIDER, &schemaProvider); - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/glTF2/BoxTextured-glTF/BoxTextured.gltf", aiProcess_ValidateDataStructure); - EXPECT_NE(scene, nullptr); - EXPECT_STREQ(importer.GetErrorString(), ""); -} - -TEST_F(utglTF2ImportExport, schemaCheckFail) { - FakeSchemaProvider schemaProvider("glTF.schema.json"); - Assimp::Importer importer; - importer.SetPropertyPointer(AI_CONFIG_IMPORT_SCHEMA_DOCUMENT_PROVIDER, &schemaProvider); - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/glTF2/SchemaFailures/sceneWrongType.gltf", aiProcess_ValidateDataStructure); - EXPECT_EQ(scene, nullptr); - const std::string errorString = importer.GetErrorString(); - EXPECT_NE(errorString.find("The JSON document did not satisfy the glTF2 schema"), std::string::npos); -} - -TEST_F(utglTF2ImportExport, noSchemaFound) { - // More than one importer might make use the provider, but not all schemas might be present. - // Check that the glTF importer handles the case when an non-null provider returns null when asked for schemas. - FakeSchemaProvider schemaProvider("missingSchema.json"); - Assimp::Importer importer; - importer.SetPropertyPointer(AI_CONFIG_IMPORT_SCHEMA_DOCUMENT_PROVIDER, &schemaProvider); - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/glTF2/BoxTextured-glTF/BoxTextured.gltf", aiProcess_ValidateDataStructure); - EXPECT_NE(scene, nullptr); - EXPECT_STREQ(importer.GetErrorString(), ""); -} diff --git a/libs/assimp/test/unit/utglTFImportExport.cpp b/libs/assimp/test/unit/utglTFImportExport.cpp deleted file mode 100644 index cb20c15..0000000 --- a/libs/assimp/test/unit/utglTFImportExport.cpp +++ /dev/null @@ -1,111 +0,0 @@ -/* ---------------------------------------------------------------------------- -Open Asset Import Library (assimp) ---------------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the following -conditions are met: - -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its -contributors may be used to endorse or promote products -derived from this software without specific prior -written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------- -*/ -#include "AbstractImportExportBase.h" -#include "UnitTestPCH.h" - -#include <assimp/postprocess.h> -#include <assimp/Importer.hpp> - -#include <assimp/commonMetaData.h> -#include <assimp/scene.h> - -using namespace Assimp; - -class utglTFImportExport : public AbstractImportExportBase { -public: - bool importerTest() override { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/glTF/TwoBoxes/TwoBoxes.gltf", aiProcess_ValidateDataStructure); - return nullptr != scene; - } -}; - -TEST_F(utglTFImportExport, importglTFFromFileTest) { - EXPECT_TRUE(importerTest()); -} - -TEST_F(utglTFImportExport, incorrect_vertex_arrays) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/glTF/IncorrectVertexArrays/Cube_v1.gltf", - aiProcess_ValidateDataStructure); - EXPECT_NE(nullptr, scene); - EXPECT_EQ(scene->mMeshes[0]->mNumVertices, 36u); - EXPECT_EQ(scene->mMeshes[0]->mNumFaces, 12u); - EXPECT_EQ(scene->mMeshes[1]->mNumVertices, 35u); - EXPECT_EQ(scene->mMeshes[1]->mNumFaces, 11u); - EXPECT_EQ(scene->mMeshes[2]->mNumVertices, 36u); - EXPECT_EQ(scene->mMeshes[2]->mNumFaces, 18u); - EXPECT_EQ(scene->mMeshes[3]->mNumVertices, 35u); - EXPECT_EQ(scene->mMeshes[3]->mNumFaces, 17u); - EXPECT_EQ(scene->mMeshes[4]->mNumVertices, 36u); - EXPECT_EQ(scene->mMeshes[4]->mNumFaces, 12u); - EXPECT_EQ(scene->mMeshes[5]->mNumVertices, 35u); - EXPECT_EQ(scene->mMeshes[5]->mNumFaces, 11u); - EXPECT_EQ(scene->mMeshes[6]->mNumVertices, 36u); - EXPECT_EQ(scene->mMeshes[6]->mNumFaces, 18u); - EXPECT_EQ(scene->mMeshes[7]->mNumVertices, 35u); - EXPECT_EQ(scene->mMeshes[7]->mNumFaces, 17u); -} - -TEST_F(utglTFImportExport, sceneMetadata) { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/glTF/TwoBoxes/TwoBoxes.gltf", aiProcess_ValidateDataStructure); - ASSERT_TRUE(scene); - ASSERT_TRUE(scene->mMetaData); - { - ASSERT_TRUE(scene->mMetaData->HasKey(AI_METADATA_SOURCE_FORMAT)); - aiString format; - ASSERT_TRUE(scene->mMetaData->Get(AI_METADATA_SOURCE_FORMAT, format)); - ASSERT_EQ(strcmp(format.C_Str(), "glTF Importer"), 0); - } - { - ASSERT_TRUE(scene->mMetaData->HasKey(AI_METADATA_SOURCE_FORMAT_VERSION)); - aiString version; - ASSERT_TRUE(scene->mMetaData->Get(AI_METADATA_SOURCE_FORMAT_VERSION, version)); - ASSERT_EQ(strcmp(version.C_Str(), "1.0"), 0); - } - { - ASSERT_TRUE(scene->mMetaData->HasKey(AI_METADATA_SOURCE_GENERATOR)); - aiString generator; - ASSERT_TRUE(scene->mMetaData->Get(AI_METADATA_SOURCE_GENERATOR, generator)); - ASSERT_EQ(strncmp(generator.C_Str(), "collada2gltf", 12), 0); - } -} |