36 #include <gtsam/base/concepts.h> 43 #define GTSAM_PRINT(x)((x).print(#x)) 48 template <
typename T>
struct traits;
76 inline void print(
float v,
const std::string& s =
"") {
77 std::cout << (s.empty() ? s : s +
" ") << v << std::endl;
79 inline void print(
double v,
const std::string& s =
"") {
80 std::cout << (s.empty() ? s : s +
" ") << v << std::endl;
85 inline bool equal(
const T& obj1,
const T& obj2,
double tol) {
91 inline bool equal(
const T& obj1,
const T& obj2) {
99 bool assert_equal(
const V& expected,
const V& actual,
double tol = 1e-9) {
102 printf(
"Not equal:\n");
112 struct equals :
public std::function<bool(const V&, const V&)> {
114 equals(
double tol = 1e-9) : tol_(tol) {}
115 bool operator()(
const V& expected,
const V& actual) {
124 struct equals_star :
public std::function<bool(const std::shared_ptr<V>&, const std::shared_ptr<V>&)> {
127 bool operator()(
const std::shared_ptr<V>& expected,
const std::shared_ptr<V>& actual) {
128 if (!actual && !expected)
return true;
139 b = t->equals(*s,tol);
157 static void Print(
const T& m,
const std::string& str =
"") {
160 static bool Equals(
const T& m1,
const T& m2,
double tol = 1e-8) {
161 return m1.equals(m2, tol);
176 #define GTSAM_CONCEPT_TESTABLE_INST(T) template class gtsam::IsTestable<T>; 177 #define GTSAM_CONCEPT_TESTABLE_TYPE(T) using _gtsam_Testable_##T = gtsam::IsTestable<T>; Definition: Testable.h:152
Requirements on type to pass it to Testable template below.
Definition: Testable.h:135
Definition: Testable.h:112
GTSAM_EXPORT void print(const Matrix &A, const std::string &s, std::ostream &stream)
Definition: Testable.h:59
Definition: chartTesting.h:28
GTSAM_EXPORT bool assert_equal(const Matrix &A, const Matrix &B, double tol=1e-9)
Definition: Testable.h:124
bool equal(const T &obj1, const T &obj2, double tol)
Definition: Testable.h:85