00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef TEUCHOS_ASSERT_HPP
00030 #define TEUCHOS_ASSERT_HPP
00031
00032
00033 #include "Teuchos_TestForException.hpp"
00034
00035
00042 #define TEUCHOS_ASSERT(assertion_test) TEST_FOR_EXCEPT(!(assertion_test))
00043
00044
00059 #define TEUCHOS_ASSERT_IN_RANGE_UPPER_EXCLUSIVE( index, lower_inclusive, upper_exclusive ) \
00060 { \
00061 TEST_FOR_EXCEPTION( \
00062 !( (lower_inclusive) <= (index) && (index) < (upper_exclusive) ), \
00063 std::out_of_range, \
00064 "Error, the index " #index " = " << (index) << " does not fall in the range" \
00065 "["<<(lower_inclusive)<<","<<(upper_exclusive)<<")!" ); \
00066 }
00067
00068
00082 #define TEUCHOS_ASSERT_EQUALITY( val1, val2 ) \
00083 { \
00084 TEST_FOR_EXCEPTION( \
00085 (val1) != (val2), std::out_of_range, \
00086 "Error, (" #val1 " = " << (val1) << ") != (" #val2 " = " << (val2) << ")!" ); \
00087 }
00088
00089
00103 #define TEUCHOS_ASSERT_INEQUALITY( val1, comp, val2 ) \
00104 { \
00105 TEST_FOR_EXCEPTION( \
00106 !( (val1) comp (val2) ), std::out_of_range, \
00107 "Error, (" #val1 " = " << (val1) << ") " \
00108 #comp " (" #val2 " = " << (val2) << ")! FAILED!" ); \
00109 }
00110
00111
00112 #endif // TEUCHOS_ASSERT_HPP