From fc1e9f70f99eb9fd6417d43f65703cc93d7fef2a Mon Sep 17 00:00:00 2001 From: Alexander Wilms Date: Sun, 18 Feb 2024 23:16:11 +0100 Subject: [PATCH 1/2] Fix float comparison --- test/JsonComparer.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/JsonComparer.cpp b/test/JsonComparer.cpp index 99c3c0c99..7df764eb0 100644 --- a/test/JsonComparer.cpp +++ b/test/JsonComparer.cpp @@ -45,7 +45,7 @@ bool JsonComparer::isEmpty(const JsonNode & value) case JsonNode::JsonType::DATA_BOOL: return !value.Bool(); case JsonNode::JsonType::DATA_FLOAT: - return value.Float() == 0; + return vstd::isAlmostEqual(value.Float(), 0); case JsonNode::JsonType::DATA_INTEGER: return value.Integer() == 0; case JsonNode::JsonType::DATA_STRING: From 06a56a0ec3fd686c74397259fb5cfea4882ba34d Mon Sep 17 00:00:00 2001 From: Alexander Wilms Date: Sun, 18 Feb 2024 23:32:12 +0100 Subject: [PATCH 2/2] Try to fix compilation error: /home/runner/work/vcmi/vcmi/test/../Global.h:700:36: error: no matching function for call to 'max' const Floating relativeEpsilon = std::max(std::abs(left), std::abs(right)) * epsilon; ^~~~~~~~ /home/runner/work/vcmi/vcmi/test/JsonComparer.cpp:48:16: note: in instantiation of function template specialization 'vstd::isAlmostEqual' requested here return vstd::isAlmostEqual(value.Float(), 0); ^ --- test/JsonComparer.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/JsonComparer.cpp b/test/JsonComparer.cpp index 7df764eb0..46a9b00da 100644 --- a/test/JsonComparer.cpp +++ b/test/JsonComparer.cpp @@ -45,7 +45,7 @@ bool JsonComparer::isEmpty(const JsonNode & value) case JsonNode::JsonType::DATA_BOOL: return !value.Bool(); case JsonNode::JsonType::DATA_FLOAT: - return vstd::isAlmostEqual(value.Float(), 0); + return vstd::isAlmostEqual(value.Float(), 0.0); case JsonNode::JsonType::DATA_INTEGER: return value.Integer() == 0; case JsonNode::JsonType::DATA_STRING: