// Copyright Benoit Blanchon 2014 // MIT License // // Arduino JSON library // https://github.com/bblanchon/ArduinoJson #include #include #include "Printers.hpp" using namespace ArduinoJson; class JsonVariant_Comparison_Tests : public ::testing::Test { protected: template void testValue(T low, T mid, T high) { setValueTo(mid); mustBeEqualTo(mid); mustBeGreaterThan(low); mustBeLessThan(high); } private: template void setValueTo(T expected) { jsonValue = expected; } template void mustBeEqualTo(T expected) { EXPECT_EQ(expected, jsonValue); // operator== EXPECT_EQ(jsonValue, expected); // operator== EXPECT_LE(expected, jsonValue); // operator<= EXPECT_LE(jsonValue, expected); // operator<= EXPECT_GE(expected, jsonValue); // operator>= EXPECT_GE(jsonValue, expected); // operator>= } template void mustBeGreaterThan(T expected) { EXPECT_GT(jsonValue, expected); // operator> EXPECT_LT(expected, jsonValue); // operator< EXPECT_NE(jsonValue, expected); // operator!= EXPECT_NE(expected, jsonValue); // operator!= } template void mustBeLessThan(T expected) { EXPECT_LT(jsonValue, expected); // operator< EXPECT_GT(expected, jsonValue); // operator< EXPECT_NE(jsonValue, expected); // operator!= EXPECT_NE(expected, jsonValue); // operator!= } JsonVariant jsonValue; }; TEST_F(JsonVariant_Comparison_Tests, Double) { testValue(123.44, 123.45, 123.46); } TEST_F(JsonVariant_Comparison_Tests, Float) { testValue(123.44f, 123.45f, 123.46f); } TEST_F(JsonVariant_Comparison_Tests, SChar) { testValue(122, 123, 124); } TEST_F(JsonVariant_Comparison_Tests, SInt) { testValue(122, 123, 124); } TEST_F(JsonVariant_Comparison_Tests, SLong) { testValue(122L, 123L, 124L); } TEST_F(JsonVariant_Comparison_Tests, SShort) { testValue(122, 123, 124); } TEST_F(JsonVariant_Comparison_Tests, UChar) { testValue(122, 123, 124); } TEST_F(JsonVariant_Comparison_Tests, UInt) { testValue(122, 123, 124); } TEST_F(JsonVariant_Comparison_Tests, ULong) { testValue(122L, 123L, 124L); } TEST_F(JsonVariant_Comparison_Tests, UShort) { testValue(122, 123, 124); }