OKlibrary  0.2.1.6
Basics_Tests.hpp File Reference

Test classes to help with determining, whether a class models the basic concepts. More...

Go to the source code of this file.

Classes

class  OKlib::Concepts::FullyEqualityComparable_Axiom_equal_vs_unequal< T >
 Checks for objects a, b whether either (a == b and not (a != b)) or (not (a == b) and a != b) holds. More...
class  OKlib::Concepts::FullyEqualityComparable_basic_test_one_object< T >
 Basic test for FullyEqualityComparable, given one object. More...
class  OKlib::Concepts::FullyEqualityComparable_basic_test_two_objects< T >
 Basic test for FullyEqualityComparable, given two objects. More...
class  OKlib::Concepts::FullyEqualityComparable_basic_test_three_objects< T >
 Basic test for FullyEqualityComparable, given three objects. More...
class  OKlib::Concepts::ConstructibleCEq_Axiom_copy_eq< T >
 Checks for object a whether for x copy-constructed from a we have x == a. More...
class  OKlib::Concepts::ConstructibleCEq_basic_test_one_object< T >
 Basic test for ConstructibleCEq, given one object. More...
class  OKlib::Concepts::ConstructibleCEq_basic_test_two_objects< T >
 Basic test for ConstructibleCEq, given two objects. More...
class  OKlib::Concepts::ConstructibleCEq_basic_test_three_objects< T >
 Basic test for ConstructibleCEq, given three objects. More...
class  OKlib::Concepts::ConstructibleCAEq_Axiom_assign_eq< T >
 Checks whether after assignment x = b we have x == b. More...
class  OKlib::Concepts::ConstructibleCAEq_basic_test_one_object< T >
 Basic test for ConstructibleCAEq, given one object. More...
class  OKlib::Concepts::ConstructibleCAEq_basic_test_two_objects< T >
 Basic test for ConstructibleCAEq, given two objects. More...
class  OKlib::Concepts::ConstructibleCAEq_basic_test_three_objects< T >
 Basic test for ConstructibleCAEq, given three objects. More...
class  OKlib::Concepts::ConstructibleDEq_Axiom_default_eq< T >
 Checks whether two default constructed objects are equal. More...
class  OKlib::Concepts::ConstructibleDEq_basic_test_no_object< T >
 Basic test for ConstructibleDEq (not requiring any object). More...
class  OKlib::Concepts::ConstructibleDEq_basic_test_one_object< T >
 Basic test for ConstructibleDEq, given one object. More...
class  OKlib::Concepts::ConstructibleDEq_basic_test_two_objects< T >
 Basic test for ConstructibleDEq, given two objects. More...
class  OKlib::Concepts::ConstructibleDEq_basic_test_three_objects< T >
 Basic test for ConstructibleDEq, given three objects. More...
class  OKlib::Concepts::FullyConstructibleEq_basic_test_no_object< T >
 Basic test for FullyConstructibleEq (not requiring any object). More...
class  OKlib::Concepts::FullyConstructibleEq_basic_test_one_object< T >
 Basic test for FullyConstructibleEq, given one object. More...
class  OKlib::Concepts::FullyConstructibleEq_basic_test_two_objects< T >
 Basic test for FullyEqualityComparable, given two objects. More...
class  OKlib::Concepts::FullyConstructibleEq_basic_test_three_objects< T >
 Basic test for FullyEqualityComparable, given three objects. More...
struct  OKlib::Concepts::FullyLessThanComparable_Axiom_greater_positive< T >
struct  OKlib::Concepts::FullyLessThanComparable_Axiom_greater_negative< T >
struct  OKlib::Concepts::FullyLessThanComparable_Axiom_less_equal_positive< T >
struct  OKlib::Concepts::FullyLessThanComparable_Axiom_less_equal_negative< T >
struct  OKlib::Concepts::FullyLessThanComparable_Axiom_greater_equal_positive< T >
struct  OKlib::Concepts::FullyLessThanComparable_Axiom_greater_equal_negative< T >
struct  OKlib::Concepts::FullyLessThanComparable_basic_test_one_object< T >
struct  OKlib::Concepts::LinearOrder_Axiom_positive< T >
struct  OKlib::Concepts::LinearOrder_Axiom_negative< T >
struct  OKlib::Concepts::LinearOrder_basic_test_one_object< T >

Namespaces

namespace  OKlib
 

All components of the OKlibrary.


namespace  OKlib::Concepts
 

Concept definitions and accompanying generic tests.



Detailed Description

Test classes to help with determining, whether a class models the basic concepts.

Todo:
  • There must be (at least basic) tests for the tests itself.
  • Complete update!
  • Updating tests for FullyLessThanComparable (similar to tests for EqualityComparable).
  • Updating tests for LinearOrder (similar to tests for EqualityComparable).
  • Besides "axiomatix tests" we need "sporadic tests" (with given outcome). A range of (non-empy) ranges is the input here, where in case of ==-testing the elements in the single ranges are ==, and elements from different ranges are (not ==), while in case of < elements of the single ranges are equivalent (i.e., incomparable), and we have < for immediately succeeding ranges. The idea here is, that the minimal checks for these assertions are done here, and then a sequence of all the objects is fed into the systematic test from the previous points (altogether this must then guarantee that all asserted relations hold; for a LinearOrder for example we only need to compare within a single range neighbouring elements for ==, and the first elements of immediately successive ranges for <). Thus, for example for testing of a model of FullyConstructibleLinearOrder, the user only needs to provide such a set of sporadic test cases, and all possible checks are carried out.

Definition in file Basics_Tests.hpp.