
【主 题】:不从配置文件远端获取 ArduinoJson库 添加到根目录调用 【描 述】: [原因]:防止版本不同 造成bug [过程]: [影响]: 【结 束】 # 类型 包含: # feat:新功能(feature) # fix:修补bug # docs:文档(documentation) # style: 格式(不影响代码运行的变动) # refactor:重构(即不是新增功能,也不是修改bug的代码变动) # test:增加测试 # chore:构建过程或辅助工具的变动
317 lines
5.4 KiB
C++
317 lines
5.4 KiB
C++
// ArduinoJson - https://arduinojson.org
|
|
// Copyright © 2014-2022, Benoit BLANCHON
|
|
// MIT License
|
|
|
|
#include <ArduinoJson.h>
|
|
#include <catch.hpp>
|
|
|
|
// Most code is already covered by arithmeticCompare.cpp.
|
|
// Here, we're just filling the holes
|
|
|
|
TEST_CASE("Compare JsonVariant with value") {
|
|
StaticJsonDocument<256> doc;
|
|
JsonVariant a = doc.addElement();
|
|
|
|
SECTION("null vs (char*)0") {
|
|
char* b = 0;
|
|
|
|
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);
|
|
int b = 42;
|
|
|
|
CHECK(a == b);
|
|
CHECK(a <= b);
|
|
CHECK(a >= b);
|
|
CHECK_FALSE(a != b);
|
|
CHECK_FALSE(a < b);
|
|
CHECK_FALSE(a > b);
|
|
}
|
|
}
|
|
|
|
TEST_CASE("Compare JsonVariant with JsonVariant") {
|
|
StaticJsonDocument<256> doc;
|
|
JsonVariant a = doc.addElement();
|
|
JsonVariant b = doc.addElement();
|
|
|
|
SECTION("'abc' vs 'abc'") {
|
|
a.set("abc");
|
|
b.set("abc");
|
|
|
|
CHECK(a == b);
|
|
CHECK(a <= b);
|
|
CHECK(a >= b);
|
|
CHECK_FALSE(a != b);
|
|
CHECK_FALSE(a < b);
|
|
CHECK_FALSE(a > b);
|
|
}
|
|
|
|
SECTION("'abc' vs 'bcd'") {
|
|
a.set("abc");
|
|
b.set("bcd");
|
|
|
|
CHECK(a != b);
|
|
CHECK(a < b);
|
|
CHECK(a <= b);
|
|
CHECK_FALSE(a == b);
|
|
CHECK_FALSE(a > b);
|
|
CHECK_FALSE(a >= b);
|
|
}
|
|
|
|
SECTION("'bcd' vs 'abc'") {
|
|
a.set("bcd");
|
|
b.set("abc");
|
|
|
|
CHECK(a != b);
|
|
CHECK(a > b);
|
|
CHECK(a >= b);
|
|
CHECK_FALSE(a < b);
|
|
CHECK_FALSE(a <= b);
|
|
CHECK_FALSE(a == b);
|
|
}
|
|
|
|
SECTION("serialized('abc') vs serialized('abc')") {
|
|
a.set(serialized("abc"));
|
|
b.set(serialized("abc"));
|
|
|
|
CHECK(a == b);
|
|
CHECK(a <= b);
|
|
CHECK(a >= b);
|
|
CHECK_FALSE(a != b);
|
|
CHECK_FALSE(a < b);
|
|
CHECK_FALSE(a > b);
|
|
}
|
|
|
|
SECTION("serialized('abc') vs serialized('bcd')") {
|
|
a.set(serialized("abc"));
|
|
b.set(serialized("bcd"));
|
|
|
|
CHECK(a != b);
|
|
CHECK(a < b);
|
|
CHECK(a <= b);
|
|
CHECK_FALSE(a == b);
|
|
CHECK_FALSE(a > b);
|
|
CHECK_FALSE(a >= b);
|
|
}
|
|
|
|
SECTION("serialized('bcd') vs serialized('abc')") {
|
|
a.set(serialized("bcd"));
|
|
b.set(serialized("abc"));
|
|
|
|
CHECK(a != b);
|
|
CHECK(a > b);
|
|
CHECK(a >= b);
|
|
CHECK_FALSE(a < b);
|
|
CHECK_FALSE(a <= b);
|
|
CHECK_FALSE(a == b);
|
|
}
|
|
|
|
SECTION("false vs true") {
|
|
a.set(false);
|
|
b.set(true);
|
|
|
|
CHECK(a != b);
|
|
CHECK(a < b);
|
|
CHECK(a <= b);
|
|
CHECK_FALSE(a == b);
|
|
CHECK_FALSE(a > b);
|
|
CHECK_FALSE(a >= b);
|
|
}
|
|
|
|
SECTION("false vs -1") {
|
|
a.set(false);
|
|
b.set(-1);
|
|
|
|
CHECK(a != b);
|
|
CHECK(a > b);
|
|
CHECK(a >= b);
|
|
CHECK_FALSE(a < b);
|
|
CHECK_FALSE(a <= b);
|
|
CHECK_FALSE(a == b);
|
|
}
|
|
|
|
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);
|
|
}
|
|
|
|
SECTION("42 vs 42") {
|
|
a.set(42);
|
|
b.set(42);
|
|
|
|
CHECK(a == b);
|
|
CHECK(a <= b);
|
|
CHECK(a >= b);
|
|
CHECK_FALSE(a != b);
|
|
CHECK_FALSE(a < b);
|
|
CHECK_FALSE(a > b);
|
|
}
|
|
|
|
SECTION("42 vs 42U") {
|
|
a.set(42);
|
|
b.set(42U);
|
|
|
|
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.0") {
|
|
a.set(42);
|
|
b.set(42.0);
|
|
|
|
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);
|
|
|
|
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);
|
|
|
|
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);
|
|
|
|
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);
|
|
|
|
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);
|
|
|
|
CHECK(a != b);
|
|
CHECK(a > b);
|
|
CHECK(a >= b);
|
|
CHECK_FALSE(a < b);
|
|
CHECK_FALSE(a <= b);
|
|
CHECK_FALSE(a == b);
|
|
}
|
|
|
|
SECTION("42U vs 42U") {
|
|
a.set(42U);
|
|
b.set(42U);
|
|
|
|
CHECK(a == b);
|
|
CHECK(a <= b);
|
|
CHECK(a >= b);
|
|
CHECK_FALSE(a != b);
|
|
CHECK_FALSE(a < b);
|
|
CHECK_FALSE(a > b);
|
|
}
|
|
|
|
SECTION("42U vs 42") {
|
|
a.set(42U);
|
|
b.set(42);
|
|
|
|
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);
|
|
|
|
CHECK(a <= b);
|
|
CHECK(a == b);
|
|
CHECK(a >= b);
|
|
CHECK_FALSE(a != b);
|
|
CHECK_FALSE(a < b);
|
|
CHECK_FALSE(a > b);
|
|
}
|
|
|
|
SECTION("[1] vs [2]") {
|
|
a.add(1);
|
|
b.add(2);
|
|
|
|
CHECK(a != b);
|
|
CHECK_FALSE(a < b);
|
|
CHECK_FALSE(a <= b);
|
|
CHECK_FALSE(a == b);
|
|
CHECK_FALSE(a > b);
|
|
CHECK_FALSE(a >= b);
|
|
}
|
|
|
|
SECTION("{x:1} vs {x:1}") {
|
|
a["x"] = 1;
|
|
b["x"] = 1;
|
|
|
|
CHECK(a <= b);
|
|
CHECK(a == b);
|
|
CHECK(a >= b);
|
|
CHECK_FALSE(a != b);
|
|
CHECK_FALSE(a < b);
|
|
CHECK_FALSE(a > b);
|
|
}
|
|
|
|
SECTION("{x:1} vs {x:2}") {
|
|
a["x"] = 1;
|
|
b["x"] = 2;
|
|
|
|
CHECK(a != b);
|
|
CHECK_FALSE(a < b);
|
|
CHECK_FALSE(a <= b);
|
|
CHECK_FALSE(a == b);
|
|
CHECK_FALSE(a > b);
|
|
CHECK_FALSE(a >= b);
|
|
}
|
|
}
|