TestSuite Class Reference

TestSuite manages a set of tests. More...

#include <TestSuite/TestSuite.H>

Collaboration diagram for TestSuite:
Collaboration graph
[legend]

List of all members.

Classes

struct  Impl

Public Types

enum  Op {
  EQ, NEQ, LT, LTE,
  GT, GTE
}
 

Different types of arithmetic conditions that can be required.

More...

Public Member Functions

 TestSuite ()
 Default constructor builds an empty test suite.
 ~TestSuite ()
 Destructor.
void addTest (const char *name, TestFunc func)
 Add a test to the test suite.
void printAvailableTests () const
 Print all the available tests to stdout.
void printAvailableTestsForPerl () const
 Print all the available tests to stdout.
void runTest (int test_n, int repeat_n=1)
 Run a single test, optionally repeating it multiple times.
void parseAndRun (int argc, const char **argv)
 Parse command-line args and take appropriate action.
bool require (bool expr, const char *srcfile, int line, const char *expr_str)
 Require that the expression evaluates to true.
bool requireEq (int expr, int expected, const char *srcfile, int line, const char *expr_str)
 Check that the given "int" expressions compare equal.
bool requireEq (uint expr, uint expected, const char *srcfile, int line, const char *expr_str)
 Check that the given "unsigned int" expressions compare equal.
bool requireEq (long expr, long expected, const char *srcfile, int line, const char *expr_str)
 Check that the given "long" expressions compare equal.
bool requireEq (unsigned long expr, unsigned long expected, const char *srcfile, int line, const char *expr_str)
 Check that the given "unsigned long" expressions compare equal.
bool requireEq (const std::string &expr, const std::string &expected, const char *srcfile, int line, const char *expr_str)
 Check that the given std::string expressions compare equal (as strings).
bool requireEq (double expr, double expected, const char *srcfile, int line, const char *expr_str)
 Check that the given "double" expressions compare equal.
bool require (int lhs, Op op, int rhs, const char *srcfile, int line, const char *lhs_str, const char *rhs_str)
 Check that the expression "lhs OP rhs" is true.
bool require (long lhs, Op op, long rhs, const char *srcfile, int line, const char *lhs_str, const char *rhs_str)
 Check that the expression "lhs OP rhs" is true.
bool require (double lhs, Op op, double rhs, const char *srcfile, int line, const char *lhs_str, const char *rhs_str)
 Check that the expression "lhs OP rhs" is true.
template<class T_or_RGB >
bool requireEq (const Image< T_or_RGB > &expr, const Image< T_or_RGB > &expected, const char *srcfile, int line, const char *expr_str)
 Check that the given Image objects compare equal.
bool requireEq (const Image< float > &expr, const Image< float > &expected, const float prec, const char *srcfile, int line, const char *expr_str)
 Check that the given Image objects compare equal to given precision.
template<class T >
bool requireEqUserType (const T &expr, const T &expected, const char *srcfile, int line, const char *expr_str)
 Check that the given user-defined objects compare equal to given precision.
template<class T >
bool requireEq (const Image< T > &expr, const Image< T > &expected, const char *srcfile, int line, const char *expr_str)

Detailed Description

TestSuite manages a set of tests.

The tests can be run one at a time or all at once. Each "test" is a function whose signature matches the TestFunc typedef. Such functions receive a TestSuite as a reference parameter. This allows the TestFunc's to use TestSuite's diagnostic functions (such as require() and requireEq()) to verify whatever the test is testing.

Definition at line 58 of file TestSuite.H.


Member Enumeration Documentation

Different types of arithmetic conditions that can be required.

Definition at line 101 of file TestSuite.H.


Constructor & Destructor Documentation

TestSuite::TestSuite (  ) 

Default constructor builds an empty test suite.

Definition at line 245 of file TestSuite.C.

TestSuite::~TestSuite (  ) 

Destructor.

Definition at line 250 of file TestSuite.C.


Member Function Documentation

void TestSuite::addTest ( const char *  name,
TestFunc  func 
)

Add a test to the test suite.

(Note that the ADD_TEST macro below makes it easier to have the string name of the function be the same as the C++ function name, without having to type it twice.)

Definition at line 256 of file TestSuite.C.

void TestSuite::parseAndRun ( int  argc,
const char **  argv 
)

Parse command-line args and take appropriate action.

This may involve either printing a list of available tests, or running a specific test.

Definition at line 305 of file TestSuite.C.

References rutz::prof::print_all_prof_data(), printAvailableTests(), printAvailableTestsForPerl(), and runTest().

void TestSuite::printAvailableTests (  )  const

Print all the available tests to stdout.

