ITK  5.0.0
Insight Segmentation and Registration Toolkit
Namespaces | Macros
itkTestingMacros.h File Reference
#include "itkMacro.h"
#include <cstring>
+ Include dependency graph for itkTestingMacros.h:

Go to the source code of this file.

Namespaces

 itk
 

Macros

#define EXERCISE_BASIC_OBJECT_METHODS(object, Class, SuperClass)
 
#define itkNameOfTestExecutableMacro(argv)
 
#define TEST_EXPECT_EQUAL(lh, rh)
 
#define TEST_EXPECT_EQUAL_STATUS_VALUE(lh, rh, statusVal)
 
#define TEST_EXPECT_TRUE(command)
 
#define TEST_EXPECT_TRUE_STATUS_VALUE(command, statusVal)
 
#define TEST_SET_GET(variable, command)
 
#define TEST_SET_GET_BOOLEAN(object, variable, value)
 
#define TEST_SET_GET_NULL_VALUE(command)
 
#define TEST_SET_GET_VALUE(variable, command)
 
#define TRY_EXPECT_EXCEPTION(command)
 
#define TRY_EXPECT_NO_EXCEPTION(command)
 

Macro Definition Documentation

#define EXERCISE_BASIC_OBJECT_METHODS (   object,
  Class,
  SuperClass 
)
Value:
object->Print( std::cout ); \
std::cout << "Name of Class = " << object->GetNameOfClass() << std::endl; \
std::cout << "Name of Superclass = " << object->Superclass::GetNameOfClass() << std::endl; \
if( !std::strcmp(object->GetNameOfClass(), #Class) ) \
{ \
std::cout << "Class name is correct" << std::endl; \
} \
else \
{ \
std::cerr << "Class name provided does not match object's NameOfClass" << std::endl; \
return EXIT_FAILURE; \
} \
if( !std::strcmp(object->Superclass::GetNameOfClass(), #SuperClass) ) \
{ \
std::cout << "Superclass name is correct" << std::endl; \
} \
else \
{ \
std::cerr << "Superclass name provided does not match object's Superclass::NameOfClass" << std::endl; \
return EXIT_FAILURE; \
}

Definition at line 37 of file itkTestingMacros.h.

#define itkNameOfTestExecutableMacro (   argv)
Value:
[argv](const std::string& functionName) \
{ \
return ((argv == nullptr) || (argv[0] == nullptr) || (argv[0][0] == '\0')) ? \
("<" + functionName + " executable>") : argv[0]; \
}(__func__)

The name of the executable, argv[0], is not always available as argv[0] may be null. In that case, use the name of the test function.

Definition at line 222 of file itkTestingMacros.h.

#define TEST_EXPECT_EQUAL (   lh,
  rh 
)
Value:
{ \
CLANG_PRAGMA_PUSH \
CLANG_SUPPRESS_Wfloat_equal \
bool _TEST_EXPECT_EQUAL_result((lh) == (rh)); \
CLANG_PRAGMA_POP \
if( !(_TEST_EXPECT_EQUAL_result) ) \
{ \
std::cerr << "Error in " << #lh << " == " << #rh << std::endl; \
std::cerr << "\tIn " __FILE__ ", line " << __LINE__ << std::endl; \
std::cerr << "\tlh: " << (lh) << std::endl; \
std::cerr << "\trh: " << (rh) << std::endl; \
std::cerr << "Expression is not equal" << std::endl; \
return EXIT_FAILURE; \
} \
}

Definition at line 139 of file itkTestingMacros.h.

#define TEST_EXPECT_EQUAL_STATUS_VALUE (   lh,
  rh,
  statusVal 
)
Value:
{ \
CLANG_PRAGMA_PUSH \
CLANG_SUPPRESS_Wfloat_equal \
bool _TEST_EXPECT_EQUAL_result((lh) == (rh)); \
CLANG_PRAGMA_POP \
if( !(_TEST_EXPECT_EQUAL_result) ) \
{ \
std::cerr << "Error in " << #lh << " == " << #rh << std::endl; \
std::cerr << "\tIn " __FILE__ ", line " << __LINE__ << std::endl; \
std::cerr << "\tlh: " << (lh) << std::endl; \
std::cerr << "\trh: " << (rh) << std::endl; \
std::cerr << "Expression is not equal" << std::endl; \
statusVal = EXIT_FAILURE; \
} \
}

Definition at line 122 of file itkTestingMacros.h.

#define TEST_EXPECT_TRUE (   command)
Value:
{ \
CLANG_PRAGMA_PUSH \
CLANG_SUPPRESS_Wfloat_equal \
bool _TEST_EXPECT_TRUE_command(command); \
CLANG_PRAGMA_POP \
if( !(_TEST_EXPECT_TRUE_command) ) \
{ \
std::cerr << "Error in " << #command << std::endl; \
std::cerr << " In " __FILE__ ", line " << __LINE__ << std::endl; \
std::cerr << "Expected true" << std::endl; \
std::cerr << " but got " << _TEST_EXPECT_TRUE_command << std::endl; \
return EXIT_FAILURE; \
} \
}

Definition at line 105 of file itkTestingMacros.h.

#define TEST_EXPECT_TRUE_STATUS_VALUE (   command,
  statusVal 
)
Value:
{ \
CLANG_PRAGMA_PUSH \
CLANG_SUPPRESS_Wfloat_equal \
bool _TEST_EXPECT_TRUE_command(command); \
CLANG_PRAGMA_POP \
if( !(_TEST_EXPECT_TRUE_command) ) \
{ \
std::cerr << "Error in " << #command << std::endl; \
std::cerr << " In " __FILE__ ", line " << __LINE__ << std::endl; \
std::cerr << "Expected true" << std::endl; \
std::cerr << " but got " << _TEST_EXPECT_TRUE_command << std::endl; \
statusVal = EXIT_FAILURE; \
} \
}

Definition at line 89 of file itkTestingMacros.h.

#define TEST_SET_GET (   variable,
  command 
)
Value:
if( variable != command ) \
{ \
std::cerr << "Error in " << #command << std::endl; \
std::cerr << " In " __FILE__ ", line " << __LINE__ << std::endl; \
std::cerr << "Expected " << variable.GetPointer() << std::endl; \
std::cerr << "but got " << command << std::endl; \
return EXIT_FAILURE; \
}

