Sé que esta es una vieja pregunta, pero me encontré con el mismo problema y encontré una solución simple. En el archivo de cabecera Catch.hpp donde se define la clase Aprox (línea 2045 en el momento de la escritura), sólo tiene que añadir el siguiente constructor:
class Approx {
public:
explicit Approx(double value)
: m_epsilon(std::numeric_limits<float>::epsilon()*100),
m_scale(1.0),
m_value(value)
{}
explicit Approx(double value, double epsilon) // <- New constructor
: m_epsilon(epsilon),
m_scale(1.0),
m_value(value)
{}
Ahora usted puede hacer esto:
TEST_CASE("demo/approx", "Approx demo") {
double myTol = 0.1;
double a = 1.0;
double b = a + myTol;
REQUIRE_FALSE(a == b);
REQUIRE(a == Approx(b, myTol));
}
Si va a votar abajo, explique por qué. Para mí esto se ve bien. –
Metadata relacionada: http://meta.stackexchange.com/questions/98766/is-it-ok-to-post-a-question-and-self-answer-it-within-1-minute –
@Martin que era el tipo de cosa que uno escribiría en un comentario, no en una edición. –