2021-03-29 17:14:01 +02:00
|
|
|
// ArduinoJson - https://arduinojson.org
|
2021-01-25 09:14:15 +01:00
|
|
|
// Copyright Benoit Blanchon 2014-2021
|
2014-11-03 18:23:39 +01:00
|
|
|
// MIT License
|
|
|
|
|
2016-06-22 21:41:19 +02:00
|
|
|
#include <ArduinoJson.h>
|
2017-04-18 18:22:24 +02:00
|
|
|
#include <catch.hpp>
|
|
|
|
|
2020-07-02 15:28:34 +02:00
|
|
|
// Most code is already covered by arithmeticCompare.cpp.
|
|
|
|
// Here, we're just filling the holes
|
2017-04-18 18:22:24 +02:00
|
|
|
|
2020-07-02 15:28:34 +02:00
|
|
|
TEST_CASE("Compare JsonVariant with value") {
|
|
|
|
StaticJsonDocument<256> doc;
|
|
|
|
JsonVariant a = doc.addElement();
|
2016-12-23 14:45:32 +01:00
|
|
|
|
2020-07-02 15:28:34 +02:00
|
|
|
SECTION("null vs (char*)0") {
|
|
|
|
char* b = 0;
|
2018-06-01 09:08:38 +02:00
|
|
|
|
2020-07-02 15:28:34 +02:00
|
|
|
CHECK(a == b);
|
|
|
|
CHECK(a <= b);
|
|
|
|
CHECK(a >= b);
|
|
|
|
CHECK_FALSE(a != b);
|
|
|
|
CHECK_FALSE(a < b);
|
|
|
|
CHECK_FALSE(a > b);
|
2017-04-18 18:22:24 +02:00
|
|
|
}
|
2017-02-11 15:06:17 +01:00
|
|
|
|
2020-07-02 15:28:34 +02:00
|
|
|
SECTION("42 vs 42") {
|
|
|
|
a.set(42);
|
|
|
|
int b = 42;
|
2018-08-22 14:37:17 +02:00
|
|
|
|
2020-07-02 15:28:34 +02:00
|
|
|
CHECK(a == b);
|
|
|
|
CHECK(a <= b);
|
|
|
|
CHECK(a >= b);
|
|
|
|
CHECK_FALSE(a != b);
|
|
|
|
CHECK_FALSE(a < b);
|
|
|
|
CHECK_FALSE(a > b);
|
2018-08-22 14:37:17 +02:00
|
|
|
}
|
2020-07-02 15:28:34 +02:00
|
|
|
}
|
2018-08-22 14:37:17 +02:00
|
|
|
|
2020-07-02 15:28:34 +02:00
|
|
|
TEST_CASE("Compare JsonVariant with JsonVariant") {
|
|
|
|
StaticJsonDocument<256> doc;
|
|
|
|
JsonVariant a = doc.addElement();
|
|
|
|
JsonVariant b = doc.addElement();
|
2018-08-22 14:37:17 +02:00
|
|
|
|
2020-07-02 15:28:34 +02:00
|
|
|
SECTION("'abc' vs 'abc'") {
|
|
|
|
a.set("abc");
|
|
|
|
b.set("abc");
|
2018-08-22 14:37:17 +02:00
|
|
|
|
2020-07-02 15:28:34 +02:00
|
|
|
CHECK(a == b);
|
|
|
|
CHECK(a <= b);
|
|
|
|
CHECK(a >= b);
|
|
|
|
CHECK_FALSE(a != b);
|
|
|
|
CHECK_FALSE(a < b);
|
|
|
|
CHECK_FALSE(a > b);
|
2018-08-22 14:37:17 +02:00
|
|
|
}
|
|
|
|
|
2020-07-02 15:28:34 +02:00
|
|
|
SECTION("'abc' vs 'bcd'") {
|
|
|
|
a.set("abc");
|
|
|
|
b.set("bcd");
|
2018-08-21 17:56:16 +02:00
|
|
|
|
2020-07-02 15:28:34 +02:00
|
|
|
CHECK(a != b);
|
|
|
|
CHECK(a < b);
|
|
|
|
CHECK(a <= b);
|
|
|
|
CHECK_FALSE(a == b);
|
|
|
|
CHECK_FALSE(a > b);
|
|
|
|
CHECK_FALSE(a >= b);
|
2017-04-18 18:22:24 +02:00
|
|
|
}
|
2017-02-11 15:06:17 +01:00
|
|
|
|
2020-07-02 15:28:34 +02:00
|
|
|
SECTION("'bcd' vs 'abc'") {
|
|
|
|
a.set("bcd");
|
|
|
|
b.set("abc");
|
2017-02-11 15:06:17 +01:00
|
|
|
|
2020-07-02 15:28:34 +02:00
|
|
|
CHECK(a != b);
|
|
|
|
CHECK(a > b);
|
|
|
|
CHECK(a >= b);
|
|
|
|
CHECK_FALSE(a < b);
|
|
|
|
CHECK_FALSE(a <= b);
|
|
|
|
CHECK_FALSE(a == b);
|
2017-04-18 18:22:24 +02:00
|
|
|
}
|
2017-02-11 15:06:17 +01:00
|
|
|
|
2020-07-02 15:28:34 +02:00
|
|
|
SECTION("serialized('abc') vs serialized('abc')") {
|
|
|
|
a.set(serialized("abc"));
|
|
|
|
b.set(serialized("abc"));
|
2018-11-09 17:27:32 +01:00
|
|
|
|
2020-07-02 15:28:34 +02:00
|
|
|
CHECK(a == b);
|
|
|
|
CHECK(a <= b);
|
|
|
|
CHECK(a >= b);
|
|
|
|
CHECK_FALSE(a != b);
|
|
|
|
CHECK_FALSE(a < b);
|
|
|
|
CHECK_FALSE(a > b);
|
2018-11-09 17:27:32 +01:00
|
|
|
}
|
|
|
|
|
2020-07-02 15:28:34 +02:00
|
|
|
SECTION("serialized('abc') vs serialized('bcd')") {
|
|
|
|
a.set(serialized("abc"));
|
|
|
|
b.set(serialized("bcd"));
|
2019-03-24 19:39:23 +01:00
|
|
|
|
2020-07-02 15:28:34 +02:00
|
|
|
CHECK(a != b);
|
|
|
|
CHECK(a < b);
|
|
|
|
CHECK(a <= b);
|
|
|
|
CHECK_FALSE(a == b);
|
|
|
|
CHECK_FALSE(a > b);
|
|
|
|
CHECK_FALSE(a >= b);
|
2018-11-28 12:40:18 +01:00
|
|
|
}
|
|
|
|
|
2020-07-02 15:28:34 +02:00
|
|
|
SECTION("serialized('bcd') vs serialized('abc')") {
|
|
|
|
a.set(serialized("bcd"));
|
|
|
|
b.set(serialized("abc"));
|
2018-11-28 12:40:18 +01:00
|
|
|
|
2020-07-02 15:28:34 +02:00
|
|
|
CHECK(a != b);
|
|
|
|
CHECK(a > b);
|
|
|
|
CHECK(a >= b);
|
|
|
|
CHECK_FALSE(a < b);
|
|
|
|
CHECK_FALSE(a <= b);
|
|
|
|
CHECK_FALSE(a == b);
|
2018-11-28 12:40:18 +01:00
|
|
|
}
|
|
|
|
|
2020-07-02 15:28:34 +02:00
|
|
|
SECTION("false vs true") {
|
|
|
|
a.set(false);
|
|
|
|
b.set(true);
|
2019-07-19 12:15:16 +02:00
|
|
|
|
2020-07-02 15:28:34 +02:00
|
|
|
CHECK(a != b);
|
|
|
|
CHECK(a < b);
|
|
|
|
CHECK(a <= b);
|
|
|
|
CHECK_FALSE(a == b);
|
|
|
|
CHECK_FALSE(a > b);
|
|
|
|
CHECK_FALSE(a >= b);
|
2019-07-19 12:15:16 +02:00
|
|
|
}
|
|
|
|
|
2020-07-02 15:28:34 +02:00
|
|
|
SECTION("false vs -1") {
|
|
|
|
a.set(false);
|
|
|
|
b.set(-1);
|
2017-02-11 15:06:17 +01:00
|
|
|
|
2020-07-02 15:28:34 +02:00
|
|
|
CHECK(a != b);
|
|
|
|
CHECK(a > b);
|
|
|
|
CHECK(a >= b);
|
|
|
|
CHECK_FALSE(a < b);
|
|
|
|
CHECK_FALSE(a <= b);
|
|
|
|
CHECK_FALSE(a == b);
|
2017-04-18 18:22:24 +02:00
|
|
|
}
|
2017-02-11 15:06:17 +01:00
|
|
|
|
2020-07-02 15:28:34 +02:00
|
|
|
SECTION("null vs null") {
|
|
|
|
CHECK(a == b);
|
|
|
|
CHECK(a <= b);
|
|
|
|
CHECK(a >= b);
|
|
|
|
CHECK_FALSE(a != b);
|
|
|
|
CHECK_FALSE(a < b);
|
|
|
|
CHECK_FALSE(a > b);
|
2017-04-18 18:22:24 +02:00
|
|
|
}
|
2017-02-11 15:06:17 +01:00
|
|
|
|
2020-07-02 15:28:34 +02:00
|
|
|
SECTION("42 vs 42") {
|
|
|
|
a.set(42);
|
|
|
|
b.set(42);
|
2017-02-11 15:06:17 +01:00
|
|
|
|
2020-07-02 15:28:34 +02:00
|
|
|
CHECK(a == b);
|
|
|
|
CHECK(a <= b);
|
|
|
|
CHECK(a >= b);
|
|
|
|
CHECK_FALSE(a != b);
|
|
|
|
CHECK_FALSE(a < b);
|
|
|
|
CHECK_FALSE(a > b);
|
2017-04-18 18:22:24 +02:00
|
|
|
}
|
2017-02-11 15:06:17 +01:00
|
|
|
|
2020-07-02 15:28:34 +02:00
|
|
|
SECTION("42 vs 42.0") {
|
|
|
|
a.set(42);
|
|
|
|
b.set(42.0);
|
2017-02-11 15:06:17 +01:00
|
|
|
|
2020-07-02 15:28:34 +02:00
|
|
|
CHECK(a == b);
|
|
|
|
CHECK(a <= b);
|
|
|
|
CHECK(a >= b);
|
|
|
|
CHECK_FALSE(a != b);
|
|
|
|
CHECK_FALSE(a < b);
|
|
|
|
CHECK_FALSE(a > b);
|
2017-04-18 18:22:24 +02:00
|
|
|
}
|
2019-05-23 21:54:42 +02:00
|
|
|
|
2020-07-02 15:28:34 +02:00
|
|
|
SECTION("42.0 vs 42") {
|
|
|
|
a.set(42.0);
|
|
|
|
b.set(42);
|
2019-05-23 21:54:42 +02:00
|
|
|
|
2020-07-02 15:28:34 +02:00
|
|
|
CHECK(a == b);
|
|
|
|
CHECK(a <= b);
|
|
|
|
CHECK(a >= b);
|
|
|
|
CHECK_FALSE(a != b);
|
|
|
|
CHECK_FALSE(a < b);
|
|
|
|
CHECK_FALSE(a > b);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("-42 vs -42") {
|
|
|
|
a.set(-42);
|
|
|
|
b.set(-42);
|
2019-05-23 21:54:42 +02:00
|
|
|
|
2020-07-02 15:28:34 +02:00
|
|
|
CHECK(a == b);
|
|
|
|
CHECK(a <= b);
|
|
|
|
CHECK(a >= b);
|
|
|
|
CHECK_FALSE(a != b);
|
|
|
|
CHECK_FALSE(a < b);
|
|
|
|
CHECK_FALSE(a > b);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("-42 vs 42") {
|
|
|
|
a.set(-42);
|
|
|
|
b.set(42);
|
2019-05-23 21:54:42 +02:00
|
|
|
|
2020-07-02 15:28:34 +02:00
|
|
|
CHECK(a != b);
|
|
|
|
CHECK(a < b);
|
|
|
|
CHECK(a <= b);
|
|
|
|
CHECK_FALSE(a == b);
|
|
|
|
CHECK_FALSE(a > b);
|
|
|
|
CHECK_FALSE(a >= b);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("42 vs -42") {
|
|
|
|
a.set(42);
|
|
|
|
b.set(-42);
|
2019-05-23 21:54:42 +02:00
|
|
|
|
2020-07-02 15:28:34 +02:00
|
|
|
CHECK(a != b);
|
|
|
|
CHECK(a > b);
|
|
|
|
CHECK(a >= b);
|
|
|
|
CHECK_FALSE(a < b);
|
|
|
|
CHECK_FALSE(a <= b);
|
|
|
|
CHECK_FALSE(a == b);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("42.0 vs -42") {
|
|
|
|
a.set(42.0);
|
|
|
|
b.set(-42);
|
2017-02-11 15:06:17 +01:00
|
|
|
|
2020-07-02 15:28:34 +02:00
|
|
|
CHECK(a != b);
|
|
|
|
CHECK(a > b);
|
|
|
|
CHECK(a >= b);
|
|
|
|
CHECK_FALSE(a < b);
|
|
|
|
CHECK_FALSE(a <= b);
|
|
|
|
CHECK_FALSE(a == b);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("[1] vs [1]") {
|
|
|
|
a.add(1);
|
|
|
|
b.add(1);
|
2019-05-23 21:54:42 +02:00
|
|
|
|
2020-07-02 15:28:34 +02:00
|
|
|
CHECK(a <= b);
|
|
|
|
CHECK(a == b);
|
|
|
|
CHECK(a >= b);
|
|
|
|
CHECK_FALSE(a != b);
|
|
|
|
CHECK_FALSE(a < b);
|
|
|
|
CHECK_FALSE(a > b);
|
|
|
|
}
|
2019-05-23 21:54:42 +02:00
|
|
|
|
2020-07-02 15:28:34 +02:00
|
|
|
SECTION("[1] vs [2]") {
|
|
|
|
a.add(1);
|
|
|
|
b.add(2);
|
2019-05-23 21:54:42 +02:00
|
|
|
|
2020-07-02 15:28:34 +02:00
|
|
|
CHECK(a != b);
|
|
|
|
CHECK_FALSE(a < b);
|
|
|
|
CHECK_FALSE(a <= b);
|
|
|
|
CHECK_FALSE(a == b);
|
|
|
|
CHECK_FALSE(a > b);
|
|
|
|
CHECK_FALSE(a >= b);
|
|
|
|
}
|
2019-05-23 21:54:42 +02:00
|
|
|
|
2020-07-02 15:28:34 +02:00
|
|
|
SECTION("{x:1} vs {x:1}") {
|
|
|
|
a["x"] = 1;
|
|
|
|
b["x"] = 1;
|
2019-05-23 21:54:42 +02:00
|
|
|
|
2020-07-02 15:28:34 +02:00
|
|
|
CHECK(a <= b);
|
|
|
|
CHECK(a == b);
|
|
|
|
CHECK(a >= b);
|
|
|
|
CHECK_FALSE(a != b);
|
|
|
|
CHECK_FALSE(a < b);
|
|
|
|
CHECK_FALSE(a > b);
|
|
|
|
}
|
2019-05-23 21:54:42 +02:00
|
|
|
|
2020-07-02 15:28:34 +02:00
|
|
|
SECTION("{x:1} vs {x:2}") {
|
|
|
|
a["x"] = 1;
|
|
|
|
b["x"] = 2;
|
2019-05-23 21:54:42 +02:00
|
|
|
|
2020-07-02 15:28:34 +02:00
|
|
|
CHECK(a != b);
|
|
|
|
CHECK_FALSE(a < b);
|
|
|
|
CHECK_FALSE(a <= b);
|
|
|
|
CHECK_FALSE(a == b);
|
|
|
|
CHECK_FALSE(a > b);
|
|
|
|
CHECK_FALSE(a >= b);
|
2019-05-23 21:54:42 +02:00
|
|
|
}
|
2017-02-11 15:06:17 +01:00
|
|
|
}
|