// ArduinoJson - https://arduinojson.org // Copyright Benoit Blanchon 2014-2021 // MIT License #include #include using namespace ARDUINOJSON_NAMESPACE; TEST_CASE("arithmeticCompare()") { SECTION("int vs uint8_t") { CHECK((arithmeticCompare(256, 1) == COMPARE_RESULT_GREATER)); CHECK((arithmeticCompare(41, 42) == COMPARE_RESULT_LESS)); CHECK((arithmeticCompare(42, 42) == COMPARE_RESULT_EQUAL)); CHECK((arithmeticCompare(43, 42) == COMPARE_RESULT_GREATER)); } SECTION("unsigned vs int") { CHECK((arithmeticCompare(0, -1) == COMPARE_RESULT_GREATER)); CHECK((arithmeticCompare(42, 41) == COMPARE_RESULT_GREATER)); CHECK((arithmeticCompare(42, 42) == COMPARE_RESULT_EQUAL)); CHECK((arithmeticCompare(42, 43) == COMPARE_RESULT_LESS)); } SECTION("float vs int") { CHECK((arithmeticCompare(42, 41) == COMPARE_RESULT_GREATER)); CHECK((arithmeticCompare(42, 42) == COMPARE_RESULT_EQUAL)); CHECK((arithmeticCompare(42, 43) == COMPARE_RESULT_LESS)); } SECTION("int vs unsigned") { CHECK((arithmeticCompare(-1, 0) == COMPARE_RESULT_LESS)); CHECK((arithmeticCompare(0, 0) == COMPARE_RESULT_EQUAL)); CHECK((arithmeticCompare(1, 0) == COMPARE_RESULT_GREATER)); CHECK((arithmeticCompare(42, 41) == COMPARE_RESULT_GREATER)); CHECK((arithmeticCompare(42, 42) == COMPARE_RESULT_EQUAL)); CHECK((arithmeticCompare(42, 43) == COMPARE_RESULT_LESS)); } SECTION("unsigned vs unsigned") { CHECK((arithmeticCompare(42, 41) == COMPARE_RESULT_GREATER)); CHECK((arithmeticCompare(42, 42) == COMPARE_RESULT_EQUAL)); CHECK( (arithmeticCompare(42, 43) == COMPARE_RESULT_LESS)); } SECTION("bool vs bool") { CHECK( (arithmeticCompare(false, false) == COMPARE_RESULT_EQUAL)); CHECK((arithmeticCompare(true, true) == COMPARE_RESULT_EQUAL)); CHECK((arithmeticCompare(false, true) == COMPARE_RESULT_LESS)); CHECK( (arithmeticCompare(true, false) == COMPARE_RESULT_GREATER)); } SECTION("bool vs int") { CHECK((arithmeticCompare(false, -1) == COMPARE_RESULT_GREATER)); CHECK((arithmeticCompare(false, 0) == COMPARE_RESULT_EQUAL)); CHECK((arithmeticCompare(false, 1) == COMPARE_RESULT_LESS)); CHECK((arithmeticCompare(true, 0) == COMPARE_RESULT_GREATER)); CHECK((arithmeticCompare(true, 1) == COMPARE_RESULT_EQUAL)); CHECK((arithmeticCompare(true, 2) == COMPARE_RESULT_LESS)); } SECTION("bool vs int") { CHECK((arithmeticCompare(0, false) == COMPARE_RESULT_EQUAL)); CHECK((arithmeticCompare(1, true) == COMPARE_RESULT_EQUAL)); CHECK((arithmeticCompare(1, false) == COMPARE_RESULT_GREATER)); CHECK((arithmeticCompare(0, true) == COMPARE_RESULT_LESS)); } } TEST_CASE("arithmeticCompareNegateLeft()") { SECTION("unsigned vs int") { CHECK((arithmeticCompareNegateLeft(0, 1) == COMPARE_RESULT_LESS)); CHECK((arithmeticCompareNegateLeft(42, -41) == COMPARE_RESULT_LESS)); CHECK((arithmeticCompareNegateLeft(42, -42) == COMPARE_RESULT_EQUAL)); CHECK( (arithmeticCompareNegateLeft(42, -43) == COMPARE_RESULT_GREATER)); } SECTION("unsigned vs unsigned") { CHECK( (arithmeticCompareNegateLeft(42, 42) == COMPARE_RESULT_LESS)); } } TEST_CASE("arithmeticCompareNegateRight()") { SECTION("int vs unsigned") { CHECK((arithmeticCompareNegateRight(1, 0) == COMPARE_RESULT_GREATER)); CHECK( (arithmeticCompareNegateRight(-41, 42) == COMPARE_RESULT_GREATER)); CHECK((arithmeticCompareNegateRight(-42, 42) == COMPARE_RESULT_EQUAL)); CHECK((arithmeticCompareNegateRight(-43, 42) == COMPARE_RESULT_LESS)); } SECTION("unsigned vs unsigned") { CHECK((arithmeticCompareNegateRight(42, 42) == COMPARE_RESULT_GREATER)); } }