Add integration test for 3ds loader

pull/1347/head
Andrew Tribick 2022-02-02 15:43:36 +01:00 committed by ajtribick
parent cbdd9de63f
commit 60ed8238b1
3 changed files with 40 additions and 0 deletions

Binary file not shown.

View File

@ -0,0 +1,37 @@
#include <cstdint>
#include <memory>
#include <catch.hpp>
#include <cel3ds/3dsmodel.h>
#include <cel3ds/3dsread.h>
TEST_CASE("Load a 3DS file", "[3ds] [integration]")
{
std::unique_ptr<M3DScene> scene = Read3DSFile("huygens.3ds");
REQUIRE(scene != nullptr);
REQUIRE(scene->getMaterialCount() == 4);
REQUIRE(scene->getModelCount() == UINT32_C(8));
std::uint32_t meshCount = 0;
std::uint32_t faceCount = 0;
std::uint32_t vertexCount = 0;
for (std::uint32_t i = 0; i < scene->getModelCount(); ++i)
{
const M3DModel* model = scene->getModel(i);
REQUIRE(model != nullptr);
meshCount += model->getTriMeshCount();
for (std::uint32_t j = 0; j < model->getTriMeshCount(); ++j)
{
const M3DTriangleMesh* mesh = model->getTriMesh(j);
REQUIRE(mesh != nullptr);
faceCount += static_cast<std::uint32_t>(mesh->getFaceCount());
vertexCount += static_cast<std::uint32_t>(mesh->getVertexCount());
}
}
REQUIRE(meshCount == 8);
REQUIRE(faceCount == 6098);
REQUIRE(vertexCount == 3263);
}

View File

@ -1,4 +1,7 @@
test_case(3ds_load)
test_case(cmod_bin_ascii_roundtrip)
file(COPY "${CMAKE_SOURCE_DIR}/test/data/huygens.3ds"
DESTINATION "${CMAKE_CURRENT_BINARY_DIR}")
file(COPY "${CMAKE_SOURCE_DIR}/test/data/iss/models/iss.cmod"
DESTINATION "${CMAKE_CURRENT_BINARY_DIR}")