Definition at line 262 of file TestSuite.C.

Referenced by parseAndRun().

void TestSuite::printAvailableTestsForPerl (  )  const

Print all the available tests to stdout.

Definition at line 269 of file TestSuite.C.

Referenced by parseAndRun().

bool TestSuite::require ( double  lhs,
Op  op,
double  rhs,
const char *  srcfile,
int  line,
const char *  lhs_str,
const char *  rhs_str 
)

Check that the expression "lhs OP rhs" is true.

Return the truth value of the comparison.

Definition at line 425 of file TestSuite.C.

bool TestSuite::require ( long  lhs,
Op  op,
long  rhs,
const char *  srcfile,
int  line,
const char *  lhs_str,
const char *  rhs_str 
)

Check that the expression "lhs OP rhs" is true.

Return the truth value of the comparison.

Definition at line 419 of file TestSuite.C.

bool TestSuite::require ( int  lhs,
Op  op,
int  rhs,
const char *  srcfile,
int  line,
const char *  lhs_str,
const char *  rhs_str 
)

Check that the expression "lhs OP rhs" is true.

Return the truth value of the comparison.

Definition at line 413 of file TestSuite.C.

bool TestSuite::require ( bool  expr,
const char *  srcfile,
int  line,
const char *  expr_str 
)

Require that the expression evaluates to true.

Return the truth value of the expression.

Definition at line 358 of file TestSuite.C.

bool TestSuite::requireEq ( const Image< float > &  expr,
const Image< float > &  expected,
const float  prec,
const char *  srcfile,
int  line,
const char *  expr_str 
)

Check that the given Image objects compare equal to given precision.

Return the truth value of the comparison.

Definition at line 406 of file TestSuite.C.

template<class T_or_RGB >
bool TestSuite::requireEq ( const Image< T_or_RGB > &  expr,
const Image< T_or_RGB > &  expected,
const char *  srcfile,
int  line,
const char *  expr_str 
) [inline]

Check that the given Image objects compare equal.

Return the truth value of the comparison.

bool TestSuite::requireEq ( double  expr,
double  expected,
const char *  srcfile,
int  line,
const char *  expr_str 
)

Check that the given "double" expressions compare equal.

Return the truth value of the comparison.

Definition at line 390 of file TestSuite.C.

bool TestSuite::requireEq ( const std::string expr,
const std::string expected,
const char *  srcfile,
int  line,
const char *  expr_str 
)

Check that the given std::string expressions compare equal (as strings).

Return the truth value of the comparison.

Definition at line 395 of file TestSuite.C.

bool TestSuite::requireEq ( unsigned long  expr,
unsigned long  expected,
const char *  srcfile,
int  line,
const char *  expr_str 
)

Check that the given "unsigned long" expressions compare equal.

Return the truth value of the comparison.

Definition at line 385 of file TestSuite.C.

bool TestSuite::requireEq ( long  expr,
long  expected,
const char *  srcfile,
int  line,
const char *  expr_str 
)

Check that the given "long" expressions compare equal.

Return the truth value of the comparison.

Definition at line 380 of file TestSuite.C.

bool TestSuite::requireEq ( uint  expr,
uint  expected,
const char *  srcfile,
int  line,
const char *  expr_str 
)

Check that the given "unsigned int" expressions compare equal.

Return the truth value of the comparison.

Definition at line 375 of file TestSuite.C.

bool TestSuite::requireEq ( int  expr,
int  expected,
const char *  srcfile,
int  line,
const char *  expr_str 
)

Check that the given "int" expressions compare equal.

Return the truth value of the comparison.

Definition at line 370 of file TestSuite.C.

template<class T >
bool TestSuite::requireEqUserType ( const T &  expr,
const T &  expected,
const char *  srcfile,
int  line,
const char *  expr_str 
) [inline]

Check that the given user-defined objects compare equal to given precision.

Return the truth value of the comparison.

Definition at line 174 of file TestSuite.H.

void TestSuite::runTest ( int  test_n,
int  repeat_n = 1 
)

Run a single test, optionally repeating it multiple times.

(Multiple repeats may be useful for profiling.) The output of the test is printed to standard output: on the first line is a boolean code indicating whether the test succeeded (code==1) or failed (code==0), and on subsequent lines are any diagnostic messages that may relate to the success or failure of the test (e.g., require() and requireEq() will generate a diagnostic message on failure).

Definition at line 276 of file TestSuite.C.

Referenced by parseAndRun().


The documentation for this class was generated from the following files:
Generated on Sun May 8 08:26:15 2011 for iLab Neuromorphic Vision Toolkit by  doxygen 1.6.3