@ -29,8 +29,8 @@
# include "Magnum/Mesh.h"
# include "Magnum/Math/Vector3.h"
# include "Magnum/Trade/AbstractImporter.h"
# include "Magnum/Trade/MeshData3D.h"
# include "MagnumPlugins/ObjImporter/ObjImporter.h"
# include "configure.h"
@ -88,6 +88,9 @@ struct ObjImporterTest: TestSuite::Tester {
void unsupportedKeyword ( ) ;
void unknownKeyword ( ) ;
/* Explicitly forbid system-wide plugin dependencies */
PluginManager : : Manager < AbstractImporter > _manager { " nonexistent " } ;
} ;
ObjImporterTest : : ObjImporterTest ( ) {
@ -139,14 +142,18 @@ ObjImporterTest::ObjImporterTest() {
& ObjImporterTest : : unsupportedKeyword ,
& ObjImporterTest : : unknownKeyword } ) ;
# ifdef OBJIMPORTER_PLUGIN_FILENAME
CORRADE_INTERNAL_ASSERT ( _manager . load ( OBJIMPORTER_PLUGIN_FILENAME ) & PluginManager : : LoadState : : Loaded ) ;
# endif
}
void ObjImporterTest : : pointMesh ( ) {
ObjImporter importer ;
CORRADE_VERIFY ( importer . openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " pointMesh.obj " ) ) ) ;
CORRADE_COMPARE ( importer . mesh3DCount ( ) , 1 ) ;
std : : unique_ptr < AbstractImporter > importer = _manager . instantiate ( " ObjImporter " ) ;
CORRADE_VERIFY ( importer - > openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " pointMesh.obj " ) ) ) ;
CORRADE_COMPARE ( importer - > mesh3DCount ( ) , 1 ) ;
const Containers : : Optional < MeshData3D > data = importer . mesh3D ( 0 ) ;
const Containers : : Optional < MeshData3D > data = importer - > mesh3D ( 0 ) ;
CORRADE_VERIFY ( data ) ;
CORRADE_COMPARE ( data - > primitive ( ) , MeshPrimitive : : Points ) ;
CORRADE_COMPARE ( data - > positionArrayCount ( ) , 1 ) ;
@ -161,11 +168,11 @@ void ObjImporterTest::pointMesh() {
}
void ObjImporterTest : : lineMesh ( ) {
ObjImporter importer ;
CORRADE_VERIFY ( importer . openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " lineMesh.obj " ) ) ) ;
CORRADE_COMPARE ( importer . mesh3DCount ( ) , 1 ) ;
std : : unique_ptr < AbstractImporter > importer = _manager . instantiate ( " ObjImporter " ) ;
CORRADE_VERIFY ( importer - > openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " lineMesh.obj " ) ) ) ;
CORRADE_COMPARE ( importer - > mesh3DCount ( ) , 1 ) ;
const Containers : : Optional < MeshData3D > data = importer . mesh3D ( 0 ) ;
const Containers : : Optional < MeshData3D > data = importer - > mesh3D ( 0 ) ;
CORRADE_VERIFY ( data ) ;
CORRADE_COMPARE ( data - > primitive ( ) , MeshPrimitive : : Lines ) ;
CORRADE_COMPARE ( data - > positionArrayCount ( ) , 1 ) ;
@ -180,11 +187,11 @@ void ObjImporterTest::lineMesh() {
}
void ObjImporterTest : : triangleMesh ( ) {
ObjImporter importer ;
CORRADE_VERIFY ( importer . openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " triangleMesh.obj " ) ) ) ;
CORRADE_COMPARE ( importer . mesh3DCount ( ) , 1 ) ;
std : : unique_ptr < AbstractImporter > importer = _manager . instantiate ( " ObjImporter " ) ;
CORRADE_VERIFY ( importer - > openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " triangleMesh.obj " ) ) ) ;
CORRADE_COMPARE ( importer - > mesh3DCount ( ) , 1 ) ;
const Containers : : Optional < MeshData3D > data = importer . mesh3D ( 0 ) ;
const Containers : : Optional < MeshData3D > data = importer - > mesh3D ( 0 ) ;
CORRADE_VERIFY ( data ) ;
CORRADE_COMPARE ( data - > primitive ( ) , MeshPrimitive : : Triangles ) ;
CORRADE_COMPARE ( data - > positionArrayCount ( ) , 1 ) ;
@ -200,22 +207,22 @@ void ObjImporterTest::triangleMesh() {
}
void ObjImporterTest : : mixedPrimitives ( ) {
ObjImporter importer ;
CORRADE_VERIFY ( importer . openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " mixedPrimitives.obj " ) ) ) ;
CORRADE_COMPARE ( importer . mesh3DCount ( ) , 1 ) ;
std : : unique_ptr < AbstractImporter > importer = _manager . instantiate ( " ObjImporter " ) ;
CORRADE_VERIFY ( importer - > openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " mixedPrimitives.obj " ) ) ) ;
CORRADE_COMPARE ( importer - > mesh3DCount ( ) , 1 ) ;
std : : ostringstream out ;
Error redirectError { & out } ;
CORRADE_VERIFY ( ! importer . mesh3D ( 0 ) ) ;
CORRADE_VERIFY ( ! importer - > mesh3D ( 0 ) ) ;
CORRADE_COMPARE ( out . str ( ) , " Trade::ObjImporter::mesh3D(): mixed primitive MeshPrimitive::Points and MeshPrimitive::Lines \n " ) ;
}
void ObjImporterTest : : positionsOnly ( ) {
ObjImporter importer ;
CORRADE_VERIFY ( importer . openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " triangleMesh.obj " ) ) ) ;
CORRADE_COMPARE ( importer . mesh3DCount ( ) , 1 ) ;
std : : unique_ptr < AbstractImporter > importer = _manager . instantiate ( " ObjImporter " ) ;
CORRADE_VERIFY ( importer - > openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " triangleMesh.obj " ) ) ) ;
CORRADE_COMPARE ( importer - > mesh3DCount ( ) , 1 ) ;
const Containers : : Optional < MeshData3D > data = importer . mesh3D ( 0 ) ;
const Containers : : Optional < MeshData3D > data = importer - > mesh3D ( 0 ) ;
CORRADE_VERIFY ( data ) ;
CORRADE_COMPARE ( data - > positionArrayCount ( ) , 1 ) ;
CORRADE_VERIFY ( ! data - > hasNormals ( ) ) ;
@ -223,11 +230,11 @@ void ObjImporterTest::positionsOnly() {
}
void ObjImporterTest : : textureCoordinates ( ) {
ObjImporter importer ;
CORRADE_VERIFY ( importer . openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " textureCoordinates.obj " ) ) ) ;
CORRADE_COMPARE ( importer . mesh3DCount ( ) , 1 ) ;
std : : unique_ptr < AbstractImporter > importer = _manager . instantiate ( " ObjImporter " ) ;
CORRADE_VERIFY ( importer - > openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " textureCoordinates.obj " ) ) ) ;
CORRADE_COMPARE ( importer - > mesh3DCount ( ) , 1 ) ;
const Containers : : Optional < MeshData3D > data = importer . mesh3D ( 0 ) ;
const Containers : : Optional < MeshData3D > data = importer - > mesh3D ( 0 ) ;
CORRADE_VERIFY ( data ) ;
CORRADE_COMPARE ( data - > primitive ( ) , MeshPrimitive : : Lines ) ;
CORRADE_COMPARE ( data - > positionArrayCount ( ) , 1 ) ;
@ -251,11 +258,11 @@ void ObjImporterTest::textureCoordinates() {
}
void ObjImporterTest : : normals ( ) {
ObjImporter importer ;
CORRADE_VERIFY ( importer . openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " normals.obj " ) ) ) ;
CORRADE_COMPARE ( importer . mesh3DCount ( ) , 1 ) ;
std : : unique_ptr < AbstractImporter > importer = _manager . instantiate ( " ObjImporter " ) ;
CORRADE_VERIFY ( importer - > openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " normals.obj " ) ) ) ;
CORRADE_COMPARE ( importer - > mesh3DCount ( ) , 1 ) ;
const Containers : : Optional < MeshData3D > data = importer . mesh3D ( 0 ) ;
const Containers : : Optional < MeshData3D > data = importer - > mesh3D ( 0 ) ;
CORRADE_VERIFY ( data ) ;
CORRADE_COMPARE ( data - > primitive ( ) , MeshPrimitive : : Lines ) ;
CORRADE_COMPARE ( data - > positionArrayCount ( ) , 1 ) ;
@ -279,11 +286,11 @@ void ObjImporterTest::normals() {
}
void ObjImporterTest : : textureCoordinatesNormals ( ) {
ObjImporter importer ;
CORRADE_VERIFY ( importer . openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " textureCoordinatesNormals.obj " ) ) ) ;
CORRADE_COMPARE ( importer . mesh3DCount ( ) , 1 ) ;
std : : unique_ptr < AbstractImporter > importer = _manager . instantiate ( " ObjImporter " ) ;
CORRADE_VERIFY ( importer - > openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " textureCoordinatesNormals.obj " ) ) ) ;
CORRADE_COMPARE ( importer - > mesh3DCount ( ) , 1 ) ;
const Containers : : Optional < MeshData3D > data = importer . mesh3D ( 0 ) ;
const Containers : : Optional < MeshData3D > data = importer - > mesh3D ( 0 ) ;
CORRADE_VERIFY ( data ) ;
CORRADE_COMPARE ( data - > primitive ( ) , MeshPrimitive : : Lines ) ;
CORRADE_COMPARE ( data - > positionArrayCount ( ) , 1 ) ;
@ -316,35 +323,35 @@ void ObjImporterTest::textureCoordinatesNormals() {
}
void ObjImporterTest : : emptyFile ( ) {
ObjImporter importer ;
CORRADE_VERIFY ( importer . openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " emptyFile.obj " ) ) ) ;
CORRADE_COMPARE ( importer . mesh3DCount ( ) , 1 ) ;
std : : unique_ptr < AbstractImporter > importer = _manager . instantiate ( " ObjImporter " ) ;
CORRADE_VERIFY ( importer - > openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " emptyFile.obj " ) ) ) ;
CORRADE_COMPARE ( importer - > mesh3DCount ( ) , 1 ) ;
}
void ObjImporterTest : : unnamedMesh ( ) {
ObjImporter importer ;
CORRADE_VERIFY ( importer . openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " emptyFile.obj " ) ) ) ;
CORRADE_COMPARE ( importer . mesh3DCount ( ) , 1 ) ;
CORRADE_COMPARE ( importer . mesh3DName ( 0 ) , " " ) ;
CORRADE_COMPARE ( importer . mesh3DForName ( " " ) , - 1 ) ;
std : : unique_ptr < AbstractImporter > importer = _manager . instantiate ( " ObjImporter " ) ;
CORRADE_VERIFY ( importer - > openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " emptyFile.obj " ) ) ) ;
CORRADE_COMPARE ( importer - > mesh3DCount ( ) , 1 ) ;
CORRADE_COMPARE ( importer - > mesh3DName ( 0 ) , " " ) ;
CORRADE_COMPARE ( importer - > mesh3DForName ( " " ) , - 1 ) ;
}
void ObjImporterTest : : namedMesh ( ) {
ObjImporter importer ;
CORRADE_VERIFY ( importer . openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " namedMesh.obj " ) ) ) ;
CORRADE_COMPARE ( importer . mesh3DCount ( ) , 1 ) ;
CORRADE_COMPARE ( importer . mesh3DName ( 0 ) , " MyMesh " ) ;
CORRADE_COMPARE ( importer . mesh3DForName ( " MyMesh " ) , 0 ) ;
std : : unique_ptr < AbstractImporter > importer = _manager . instantiate ( " ObjImporter " ) ;
CORRADE_VERIFY ( importer - > openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " namedMesh.obj " ) ) ) ;
CORRADE_COMPARE ( importer - > mesh3DCount ( ) , 1 ) ;
CORRADE_COMPARE ( importer - > mesh3DName ( 0 ) , " MyMesh " ) ;
CORRADE_COMPARE ( importer - > mesh3DForName ( " MyMesh " ) , 0 ) ;
}
void ObjImporterTest : : moreMeshes ( ) {
ObjImporter importer ;
CORRADE_VERIFY ( importer . openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " moreMeshes.obj " ) ) ) ;
CORRADE_COMPARE ( importer . mesh3DCount ( ) , 3 ) ;
std : : unique_ptr < AbstractImporter > importer = _manager . instantiate ( " ObjImporter " ) ;
CORRADE_VERIFY ( importer - > openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " moreMeshes.obj " ) ) ) ;
CORRADE_COMPARE ( importer - > mesh3DCount ( ) , 3 ) ;
CORRADE_COMPARE ( importer . mesh3DName ( 0 ) , " PointMesh " ) ;
CORRADE_COMPARE ( importer . mesh3DForName ( " PointMesh " ) , 0 ) ;
const Containers : : Optional < MeshData3D > data = importer . mesh3D ( 0 ) ;
CORRADE_COMPARE ( importer - > mesh3DName ( 0 ) , " PointMesh " ) ;
CORRADE_COMPARE ( importer - > mesh3DForName ( " PointMesh " ) , 0 ) ;
const Containers : : Optional < MeshData3D > data = importer - > mesh3D ( 0 ) ;
CORRADE_VERIFY ( data ) ;
CORRADE_COMPARE ( data - > primitive ( ) , MeshPrimitive : : Points ) ;
CORRADE_COMPARE ( data - > positionArrayCount ( ) , 1 ) ;
@ -356,9 +363,9 @@ void ObjImporterTest::moreMeshes() {
0 , 1
} ) ) ;
CORRADE_COMPARE ( importer . mesh3DName ( 1 ) , " LineMesh " ) ;
CORRADE_COMPARE ( importer . mesh3DForName ( " LineMesh " ) , 1 ) ;
const Containers : : Optional < MeshData3D > data1 = importer . mesh3D ( 1 ) ;
CORRADE_COMPARE ( importer - > mesh3DName ( 1 ) , " LineMesh " ) ;
CORRADE_COMPARE ( importer - > mesh3DForName ( " LineMesh " ) , 1 ) ;
const Containers : : Optional < MeshData3D > data1 = importer - > mesh3D ( 1 ) ;
CORRADE_VERIFY ( data1 ) ;
CORRADE_COMPARE ( data1 - > primitive ( ) , MeshPrimitive : : Lines ) ;
CORRADE_COMPARE ( data1 - > positionArrayCount ( ) , 1 ) ;
@ -370,9 +377,9 @@ void ObjImporterTest::moreMeshes() {
0 , 1 , 1 , 0
} ) ) ;
CORRADE_COMPARE ( importer . mesh3DName ( 2 ) , " TriangleMesh " ) ;
CORRADE_COMPARE ( importer . mesh3DForName ( " TriangleMesh " ) , 2 ) ;
const Containers : : Optional < MeshData3D > data2 = importer . mesh3D ( 2 ) ;
CORRADE_COMPARE ( importer - > mesh3DName ( 2 ) , " TriangleMesh " ) ;
CORRADE_COMPARE ( importer - > mesh3DForName ( " TriangleMesh " ) , 2 ) ;
const Containers : : Optional < MeshData3D > data2 = importer - > mesh3D ( 2 ) ;
CORRADE_VERIFY ( data2 ) ;
CORRADE_COMPARE ( data2 - > primitive ( ) , MeshPrimitive : : Triangles ) ;
CORRADE_COMPARE ( data2 - > positionArrayCount ( ) , 1 ) ;
@ -387,84 +394,84 @@ void ObjImporterTest::moreMeshes() {
}
void ObjImporterTest : : unnamedFirstMesh ( ) {
ObjImporter importer ;
CORRADE_VERIFY ( importer . openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " unnamedFirstMesh.obj " ) ) ) ;
CORRADE_COMPARE ( importer . mesh3DCount ( ) , 2 ) ;
std : : unique_ptr < AbstractImporter > importer = _manager . instantiate ( " ObjImporter " ) ;
CORRADE_VERIFY ( importer - > openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " unnamedFirstMesh.obj " ) ) ) ;
CORRADE_COMPARE ( importer - > mesh3DCount ( ) , 2 ) ;
CORRADE_COMPARE ( importer . mesh3DName ( 0 ) , " " ) ;
CORRADE_COMPARE ( importer . mesh3DForName ( " " ) , - 1 ) ;
CORRADE_COMPARE ( importer - > mesh3DName ( 0 ) , " " ) ;
CORRADE_COMPARE ( importer - > mesh3DForName ( " " ) , - 1 ) ;
CORRADE_COMPARE ( importer . mesh3DName ( 1 ) , " SecondMesh " ) ;
CORRADE_COMPARE ( importer . mesh3DForName ( " SecondMesh " ) , 1 ) ;
CORRADE_COMPARE ( importer - > mesh3DName ( 1 ) , " SecondMesh " ) ;
CORRADE_COMPARE ( importer - > mesh3DForName ( " SecondMesh " ) , 1 ) ;
}
void ObjImporterTest : : wrongFloat ( ) {
ObjImporter importer ;
CORRADE_VERIFY ( importer . openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " wrongNumbers.obj " ) ) ) ;
const Int id = importer . mesh3DForName ( " WrongFloat " ) ;
std : : unique_ptr < AbstractImporter > importer = _manager . instantiate ( " ObjImporter " ) ;
CORRADE_VERIFY ( importer - > openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " wrongNumbers.obj " ) ) ) ;
const Int id = importer - > mesh3DForName ( " WrongFloat " ) ;
CORRADE_VERIFY ( id > - 1 ) ;
std : : ostringstream out ;
Error redirectError { & out } ;
CORRADE_VERIFY ( ! importer . mesh3D ( id ) ) ;
CORRADE_VERIFY ( ! importer - > mesh3D ( id ) ) ;
CORRADE_COMPARE ( out . str ( ) , " Trade::ObjImporter::mesh3D(): error while converting numeric data \n " ) ;
}
void ObjImporterTest : : wrongInteger ( ) {
ObjImporter importer ;
CORRADE_VERIFY ( importer . openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " wrongNumbers.obj " ) ) ) ;
const Int id = importer . mesh3DForName ( " WrongInteger " ) ;
std : : unique_ptr < AbstractImporter > importer = _manager . instantiate ( " ObjImporter " ) ;
CORRADE_VERIFY ( importer - > openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " wrongNumbers.obj " ) ) ) ;
const Int id = importer - > mesh3DForName ( " WrongInteger " ) ;
CORRADE_VERIFY ( id > - 1 ) ;
std : : ostringstream out ;
Error redirectError { & out } ;
CORRADE_VERIFY ( ! importer . mesh3D ( id ) ) ;
CORRADE_VERIFY ( ! importer - > mesh3D ( id ) ) ;
CORRADE_COMPARE ( out . str ( ) , " Trade::ObjImporter::mesh3D(): error while converting numeric data \n " ) ;
}
void ObjImporterTest : : unmergedIndexOutOfRange ( ) {
ObjImporter importer ;
CORRADE_VERIFY ( importer . openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " wrongNumbers.obj " ) ) ) ;
const Int id = importer . mesh3DForName ( " PositionIndexOutOfRange " ) ;
std : : unique_ptr < AbstractImporter > importer = _manager . instantiate ( " ObjImporter " ) ;
CORRADE_VERIFY ( importer - > openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " wrongNumbers.obj " ) ) ) ;
const Int id = importer - > mesh3DForName ( " PositionIndexOutOfRange " ) ;
CORRADE_VERIFY ( id > - 1 ) ;
std : : ostringstream out ;
Error redirectError { & out } ;
CORRADE_VERIFY ( ! importer . mesh3D ( id ) ) ;
CORRADE_VERIFY ( ! importer - > mesh3D ( id ) ) ;
CORRADE_COMPARE ( out . str ( ) , " Trade::ObjImporter::mesh3D(): index out of range \n " ) ;
}
void ObjImporterTest : : mergedIndexOutOfRange ( ) {
ObjImporter importer ;
CORRADE_VERIFY ( importer . openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " wrongNumbers.obj " ) ) ) ;
const Int id = importer . mesh3DForName ( " TextureIndexOutOfRange " ) ;
std : : unique_ptr < AbstractImporter > importer = _manager . instantiate ( " ObjImporter " ) ;
CORRADE_VERIFY ( importer - > openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " wrongNumbers.obj " ) ) ) ;
const Int id = importer - > mesh3DForName ( " TextureIndexOutOfRange " ) ;
CORRADE_VERIFY ( id > - 1 ) ;
std : : ostringstream out ;
Error redirectError { & out } ;
CORRADE_VERIFY ( ! importer . mesh3D ( id ) ) ;
CORRADE_VERIFY ( ! importer - > mesh3D ( id ) ) ;
CORRADE_COMPARE ( out . str ( ) , " Trade::ObjImporter::mesh3D(): index out of range \n " ) ;
}
void ObjImporterTest : : zeroIndex ( ) {
ObjImporter importer ;
CORRADE_VERIFY ( importer . openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " wrongNumbers.obj " ) ) ) ;
const Int id = importer . mesh3DForName ( " ZeroIndex " ) ;
std : : unique_ptr < AbstractImporter > importer = _manager . instantiate ( " ObjImporter " ) ;
CORRADE_VERIFY ( importer - > openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " wrongNumbers.obj " ) ) ) ;
const Int id = importer - > mesh3DForName ( " ZeroIndex " ) ;
CORRADE_VERIFY ( id > - 1 ) ;
std : : ostringstream out ;
Error redirectError { & out } ;
CORRADE_VERIFY ( ! importer . mesh3D ( id ) ) ;
CORRADE_VERIFY ( ! importer - > mesh3D ( id ) ) ;
CORRADE_COMPARE ( out . str ( ) , " Trade::ObjImporter::mesh3D(): index out of range \n " ) ;
}
void ObjImporterTest : : explicitOptionalPositionCoordinate ( ) {
ObjImporter importer ;
CORRADE_VERIFY ( importer . openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " optionalCoordinates.obj " ) ) ) ;
const Int id = importer . mesh3DForName ( " SupportedPositionW " ) ;
std : : unique_ptr < AbstractImporter > importer = _manager . instantiate ( " ObjImporter " ) ;
CORRADE_VERIFY ( importer - > openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " optionalCoordinates.obj " ) ) ) ;
const Int id = importer - > mesh3DForName ( " SupportedPositionW " ) ;
CORRADE_VERIFY ( id > - 1 ) ;
const Containers : : Optional < MeshData3D > data = importer . mesh3D ( id ) ;
const Containers : : Optional < MeshData3D > data = importer - > mesh3D ( id ) ;
CORRADE_VERIFY ( data ) ;
CORRADE_COMPARE ( data - > positionArrayCount ( ) , 1 ) ;
CORRADE_COMPARE ( data - > positions ( 0 ) , ( std : : vector < Vector3 > {
@ -473,12 +480,12 @@ void ObjImporterTest::explicitOptionalPositionCoordinate() {
}
void ObjImporterTest : : explicitOptionalTextureCoordinate ( ) {
ObjImporter importer ;
CORRADE_VERIFY ( importer . openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " optionalCoordinates.obj " ) ) ) ;
const Int id = importer . mesh3DForName ( " SupportedTextureW " ) ;
std : : unique_ptr < AbstractImporter > importer = _manager . instantiate ( " ObjImporter " ) ;
CORRADE_VERIFY ( importer - > openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " optionalCoordinates.obj " ) ) ) ;
const Int id = importer - > mesh3DForName ( " SupportedTextureW " ) ;
CORRADE_VERIFY ( id > - 1 ) ;
const Containers : : Optional < MeshData3D > data = importer . mesh3D ( id ) ;
const Containers : : Optional < MeshData3D > data = importer - > mesh3D ( id ) ;
CORRADE_VERIFY ( data ) ;
CORRADE_COMPARE ( data - > textureCoords2DArrayCount ( ) , 1 ) ;
CORRADE_COMPARE ( data - > textureCoords2D ( 0 ) , ( std : : vector < Vector2 > {
@ -487,229 +494,229 @@ void ObjImporterTest::explicitOptionalTextureCoordinate() {
}
void ObjImporterTest : : unsupportedOptionalPositionCoordinate ( ) {
ObjImporter importer ;
CORRADE_VERIFY ( importer . openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " optionalCoordinates.obj " ) ) ) ;
const Int id = importer . mesh3DForName ( " UnsupportedPositionW " ) ;
std : : unique_ptr < AbstractImporter > importer = _manager . instantiate ( " ObjImporter " ) ;
CORRADE_VERIFY ( importer - > openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " optionalCoordinates.obj " ) ) ) ;
const Int id = importer - > mesh3DForName ( " UnsupportedPositionW " ) ;
CORRADE_VERIFY ( id > - 1 ) ;
std : : ostringstream out ;
Error redirectError { & out } ;
CORRADE_VERIFY ( ! importer . mesh3D ( id ) ) ;
CORRADE_VERIFY ( ! importer - > mesh3D ( id ) ) ;
CORRADE_COMPARE ( out . str ( ) , " Trade::ObjImporter::mesh3D(): homogeneous coordinates are not supported \n " ) ;
}
void ObjImporterTest : : unsupportedOptionalTextureCoordinate ( ) {
ObjImporter importer ;
CORRADE_VERIFY ( importer . openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " optionalCoordinates.obj " ) ) ) ;
const Int id = importer . mesh3DForName ( " UnsupportedTextureW " ) ;
std : : unique_ptr < AbstractImporter > importer = _manager . instantiate ( " ObjImporter " ) ;
CORRADE_VERIFY ( importer - > openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " optionalCoordinates.obj " ) ) ) ;
const Int id = importer - > mesh3DForName ( " UnsupportedTextureW " ) ;
CORRADE_VERIFY ( id > - 1 ) ;
std : : ostringstream out ;
Error redirectError { & out } ;
CORRADE_VERIFY ( ! importer . mesh3D ( id ) ) ;
CORRADE_VERIFY ( ! importer - > mesh3D ( id ) ) ;
CORRADE_COMPARE ( out . str ( ) , " Trade::ObjImporter::mesh3D(): 3D texture coordinates are not supported \n " ) ;
}
void ObjImporterTest : : shortFloatData ( ) {
ObjImporter importer ;
CORRADE_VERIFY ( importer . openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " wrongNumberCount.obj " ) ) ) ;
const Int id = importer . mesh3DForName ( " ShortFloat " ) ;
std : : unique_ptr < AbstractImporter > importer = _manager . instantiate ( " ObjImporter " ) ;
CORRADE_VERIFY ( importer - > openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " wrongNumberCount.obj " ) ) ) ;
const Int id = importer - > mesh3DForName ( " ShortFloat " ) ;
CORRADE_VERIFY ( id > - 1 ) ;
std : : ostringstream out ;
Error redirectError { & out } ;
CORRADE_VERIFY ( ! importer . mesh3D ( id ) ) ;
CORRADE_VERIFY ( ! importer - > mesh3D ( id ) ) ;
CORRADE_COMPARE ( out . str ( ) , " Trade::ObjImporter::mesh3D(): invalid float array size \n " ) ;
}
void ObjImporterTest : : longFloatData ( ) {
ObjImporter importer ;
CORRADE_VERIFY ( importer . openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " wrongNumberCount.obj " ) ) ) ;
const Int id = importer . mesh3DForName ( " LongFloat " ) ;
std : : unique_ptr < AbstractImporter > importer = _manager . instantiate ( " ObjImporter " ) ;
CORRADE_VERIFY ( importer - > openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " wrongNumberCount.obj " ) ) ) ;
const Int id = importer - > mesh3DForName ( " LongFloat " ) ;
CORRADE_VERIFY ( id > - 1 ) ;
std : : ostringstream out ;
Error redirectError { & out } ;
CORRADE_VERIFY ( ! importer . mesh3D ( id ) ) ;
CORRADE_VERIFY ( ! importer - > mesh3D ( id ) ) ;
CORRADE_COMPARE ( out . str ( ) , " Trade::ObjImporter::mesh3D(): invalid float array size \n " ) ;
}
void ObjImporterTest : : longOptionalFloatData ( ) {
ObjImporter importer ;
CORRADE_VERIFY ( importer . openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " wrongNumberCount.obj " ) ) ) ;
const Int id = importer . mesh3DForName ( " LongOptionalFloat " ) ;
std : : unique_ptr < AbstractImporter > importer = _manager . instantiate ( " ObjImporter " ) ;
CORRADE_VERIFY ( importer - > openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " wrongNumberCount.obj " ) ) ) ;
const Int id = importer - > mesh3DForName ( " LongOptionalFloat " ) ;
CORRADE_VERIFY ( id > - 1 ) ;
std : : ostringstream out ;
Error redirectError { & out } ;
CORRADE_VERIFY ( ! importer . mesh3D ( id ) ) ;
CORRADE_VERIFY ( ! importer - > mesh3D ( id ) ) ;
CORRADE_COMPARE ( out . str ( ) , " Trade::ObjImporter::mesh3D(): invalid float array size \n " ) ;
}
void ObjImporterTest : : longIndexData ( ) {
ObjImporter importer ;
CORRADE_VERIFY ( importer . openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " wrongNumberCount.obj " ) ) ) ;
const Int id = importer . mesh3DForName ( " InvalidIndices " ) ;
std : : unique_ptr < AbstractImporter > importer = _manager . instantiate ( " ObjImporter " ) ;
CORRADE_VERIFY ( importer - > openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " wrongNumberCount.obj " ) ) ) ;
const Int id = importer - > mesh3DForName ( " InvalidIndices " ) ;
CORRADE_VERIFY ( id > - 1 ) ;
std : : ostringstream out ;
Error redirectError { & out } ;
CORRADE_VERIFY ( ! importer . mesh3D ( id ) ) ;
CORRADE_VERIFY ( ! importer - > mesh3D ( id ) ) ;
CORRADE_COMPARE ( out . str ( ) , " Trade::ObjImporter::mesh3D(): invalid index data \n " ) ;
}
void ObjImporterTest : : wrongPointIndexData ( ) {
ObjImporter importer ;
CORRADE_VERIFY ( importer . openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " wrongNumberCount.obj " ) ) ) ;
const Int id = importer . mesh3DForName ( " WrongPointIndices " ) ;
std : : unique_ptr < AbstractImporter > importer = _manager . instantiate ( " ObjImporter " ) ;
CORRADE_VERIFY ( importer - > openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " wrongNumberCount.obj " ) ) ) ;
const Int id = importer - > mesh3DForName ( " WrongPointIndices " ) ;
CORRADE_VERIFY ( id > - 1 ) ;
std : : ostringstream out ;
Error redirectError { & out } ;
CORRADE_VERIFY ( ! importer . mesh3D ( id ) ) ;
CORRADE_VERIFY ( ! importer - > mesh3D ( id ) ) ;
CORRADE_COMPARE ( out . str ( ) , " Trade::ObjImporter::mesh3D(): wrong index count for point \n " ) ;
}
void ObjImporterTest : : wrongLineIndexData ( ) {
ObjImporter importer ;
CORRADE_VERIFY ( importer . openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " wrongNumberCount.obj " ) ) ) ;
const Int id = importer . mesh3DForName ( " WrongLineIndices " ) ;
std : : unique_ptr < AbstractImporter > importer = _manager . instantiate ( " ObjImporter " ) ;
CORRADE_VERIFY ( importer - > openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " wrongNumberCount.obj " ) ) ) ;
const Int id = importer - > mesh3DForName ( " WrongLineIndices " ) ;
CORRADE_VERIFY ( id > - 1 ) ;
std : : ostringstream out ;
Error redirectError { & out } ;
CORRADE_VERIFY ( ! importer . mesh3D ( id ) ) ;
CORRADE_VERIFY ( ! importer - > mesh3D ( id ) ) ;
CORRADE_COMPARE ( out . str ( ) , " Trade::ObjImporter::mesh3D(): wrong index count for line \n " ) ;
}
void ObjImporterTest : : wrongTriangleIndexData ( ) {
ObjImporter importer ;
CORRADE_VERIFY ( importer . openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " wrongNumberCount.obj " ) ) ) ;
const Int id = importer . mesh3DForName ( " WrongTriangleIndices " ) ;
std : : unique_ptr < AbstractImporter > importer = _manager . instantiate ( " ObjImporter " ) ;
CORRADE_VERIFY ( importer - > openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " wrongNumberCount.obj " ) ) ) ;
const Int id = importer - > mesh3DForName ( " WrongTriangleIndices " ) ;
CORRADE_VERIFY ( id > - 1 ) ;
std : : ostringstream out ;
Error redirectError { & out } ;
CORRADE_VERIFY ( ! importer . mesh3D ( id ) ) ;
CORRADE_VERIFY ( ! importer - > mesh3D ( id ) ) ;
CORRADE_COMPARE ( out . str ( ) , " Trade::ObjImporter::mesh3D(): wrong index count for triangle \n " ) ;
}
void ObjImporterTest : : polygonIndexData ( ) {
ObjImporter importer ;
CORRADE_VERIFY ( importer . openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " wrongNumberCount.obj " ) ) ) ;
const Int id = importer . mesh3DForName ( " PolygonIndices " ) ;
std : : unique_ptr < AbstractImporter > importer = _manager . instantiate ( " ObjImporter " ) ;
CORRADE_VERIFY ( importer - > openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " wrongNumberCount.obj " ) ) ) ;
const Int id = importer - > mesh3DForName ( " PolygonIndices " ) ;
CORRADE_VERIFY ( id > - 1 ) ;
std : : ostringstream out ;
Error redirectError { & out } ;
CORRADE_VERIFY ( ! importer . mesh3D ( id ) ) ;
CORRADE_VERIFY ( ! importer - > mesh3D ( id ) ) ;
CORRADE_COMPARE ( out . str ( ) , " Trade::ObjImporter::mesh3D(): polygons are not supported \n " ) ;
}
void ObjImporterTest : : missingPositionData ( ) {
ObjImporter importer ;
CORRADE_VERIFY ( importer . openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " missingData.obj " ) ) ) ;
const Int id = importer . mesh3DForName ( " MissingPositionData " ) ;
std : : unique_ptr < AbstractImporter > importer = _manager . instantiate ( " ObjImporter " ) ;
CORRADE_VERIFY ( importer - > openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " missingData.obj " ) ) ) ;
const Int id = importer - > mesh3DForName ( " MissingPositionData " ) ;
CORRADE_VERIFY ( id > - 1 ) ;
std : : ostringstream out ;
Error redirectError { & out } ;
CORRADE_VERIFY ( ! importer . mesh3D ( id ) ) ;
CORRADE_VERIFY ( ! importer - > mesh3D ( id ) ) ;
CORRADE_COMPARE ( out . str ( ) , " Trade::ObjImporter::mesh3D(): incomplete position data \n " ) ;
}
void ObjImporterTest : : missingPositionIndices ( ) {
ObjImporter importer ;
CORRADE_VERIFY ( importer . openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " missingData.obj " ) ) ) ;
const Int id = importer . mesh3DForName ( " MissingPositionIndices " ) ;
std : : unique_ptr < AbstractImporter > importer = _manager . instantiate ( " ObjImporter " ) ;
CORRADE_VERIFY ( importer - > openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " missingData.obj " ) ) ) ;
const Int id = importer - > mesh3DForName ( " MissingPositionIndices " ) ;
CORRADE_VERIFY ( id > - 1 ) ;
std : : ostringstream out ;
Error redirectError { & out } ;
CORRADE_VERIFY ( ! importer . mesh3D ( id ) ) ;
CORRADE_VERIFY ( ! importer - > mesh3D ( id ) ) ;
CORRADE_COMPARE ( out . str ( ) , " Trade::ObjImporter::mesh3D(): incomplete position data \n " ) ;
}
void ObjImporterTest : : missingNormalData ( ) {
ObjImporter importer ;
CORRADE_VERIFY ( importer . openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " missingData.obj " ) ) ) ;
const Int id = importer . mesh3DForName ( " MissingNormalData " ) ;
std : : unique_ptr < AbstractImporter > importer = _manager . instantiate ( " ObjImporter " ) ;
CORRADE_VERIFY ( importer - > openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " missingData.obj " ) ) ) ;
const Int id = importer - > mesh3DForName ( " MissingNormalData " ) ;
CORRADE_VERIFY ( id > - 1 ) ;
std : : ostringstream out ;
Error redirectError { & out } ;
CORRADE_VERIFY ( ! importer . mesh3D ( id ) ) ;
CORRADE_VERIFY ( ! importer - > mesh3D ( id ) ) ;
CORRADE_COMPARE ( out . str ( ) , " Trade::ObjImporter::mesh3D(): incomplete normal data \n " ) ;
}
void ObjImporterTest : : missingNormalIndices ( ) {
ObjImporter importer ;
CORRADE_VERIFY ( importer . openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " missingData.obj " ) ) ) ;
const Int id = importer . mesh3DForName ( " MissingNormalIndices " ) ;
std : : unique_ptr < AbstractImporter > importer = _manager . instantiate ( " ObjImporter " ) ;
CORRADE_VERIFY ( importer - > openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " missingData.obj " ) ) ) ;
const Int id = importer - > mesh3DForName ( " MissingNormalIndices " ) ;
CORRADE_VERIFY ( id > - 1 ) ;
std : : ostringstream out ;
Error redirectError { & out } ;
CORRADE_VERIFY ( ! importer . mesh3D ( id ) ) ;
CORRADE_VERIFY ( ! importer - > mesh3D ( id ) ) ;
CORRADE_COMPARE ( out . str ( ) , " Trade::ObjImporter::mesh3D(): incomplete normal data \n " ) ;
}
void ObjImporterTest : : missingTextureCoordinateData ( ) {
ObjImporter importer ;
CORRADE_VERIFY ( importer . openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " missingData.obj " ) ) ) ;
const Int id = importer . mesh3DForName ( " MissingTextureData " ) ;
std : : unique_ptr < AbstractImporter > importer = _manager . instantiate ( " ObjImporter " ) ;
CORRADE_VERIFY ( importer - > openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " missingData.obj " ) ) ) ;
const Int id = importer - > mesh3DForName ( " MissingTextureData " ) ;
CORRADE_VERIFY ( id > - 1 ) ;
std : : ostringstream out ;
Error redirectError { & out } ;
CORRADE_VERIFY ( ! importer . mesh3D ( id ) ) ;
CORRADE_VERIFY ( ! importer - > mesh3D ( id ) ) ;
CORRADE_COMPARE ( out . str ( ) , " Trade::ObjImporter::mesh3D(): incomplete texture coordinate data \n " ) ;
}
void ObjImporterTest : : missingTextureCoordinateIndices ( ) {
ObjImporter importer ;
CORRADE_VERIFY ( importer . openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " missingData.obj " ) ) ) ;
const Int id = importer . mesh3DForName ( " MissingTextureIndices " ) ;
std : : unique_ptr < AbstractImporter > importer = _manager . instantiate ( " ObjImporter " ) ;
CORRADE_VERIFY ( importer - > openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " missingData.obj " ) ) ) ;
const Int id = importer - > mesh3DForName ( " MissingTextureIndices " ) ;
CORRADE_VERIFY ( id > - 1 ) ;
std : : ostringstream out ;
Error redirectError { & out } ;
CORRADE_VERIFY ( ! importer . mesh3D ( id ) ) ;
CORRADE_VERIFY ( ! importer - > mesh3D ( id ) ) ;
CORRADE_COMPARE ( out . str ( ) , " Trade::ObjImporter::mesh3D(): incomplete texture coordinate data \n " ) ;
}
void ObjImporterTest : : wrongNormalIndexCount ( ) {
ObjImporter importer ;
CORRADE_VERIFY ( importer . openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " wrongIndexCount.obj " ) ) ) ;
const Int id = importer . mesh3DForName ( " ShortNormalIndices " ) ;
std : : unique_ptr < AbstractImporter > importer = _manager . instantiate ( " ObjImporter " ) ;
CORRADE_VERIFY ( importer - > openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " wrongIndexCount.obj " ) ) ) ;
const Int id = importer - > mesh3DForName ( " ShortNormalIndices " ) ;
CORRADE_VERIFY ( id > - 1 ) ;
std : : ostringstream out ;
Error redirectError { & out } ;
CORRADE_VERIFY ( ! importer . mesh3D ( id ) ) ;
CORRADE_VERIFY ( ! importer - > mesh3D ( id ) ) ;
CORRADE_COMPARE ( out . str ( ) , " Trade::ObjImporter::mesh3D(): some normal indices are missing \n " ) ;
}
void ObjImporterTest : : wrongTextureCoordinateIndexCount ( ) {
ObjImporter importer ;
CORRADE_VERIFY ( importer . openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " wrongIndexCount.obj " ) ) ) ;
const Int id = importer . mesh3DForName ( " ShortTextureIndices " ) ;
std : : unique_ptr < AbstractImporter > importer = _manager . instantiate ( " ObjImporter " ) ;
CORRADE_VERIFY ( importer - > openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " wrongIndexCount.obj " ) ) ) ;
const Int id = importer - > mesh3DForName ( " ShortTextureIndices " ) ;
CORRADE_VERIFY ( id > - 1 ) ;
std : : ostringstream out ;
Error redirectError { & out } ;
CORRADE_VERIFY ( ! importer . mesh3D ( id ) ) ;
CORRADE_VERIFY ( ! importer - > mesh3D ( id ) ) ;
CORRADE_COMPARE ( out . str ( ) , " Trade::ObjImporter::mesh3D(): some texture coordinate indices are missing \n " ) ;
}
void ObjImporterTest : : unsupportedKeyword ( ) {
ObjImporter importer ;
CORRADE_VERIFY ( importer . openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " keywords.obj " ) ) ) ;
const Int id = importer . mesh3DForName ( " UnsupportedKeyword " ) ;
std : : unique_ptr < AbstractImporter > importer = _manager . instantiate ( " ObjImporter " ) ;
CORRADE_VERIFY ( importer - > openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " keywords.obj " ) ) ) ;
const Int id = importer - > mesh3DForName ( " UnsupportedKeyword " ) ;
CORRADE_VERIFY ( id > - 1 ) ;
/* Everything should be parsed properly */
const Containers : : Optional < MeshData3D > data = importer . mesh3D ( id ) ;
const Containers : : Optional < MeshData3D > data = importer - > mesh3D ( id ) ;
CORRADE_VERIFY ( data ) ;
CORRADE_COMPARE ( data - > primitive ( ) , MeshPrimitive : : Points ) ;
CORRADE_COMPARE ( data - > positionArrayCount ( ) , 1 ) ;
@ -720,14 +727,14 @@ void ObjImporterTest::unsupportedKeyword() {
}
void ObjImporterTest : : unknownKeyword ( ) {
ObjImporter importer ;
CORRADE_VERIFY ( importer . openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " keywords.obj " ) ) ) ;
const Int id = importer . mesh3DForName ( " UnknownKeyword " ) ;
std : : unique_ptr < AbstractImporter > importer = _manager . instantiate ( " ObjImporter " ) ;
CORRADE_VERIFY ( importer - > openFile ( Utility : : Directory : : join ( OBJIMPORTER_TEST_DIR , " keywords.obj " ) ) ) ;
const Int id = importer - > mesh3DForName ( " UnknownKeyword " ) ;
CORRADE_VERIFY ( id > - 1 ) ;
std : : ostringstream out ;
Error redirectError { & out } ;
CORRADE_VERIFY ( ! importer . mesh3D ( id ) ) ;
CORRADE_VERIFY ( ! importer - > mesh3D ( id ) ) ;
CORRADE_COMPARE ( out . str ( ) , " Trade::ObjImporter::mesh3D(): unknown keyword bleh \n " ) ;
}