Classes | Namespaces | Macros | Functions
Testable.h File Reference

Concept check for values that can be used in unit tests. More...

#include <gtsam/base/concepts.h>
#include <functional>
#include <iostream>
#include <memory>
#include <string>
Include dependency graph for Testable.h:

Go to the source code of this file.

Classes

struct  gtsam::equals< V >
 
struct  gtsam::equals_star< V >
 
struct  gtsam::HasTestablePrereqs< T >
 Requirements on type to pass it to Testable template below. More...
 
class  gtsam::IsTestable< T >
 
struct  gtsam::Testable< T >
 
struct  gtsam::traits< T >
 

Namespaces

 gtsam
 traits
 

Macros

#define GTSAM_CONCEPT_TESTABLE_INST(T)   template class gtsam::IsTestable<T>;
 
#define GTSAM_CONCEPT_TESTABLE_TYPE(T)   using _gtsam_Testable_##T = gtsam::IsTestable<T>;
 
#define GTSAM_PRINT(x)   ((x).print(#x))
 

Functions

template<class V >
bool gtsam::assert_equal (const V &expected, const V &actual, double tol=1e-9)
 
template<class T >
bool gtsam::equal (const T &obj1, const T &obj2)
 
template<class T >
bool gtsam::equal (const T &obj1, const T &obj2, double tol)
 
void gtsam::print (double v, const std::string &s="")
 
void gtsam::print (float v, const std::string &s="")
 

Detailed Description

Concept check for values that can be used in unit tests.

Author
Frank Dellaert

The necessary functions to implement for Testable are defined below with additional details as to the interface. The concept checking function will check whether or not the function exists in derived class and throw compile-time errors.

print with optional string naming the object void print(const std::string& name) const = 0;

equality up to tolerance tricky to implement, see PriorFactor for an example equals is not supposed to print out anything, just return true|false bool equals(const Derived& expected, double tol) const = 0;

Definition in file Testable.h.

Macro Definition Documentation

◆ GTSAM_CONCEPT_TESTABLE_INST

#define GTSAM_CONCEPT_TESTABLE_INST (   T)    template class gtsam::IsTestable<T>;

Macros for using the TestableConcept

  • An instantiation for use inside unit tests
  • A typedef for use inside generic algorithms

NOTE: intentionally not in the gtsam namespace to allow for classes not in the gtsam namespace to be more easily enforced as testable

Deprecated:
please use GTSAM_CONCEPT_ASSERT and

Definition at line 176 of file Testable.h.

◆ GTSAM_CONCEPT_TESTABLE_TYPE

#define GTSAM_CONCEPT_TESTABLE_TYPE (   T)    using _gtsam_Testable_##T = gtsam::IsTestable<T>;

Definition at line 177 of file Testable.h.

◆ GTSAM_PRINT

#define GTSAM_PRINT (   x)    ((x).print(#x))

Definition at line 43 of file Testable.h.



gtsam
Author(s):
autogenerated on Sat Nov 16 2024 04:09:52