STIR 6.4.0
stir::ArrayTests Class Reference

Tests Array functionality. More...

Inheritance diagram for stir::ArrayTests:

Public Member Functions

void run_tests () override
 Function (to be overloaded) which does the actual tests.
 
- Public Member Functions inherited from stir::RunTests
 RunTests (const double tolerance=1E-4)
 Default constructor.
 
virtual ~RunTests ()
 Destructor, outputs a diagnostic message.
 
bool is_everything_ok () const
 Returns if all checks were fine upto now.
 
int main_return_value () const
 Handy return value for a main() function.
 
void set_tolerance (const double tolerance)
 Set value used in floating point comparisons (see check_* functions)
 
double get_tolerance () const
 Get value used in floating point comparisons (see check_* functions)
 
bool check (const bool, const std::string &str="")
 Tests if true, str can be used to tell what you are testing.
 
bool check_if_equal (const std::string &a, const std::string &b, const std::string &str="")
 
bool check_if_equal (const double a, const double b, const std::string &str="")
 
bool check_if_equal (const short a, const short b, const std::string &str="")
 
bool check_if_equal (const unsigned short a, const unsigned short b, const std::string &str="")
 
bool check_if_equal (const int a, const int b, const std::string &str="")
 
bool check_if_equal (const unsigned int a, const unsigned int b, const std::string &str="")
 
bool check_if_equal (const long a, const long b, const std::string &str="")
 
bool check_if_equal (const unsigned long a, const unsigned long b, const std::string &str="")
 
bool check_if_equal (const Bin &a, const Bin &b, const std::string &str="")
 
template<class T>
bool check_if_equal (const DetectionPosition< T > &a, const DetectionPosition< T > &b, const std::string &str="")
 
template<class T>
bool check_if_equal (const std::complex< T > a, const std::complex< T > b, const std::string &str="")
 check equality by calling check_if_equal on real and imaginary parts
 
template<class T>
bool check_if_equal (const VectorWithOffset< T > &t1, const VectorWithOffset< T > &t2, const std::string &str="")
 check equality by comparing ranges and calling check_if_equal on all elements
 
template<class T>
bool check_if_equal (const std::vector< T > &t1, const std::vector< T > &t2, const std::string &str="")
 check equality by comparing size and calling check_if_equal on all elements
 
bool check_if_equal (const ProjDataInMemory &t1, const ProjDataInMemory &t2, const std::string &str="")
 
template<int n>
bool check_if_equal (const IndexRange< n > &t1, const IndexRange< n > &t2, const std::string &str="")
 
template<int num_dimensions, class coordT>
bool check_if_equal (const BasicCoordinate< num_dimensions, coordT > &a, const BasicCoordinate< num_dimensions, coordT > &b, const std::string &str="")
 check equality by comparing norm(a-b) with tolerance
 
bool check_if_zero (const double a, const std::string &str="")
 
bool check_if_zero (const short a, const std::string &str="")
 
bool check_if_zero (const unsigned short a, const std::string &str="")
 
bool check_if_zero (const int a, const std::string &str="")
 
bool check_if_zero (const unsigned int a, const std::string &str="")
 
bool check_if_zero (const long a, const std::string &str="")
 
bool check_if_zero (const unsigned long a, const std::string &str="")
 
template<class T>
bool check_if_zero (const VectorWithOffset< T > &t, const std::string &str="")
 use check_if_zero on all elements
 
template<int num_dimensions, class coordT>
bool check_if_zero (const BasicCoordinate< num_dimensions, coordT > &a, const std::string &str="")
 compare norm with tolerance
 
template<class T1, class T2>
bool check_if_less (T1 a, T2 b, const std::string &str="")
 check if a<b
 

Additional Inherited Members

template<class T>
bool check_if_equal_generic (const T &a, const T &b, const std::string &str)
 function that is called by some check_if_equal implementations. It just uses operator!=
 
template<class T>
bool check_if_zero_generic (T a, const std::string &str)
 function that is called by some check_if_zero implementations. It just uses operator!=
 
double tolerance
 tolerance for comparisons with real values
 
bool everything_ok
 variable storing current status
 

Detailed Description

Tests Array functionality.

Warning
Running this will create and delete 2 files with names output.flt and output.other. Existing files with these names will be overwritten.

Member Function Documentation

◆ run_tests()

void stir::ArrayTests::run_tests ( )
overridevirtual

Function (to be overloaded) which does the actual tests.

This function is expected to do a series of calls to check(), check_if_equal() etc.

Implements stir::RunTests.

References _PI, stir::Array< num_dimensions, elemT >::axpby(), stir::VectorWithOffset< T >::begin(), stir::Array< num_dimensions, elemT >::begin_all(), stir::Array< num_dimensions, elemT >::begin_all_const(), stir::RunTests::check(), stir::RunTests::check_if_zero(), stir::copy_to(), stir::Array< num_dimensions, elemT >::end_all(), stir::Array< num_dimensions, elemT >::end_all_const(), stir::Array< num_dimensions, elemT >::fill(), stir::fill_from(), stir::Array< num_dimensions, elemT >::find_max(), stir::Array< num_dimensions, elemT >::find_min(), stir::Array< num_dimensions, elemT >::get_const_full_data_ptr(), stir::Array< num_dimensions, elemT >::get_full_data_ptr(), stir::VectorWithOffset< T >::get_max_index(), stir::VectorWithOffset< T >::get_min_index(), stir::Array< num_dimensions, elemT >::get_regular_range(), stir::Array< num_dimensions, elemT >::grow(), stir::in_place_apply_function(), stir::in_place_exp(), stir::in_place_log(), stir::Array< num_dimensions, elemT >::is_contiguous(), stir::Array< num_dimensions, elemT >::is_regular(), stir::VectorWithOffset< T >::owns_memory_for_data(), stir::Array< num_dimensions, elemT >::release_const_full_data_ptr(), stir::Array< num_dimensions, elemT >::release_full_data_ptr(), stir::HighResWallClockTimer::reset(), stir::Array< num_dimensions, elemT >::resize(), stir::Array< num_dimensions, elemT >::sapyb(), stir::VectorWithOffset< T >::size(), stir::Array< num_dimensions, elemT >::size_all(), stir::IndexRange< num_dimensions >::size_all(), stir::HighResWallClockTimer::start(), stir::HighResWallClockTimer::stop(), stir::Array< num_dimensions, elemT >::sum(), stir::sum(), stir::HighResWallClockTimer::value(), and stir::Array< num_dimensions, elemT >::xapyb().


The documentation for this class was generated from the following file: