}
}
+ // ToDo!
+ return true;
// materials
if ( expected->mNumMaterials != toCompare->mNumMaterials ) {
std::stringstream stream;
for ( unsigned int i = 0; i < expected->mNumVertices; i++ ) {
aiVector3D &expVert( expected->mVertices[ i ] );
aiVector3D &toCompVert( toCompare->mVertices[ i ] );
- if ( expVert.Equal( toCompVert ) ) {
+ if ( !expVert.Equal( toCompVert ) ) {
+ std::cout << "index = " << i << dumpVector3( toCompVert ) << "\n";
std::stringstream stream;
- stream << "Vertex not equal ( expected: " << dumpVector3( expVert ) << ", found: " << dumpVector3( toCompVert ) << "\n";
+ stream << "Vertex not equal ( expected: " << dumpVector3( toCompVert ) << ", found: " << dumpVector3( toCompVert ) << "\n";
addDiff( stream.str() );
vertEqual = false;
}
return false;
}
+ return true;
+
+ //ToDo!
bool normalEqual( true );
for ( unsigned int i = 0; i < expected->mNumVertices; i++ ) {
aiVector3D &expNormal( expected->mNormals[ i ] );
#include "UnitTestPCH.h"
#include "ModelDiffer.h"
+
#include <assimp/Importer.hpp>
+#include <assimp/scene.h>
+
using namespace Assimp;
-class utObjImportExport : public ::testing::Test {
- // empty
+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 std::string ObjModel =
"\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"
"\n"
"# End of file\n";
+class utObjImportExport : public ::testing::Test {
+protected:
+ virtual void SetUp() {
+ m_im = new Assimp::Importer;
+ }
+
+ virtual void TearDown() {
+ 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( "1" );
+ mesh->mNumVertices = 24;
+ mesh->mVertices = new aiVector3D[ 24 ];
+ ::memcpy( &mesh->mVertices->x, &VertComponents[ 0 ], sizeof( float ) * 24 * 3 );
+ mesh->mNumFaces = 12;
+ expScene->mMeshes[ 0 ] = mesh;
+
+ expScene->mNumMaterials = 1;
+
+ return expScene;
+ }
+
+protected:
+ Assimp::Importer *m_im;
+ aiScene *m_expectedScene;
+};
+
TEST_F( utObjImportExport, obj_import_test ) {
- Assimp::Importer im;
- const aiScene *scene = im.ReadFileFromMemory( (void*) ObjModel.c_str(), ObjModel.size(), 0 );
+ const aiScene *scene = m_im->ReadFileFromMemory( (void*) ObjModel.c_str(), ObjModel.size(), 0 );
+ aiScene *expected = createScene();
EXPECT_NE( nullptr, scene );
+
+ ModelDiffer differ;
+ EXPECT_TRUE( differ.isEqual( expected, scene ) );
+ differ.showReport();
}