- Created tests/Core/Asset/ with tests for IResource, ResourceTypes, ResourceHandle, ResourceCache, ResourceDependencyGraph, ResourceGUID - Created tests/Core/IO/ with tests for IResourceLoader, ResourcePath, ResourceFileSystem, FileArchive, ResourcePackage - Reorganized tests/Resources/ into subdirectories: Texture/, Mesh/, Material/, Shader/, AudioClip/ - Added CMakeLists.txt for each new test subdirectory - Fixed Material.h missing ResourceManager.h include (lost during engine refactor) - tests/Core/CMakeLists.txt updated to include Asset/ and IO/ subdirectories
105 lines
3.5 KiB
C++
105 lines
3.5 KiB
C++
#include <gtest/gtest.h>
|
|
#include <XCEngine/Resources/Mesh/MeshImportSettings.h>
|
|
#include <XCEngine/Core/Asset/ResourceTypes.h>
|
|
#include <XCEngine/Core/Math/Vector3.h>
|
|
|
|
using namespace XCEngine::Resources;
|
|
using namespace XCEngine::Math;
|
|
|
|
namespace {
|
|
|
|
TEST(MeshImportSettings, DefaultConstructor) {
|
|
MeshImportSettings settings;
|
|
EXPECT_EQ(settings.GetImportFlags(), MeshImportFlags::None);
|
|
EXPECT_FLOAT_EQ(settings.GetScale(), 1.0f);
|
|
EXPECT_EQ(settings.GetOffset(), Vector3::Zero());
|
|
EXPECT_TRUE(settings.GetAxisConversion());
|
|
EXPECT_FALSE(settings.GetMergeMeshes());
|
|
EXPECT_FLOAT_EQ(settings.GetOptimizeThreshold(), 0.3f);
|
|
EXPECT_FLOAT_EQ(settings.GetImportScale(), 1.0f);
|
|
EXPECT_FLOAT_EQ(settings.GetThreshold(), 0.0f);
|
|
}
|
|
|
|
TEST(MeshImportSettings, SetImportFlags) {
|
|
MeshImportSettings settings;
|
|
settings.SetImportFlags(MeshImportFlags::FlipUVs | MeshImportFlags::GenerateNormals);
|
|
EXPECT_TRUE(settings.HasImportFlag(MeshImportFlags::FlipUVs));
|
|
EXPECT_TRUE(settings.HasImportFlag(MeshImportFlags::GenerateNormals));
|
|
EXPECT_FALSE(settings.HasImportFlag(MeshImportFlags::GenerateTangents));
|
|
}
|
|
|
|
TEST(MeshImportSettings, AddImportFlag) {
|
|
MeshImportSettings settings;
|
|
settings.AddImportFlag(MeshImportFlags::FlipUVs);
|
|
EXPECT_TRUE(settings.HasImportFlag(MeshImportFlags::FlipUVs));
|
|
}
|
|
|
|
TEST(MeshImportSettings, RemoveImportFlag) {
|
|
MeshImportSettings settings;
|
|
settings.SetImportFlags(MeshImportFlags::FlipUVs | MeshImportFlags::GenerateNormals);
|
|
settings.RemoveImportFlag(MeshImportFlags::FlipUVs);
|
|
EXPECT_FALSE(settings.HasImportFlag(MeshImportFlags::FlipUVs));
|
|
EXPECT_TRUE(settings.HasImportFlag(MeshImportFlags::GenerateNormals));
|
|
}
|
|
|
|
TEST(MeshImportSettings, SetScale) {
|
|
MeshImportSettings settings;
|
|
settings.SetScale(2.0f);
|
|
EXPECT_FLOAT_EQ(settings.GetScale(), 2.0f);
|
|
}
|
|
|
|
TEST(MeshImportSettings, SetOffset) {
|
|
MeshImportSettings settings;
|
|
Vector3 offset(1.0f, 2.0f, 3.0f);
|
|
settings.SetOffset(offset);
|
|
EXPECT_EQ(settings.GetOffset(), offset);
|
|
}
|
|
|
|
TEST(MeshImportSettings, SetAxisConversion) {
|
|
MeshImportSettings settings;
|
|
settings.SetAxisConversion(false);
|
|
EXPECT_FALSE(settings.GetAxisConversion());
|
|
}
|
|
|
|
TEST(MeshImportSettings, SetMergeMeshes) {
|
|
MeshImportSettings settings;
|
|
settings.SetMergeMeshes(true);
|
|
EXPECT_TRUE(settings.GetMergeMeshes());
|
|
}
|
|
|
|
TEST(MeshImportSettings, SetOptimizeThreshold) {
|
|
MeshImportSettings settings;
|
|
settings.SetOptimizeThreshold(0.5f);
|
|
EXPECT_FLOAT_EQ(settings.GetOptimizeThreshold(), 0.5f);
|
|
}
|
|
|
|
TEST(MeshImportSettings, SetImportScale) {
|
|
MeshImportSettings settings;
|
|
settings.SetImportScale(0.5f);
|
|
EXPECT_FLOAT_EQ(settings.GetImportScale(), 0.5f);
|
|
}
|
|
|
|
TEST(MeshImportSettings, SetThreshold) {
|
|
MeshImportSettings settings;
|
|
settings.SetThreshold(0.01f);
|
|
EXPECT_FLOAT_EQ(settings.GetThreshold(), 0.01f);
|
|
}
|
|
|
|
TEST(MeshImportSettings, Clone) {
|
|
MeshImportSettings settings;
|
|
settings.SetImportFlags(MeshImportFlags::FlipUVs | MeshImportFlags::GenerateNormals);
|
|
settings.SetScale(2.0f);
|
|
settings.SetMergeMeshes(true);
|
|
|
|
auto cloned = settings.Clone();
|
|
ASSERT_NE(cloned, nullptr);
|
|
|
|
MeshImportSettings* clonedSettings = static_cast<MeshImportSettings*>(cloned.get());
|
|
EXPECT_TRUE(clonedSettings->HasImportFlag(MeshImportFlags::FlipUVs));
|
|
EXPECT_TRUE(clonedSettings->HasImportFlag(MeshImportFlags::GenerateNormals));
|
|
EXPECT_FLOAT_EQ(clonedSettings->GetScale(), 2.0f);
|
|
EXPECT_TRUE(clonedSettings->GetMergeMeshes());
|
|
}
|
|
|
|
} // namespace
|