1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
|
Description: relax equality expectations on floating point values.
This is needed to fix build failures on 32-bit systems, notably i386.
Author: Étienne Mollier <emollier@debian.org>
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1103123
Forwarded: not-needed
Last-Update: 2025-05-01
---
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
--- tao-json.orig/src/test/json/jaxn_parts_parser.cpp
+++ tao-json/src/test/json/jaxn_parts_parser.cpp
@@ -88,17 +88,20 @@
}
{
jaxn::parts_parser p( "100.45", __FUNCTION__ );
- TEST_ASSERT( p.number_double() == 100.45 );
+ auto a = p.number_double();
+ TEST_ASSERT( 100.449 <= a && a <= 100.451 );
TEST_ASSERT( p.empty() );
}
{
jaxn::parts_parser p( "+100.45", __FUNCTION__ );
- TEST_ASSERT( p.number_double() == 100.45 );
+ auto a = p.number_double();
+ TEST_ASSERT( 100.449 <= a && a <= 100.451 );
TEST_ASSERT( p.empty() );
}
{
jaxn::parts_parser p( "-100.45", __FUNCTION__ );
- TEST_ASSERT( p.number_double() == -100.45 );
+ auto a = p.number_double();
+ TEST_ASSERT( -100.451 <= a && a <= -100.449 );
TEST_ASSERT( p.empty() );
}
{
@@ -154,7 +157,8 @@
TEST_ASSERT( p.boolean() == true );
TEST_ASSERT( p.null() == false );
p.element( a );
- TEST_ASSERT( p.number_double() == -42.7 );
+ auto b = p.number_double();
+ TEST_ASSERT( -42.701 <= b && b <= -42.699 );
TEST_ASSERT( p.null() == false );
p.element( a );
TEST_ASSERT( p.null() == false );
--- tao-json.orig/src/test/json/json_parts_parser.cpp
+++ tao-json/src/test/json/json_parts_parser.cpp
@@ -64,7 +64,8 @@
TEST_ASSERT( p.boolean() == true );
TEST_ASSERT( p.null() == false );
p.element( a );
- TEST_ASSERT( p.number_double() == -42.7 );
+ auto b = p.number_double();
+ TEST_ASSERT( -42.701 <= b && b <= -42.699 );
TEST_ASSERT( p.null() == false );
p.element( a );
TEST_ASSERT( p.null() == false );
--- tao-json.orig/src/test/json/binding_object.cpp
+++ tao-json/src/test/json/binding_object.cpp
@@ -48,7 +48,7 @@
TEST_ASSERT( a.i == 42 );
TEST_ASSERT( a.s == "foo" );
TEST_ASSERT( a.b && ( *a.b == true ) );
- TEST_ASSERT( a.d && ( *a.d == 43.1 ) );
+ TEST_ASSERT( a.d && ( *a.d >= 43.09 ) && ( *a.d <= 43.11 ) );
TEST_ASSERT( a.z.first == 5 );
TEST_ASSERT( a.z.second == 6 );
TEST_ASSERT( a == v );
@@ -62,7 +62,7 @@
TEST_ASSERT( b.i == 42 );
TEST_ASSERT( b.s == "foo" );
TEST_ASSERT( b.b && ( *a.b == true ) );
- TEST_ASSERT( b.d && ( *a.d == 43.1 ) );
+ TEST_ASSERT( b.d && ( *b.d >= 43.09 ) && ( *b.d <= 43.11 ) );
TEST_ASSERT( b.z.first == 5 );
TEST_ASSERT( b.z.second == 6 );
auto w = v;
@@ -135,7 +135,8 @@
TEST_ASSERT( v.at( "b" ).is_boolean() );
TEST_ASSERT( v.as< bool >( "b" ) == false );
TEST_ASSERT( v.at( "d" ).is_double() );
- TEST_ASSERT( v.as< double >( "d" ) == 44.2 );
+ TEST_ASSERT( v.as< double >( "d" ) >= 44.19 );
+ TEST_ASSERT( v.as< double >( "d" ) <= 44.21 );
TEST_ASSERT( v.at( "z" ).is_array() );
TEST_ASSERT( v.at( "z" ).get_array().size() == 2 );
TEST_ASSERT( v.at( "z" ).get_array()[ 0 ].as< int >() == 8 );
|