From e4ef89182d0ae696c1014d1fcfdc860650f7a93d Mon Sep 17 00:00:00 2001 From: Steve M Date: Sun, 20 Oct 2024 14:14:26 -0700 Subject: [PATCH] Add unit tests for X3D models which were broken at 5 Oct 2020 commit 3b9d4cf (#5828) * Add nascent tests against models broken by 5 Oct 2020 commit 3b9d4cf * Temporarily disable chevy unit test (CI failing) * Fix unit test assert value * Swap actual/expected values and add correct value NE asserts * Fix correct mesh count (indices 0-99 = 100 meshes) --------- Co-authored-by: Steve M --- test/unit/utX3DImportExport.cpp | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/test/unit/utX3DImportExport.cpp b/test/unit/utX3DImportExport.cpp index b0b6802b9..d2f31f342 100644 --- a/test/unit/utX3DImportExport.cpp +++ b/test/unit/utX3DImportExport.cpp @@ -73,3 +73,25 @@ TEST_F(utX3DImportExport, importX3DIndexedLineSet) { ASSERT_EQ(scene->mMeshes[0]->mFaces[i].mNumIndices, 2u); } } + +TEST_F(utX3DImportExport, importX3DComputerKeyboard) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/X3D/ComputerKeyboard.x3d", aiProcess_ValidateDataStructure); + ASSERT_NE(nullptr, scene); + // TODO: CHANGE INCORRECT VALUE WHEN IMPORTER FIXED + // As noted in assimp issue 4992, X3D importer was severely broken with 5 Oct 2020 commit 3b9d4cf. + // ComputerKeyboard.x3d should have 100 meshes but broken importer only has 4 + ASSERT_EQ(4u, scene->mNumMeshes); // Incorrect value from currently broken importer + ASSERT_NE(100u, scene->mNumMeshes); // Correct value, to be restored when importer fixed +} + +TEST_F(utX3DImportExport, importX3DChevyTahoe) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_NONBSD_DIR "/X3D/Chevy/ChevyTahoe.x3d", aiProcess_ValidateDataStructure); + ASSERT_NE(nullptr, scene); + // TODO: CHANGE INCORRECT VALUE WHEN IMPORTER FIXED + // As noted in assimp issue 4992, X3D importer was severely broken with 5 Oct 2020 commit 3b9d4cf. + // ChevyTahoe.x3d should have 20 meshes but broken importer only has 19 + ASSERT_EQ(19u, scene->mNumMeshes); // Incorrect value from currently broken importer + ASSERT_NE(20u, scene->mNumMeshes); // Correct value, to be restored when importer fixed +}