Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

TestSuite Class Reference

#include <TestSuite/TestSuite.H>

Collaboration diagram for TestSuite:

Collaboration graph
[legend]
List of all members.

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.

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.

Classes

struct  Impl


Member Enumeration Documentation

enum TestSuite::Op
 

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.

References TestSuite::Impl::itsTests.

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 i, rutz::prof::print_all_prof_data(), printAvailableTests(), printAvailableTestsForPerl(), runTest(), and showUsageAndExit().

Referenced by main().

void TestSuite::printAvailableTests  )  const
 

Print all the available tests to stdout.

Definition at line 262 of file TestSuite.C.

References i, and TestSuite::Impl::itsTests.

Referenced by parseAndRun().

void TestSuite::printAvailableTestsForPerl  )  const
 

Print all the available tests to stdout.

Definition at line 269 of file TestSuite.C.

References i, and TestSuite::Impl::itsTests.

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.

References TestSuite::Impl::require().

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.

References TestSuite::Impl::require().

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.

References TestSuite::Impl::require().

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.

References TestSuite::Impl::itsOutput, and TestSuite::Impl::itsSuccess.

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.

References TestSuite::Impl::requireImgEqFp().

template<class T>
bool TestSuite::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.

Return the truth value of the comparison.

Definition at line 401 of file TestSuite.C.

References TestSuite::Impl::requireImgEq().

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.

References TestSuite::Impl::requireScalarEq().

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.

References TestSuite::Impl::requireScalarEq().

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.

References TestSuite::Impl::requireScalarEq().

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.

References TestSuite::Impl::requireScalarEq().

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.

References TestSuite::Impl::requireScalarEq().

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.

References TestSuite::Impl::requireScalarEq().

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.

References convertToString().

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.

References i, TestSuite::Impl::itsTests, and TestSuite::Impl::printResult().

Referenced by parseAndRun().


The documentation for this class was generated from the following files:
Generated on Sun Nov 22 13:46:42 2009 for iLab Neuromorphic Vision Toolkit by  doxygen 1.4.4