ITK
4.1.0
Insight Segmentation and Registration Toolkit
|
00001 /*========================================================================= 00002 * 00003 * Copyright Insight Software Consortium 00004 * 00005 * Licensed under the Apache License, Version 2.0 (the "License"); 00006 * you may not use this file except in compliance with the License. 00007 * You may obtain a copy of the License at 00008 * 00009 * http://www.apache.org/licenses/LICENSE-2.0.txt 00010 * 00011 * Unless required by applicable law or agreed to in writing, software 00012 * distributed under the License is distributed on an "AS IS" BASIS, 00013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00014 * See the License for the specific language governing permissions and 00015 * limitations under the License. 00016 * 00017 *=========================================================================*/ 00018 #ifndef __itkTestingMacros_h 00019 #define __itkTestingMacros_h 00020 00021 00022 // object's Class must be specified to build on sun studio 00023 #define EXERCISE_BASIC_OBJECT_METHODS( object, Class ) \ 00024 object->Print( std::cout ); \ 00025 std::cout << "Name of Class = " << object->GetNameOfClass() << std::endl; \ 00026 std::cout << "Name of Superclass = " << object->Class::Superclass::GetNameOfClass() << std::endl; 00027 00028 00029 #define TRY_EXPECT_EXCEPTION( command ) \ 00030 try \ 00031 { \ 00032 std::cout << "Trying " << #command << std::endl; \ 00033 command; \ 00034 std::cerr << "Failed to catch expected exception" << std::endl; \ 00035 return EXIT_FAILURE; \ 00036 } \ 00037 catch( itk::ExceptionObject & excp ) \ 00038 { \ 00039 std::cout << "Caught expected exception" << std::endl; \ 00040 std::cout << excp << std::endl; \ 00041 } 00042 00043 00044 #define TRY_EXPECT_NO_EXCEPTION( command ) \ 00045 try \ 00046 { \ 00047 std::cout << "Trying " << #command << std::endl; \ 00048 command; \ 00049 } \ 00050 catch( itk::ExceptionObject & excp ) \ 00051 { \ 00052 std::cerr << excp << std::endl; \ 00053 return EXIT_FAILURE; \ 00054 } 00055 00056 #define TEST_EXPECT_TRUE( command ) \ 00057 { \ 00058 bool _TEST_EXPECT_TRUE_command(command); \ 00059 if( !(_TEST_EXPECT_TRUE_command) ) \ 00060 { \ 00061 std::cerr << "Error in " << #command << std::endl; \ 00062 std::cerr << "Expected true" << std::endl; \ 00063 std::cerr << "but got " << _TEST_EXPECT_TRUE_command << std::endl; \ 00064 return EXIT_FAILURE; \ 00065 } \ 00066 } 00067 00068 #define TEST_EXPECT_EQUAL( lh, rh ) \ 00069 { \ 00070 bool _TEST_EXPECT_EQUAL_result((lh) == (rh)); \ 00071 if( !(_TEST_EXPECT_EQUAL_result) ) \ 00072 { \ 00073 std::cerr << "Error in " << #lh << " == " << #rh << std::endl; \ 00074 std::cerr << "Expression is not equal" << std::endl; \ 00075 return EXIT_FAILURE; \ 00076 } \ 00077 } 00078 00079 00080 #define TEST_SET_GET( variable, command ) \ 00081 if( variable.GetPointer() != command ) \ 00082 { \ 00083 std::cerr << "Error in " << #command << std::endl; \ 00084 std::cerr << "Expected " << variable.GetPointer() << std::endl; \ 00085 std::cerr << "but got " << command << std::endl; \ 00086 return EXIT_FAILURE; \ 00087 } 00088 00089 00090 #define TEST_SET_GET_VALUE( variable, command ) \ 00091 if( variable != command ) \ 00092 { \ 00093 std::cerr << "Error in " << #command << std::endl; \ 00094 std::cerr << "Expected " << variable << std::endl; \ 00095 std::cerr << "but got " << command << std::endl; \ 00096 return EXIT_FAILURE; \ 00097 } 00098 00099 #define TEST_SET_GET_NULL_VALUE( command ) \ 00100 if( NULL != command ) \ 00101 { \ 00102 std::cerr << "Error in " << #command << std::endl; \ 00103 std::cerr << "Expected " << "NULL" << std::endl; \ 00104 std::cerr << "but got " << command << std::endl; \ 00105 return EXIT_FAILURE; \ 00106 } 00107 00108 00109 #endif 00110