Definition at line 157 of file itkTestingMacros.h.

#define TEST_SET_GET_BOOLEAN (   object,
  variable,
  value 
)
Value:
object->Set##variable( false ); \
object->Set##variable( true ); \
if( object->Get##variable() != 1 ) \
{ \
std::cerr << "Error in Set/Get"#variable << ", Get"#variable << " is " << object->Get##variable() << " instead of 1" << std::endl; \
return EXIT_FAILURE; \
} \
object->Set##variable( false ); \
if( object->Get##variable() != 0 ) \
{ \
std::cerr << "Error in Set/Get"#variable << ", Get"#variable << " is " << object->Get##variable() << " instead of 0" << std::endl; \
return EXIT_FAILURE; \
} \
object->variable##On(); \
if( object->Get##variable() != 1 ) \
{ \
std::cerr << "Error in On/Get"#variable << ", Get"#variable << " is " << object->Get##variable() << " instead of 1" << std::endl; \
return EXIT_FAILURE; \
} \
object->variable##Off(); \
if( object->Get##variable() != 0 ) \
{ \
std::cerr << "Error in Off/Get"#variable << ", Get"#variable << " is " << object->Get##variable() << " instead of 0" << std::endl; \
return EXIT_FAILURE; \
} \
object->Set##variable( value );

Definition at line 191 of file itkTestingMacros.h.

#define TEST_SET_GET_NULL_VALUE (   command)
Value:
if( nullptr != command ) \
{ \
std::cerr << "Error in " << #command << std::endl; \
std::cerr << " In " __FILE__ ", line " << __LINE__ << std::endl; \
std::cerr << "Expected " << "nullptr" << std::endl; \
std::cerr << "but got " << command << std::endl; \
return EXIT_FAILURE; \
}

Definition at line 181 of file itkTestingMacros.h.

#define TEST_SET_GET_VALUE (   variable,
  command 
)
Value:
CLANG_PRAGMA_PUSH \
CLANG_SUPPRESS_Wfloat_equal \
if( variable != command ) \
CLANG_PRAGMA_POP \
{ \
std::cerr << "Error in " << #command << std::endl; \
std::cerr << " In " __FILE__ ", line " << __LINE__ << std::endl; \
std::cerr << "Expected " << variable << std::endl; \
std::cerr << "but got " << command << std::endl; \
return EXIT_FAILURE; \
}

Definition at line 168 of file itkTestingMacros.h.

#define TRY_EXPECT_EXCEPTION (   command)
Value:
try \
{ \
std::cout << "Trying " << #command << std::endl; \
command; \
std::cerr << "Failed to catch expected exception" << std::endl; \
std::cerr << " In " __FILE__ ", line " << __LINE__ << std::endl;\
return EXIT_FAILURE; \
} \
catch( itk::ExceptionObject & excp ) \
{ \
std::cout << "Caught expected exception" << std::endl; \
std::cout << excp << std::endl; \
}
Standard exception handling object.

Definition at line 60 of file itkTestingMacros.h.

#define TRY_EXPECT_NO_EXCEPTION (   command)
Value:
try \
{ \
std::cout << "Trying " << #command << std::endl; \
command; \
} \
catch( itk::ExceptionObject & excp ) \
{ \
std::cerr << excp << std::endl; \
std::cerr << " In " __FILE__ ", line " << __LINE__ << std::endl; \
return EXIT_FAILURE; \
}
Standard exception handling object.

Definition at line 76 of file itkTestingMacros.h.