From 33452c1f372a102a265a6670d578bc1fa5d0b72d Mon Sep 17 00:00:00 2001 From: Benoit Blanchon Date: Tue, 27 Aug 2024 16:06:38 +0200 Subject: [PATCH] Test `JsonVariant::as()` with extension slots --- extras/tests/JsonVariant/as.cpp | 80 +++++++++++++++++++++++---------- 1 file changed, 57 insertions(+), 23 deletions(-) diff --git a/extras/tests/JsonVariant/as.cpp b/extras/tests/JsonVariant/as.cpp index fa76b0e0..0c86026f 100644 --- a/extras/tests/JsonVariant/as.cpp +++ b/extras/tests/JsonVariant/as.cpp @@ -31,13 +31,28 @@ TEST_CASE("JsonVariant::as()") { REQUIRE(variant.as().data() == nullptr); } - SECTION("set(4.2)") { + SECTION("set(float)") { + variant.set(4.2f); + + REQUIRE(variant.as()); + REQUIRE(0 == variant.as()); + REQUIRE(variant.as() == "4.199999809"); // TODO + REQUIRE(variant.as() == 4L); + REQUIRE(variant.as() == 4.2f); + REQUIRE(variant.as() == 4U); + REQUIRE(variant.as().isNull()); + REQUIRE(variant.as().data() == nullptr); + REQUIRE(variant.as().data() == nullptr); + } + + SECTION("set(double)") { variant.set(4.2); REQUIRE(variant.as()); REQUIRE(0 == variant.as()); REQUIRE(variant.as() == "4.2"); REQUIRE(variant.as() == 4L); + REQUIRE(variant.as() == 4.2); REQUIRE(variant.as() == 4U); REQUIRE(variant.as().isNull()); REQUIRE(variant.as().data() == nullptr); @@ -78,43 +93,62 @@ TEST_CASE("JsonVariant::as()") { REQUIRE(variant.as().data() == nullptr); } - SECTION("set(42)") { - variant.set(42); + SECTION("set(uint32_t)") { + variant.set(4294967295U); REQUIRE(variant.as() == true); - REQUIRE(variant.as() == 42.0); - REQUIRE(variant.as() == 42); - REQUIRE(variant.as() == 42U); // issue #1601 - REQUIRE(variant.as() == "42"); + REQUIRE(variant.as() == 4294967295.0); + REQUIRE(variant.as() == 0); + REQUIRE(variant.as() == 4294967295U); + REQUIRE(variant.as() == 4294967295U); + REQUIRE(variant.as() == "4294967295"); REQUIRE(variant.as().isNull()); REQUIRE(variant.as().data() == nullptr); REQUIRE(variant.as().data() == nullptr); } - SECTION("set(42L)") { - variant.set(42L); + SECTION("set(int32_t)") { + variant.set(-2147483648LL); REQUIRE(variant.as() == true); - REQUIRE(variant.as() == 42.0); - REQUIRE(variant.as() == "42"); + REQUIRE(variant.as() == -2147483648LL); + REQUIRE(variant.as() == -2147483648LL); + REQUIRE(variant.as() == -2147483648LL); + REQUIRE(variant.as() == 0); + REQUIRE(variant.as() == 0); + REQUIRE(variant.as() == "-2147483648"); REQUIRE(variant.as().isNull()); + REQUIRE(variant.as().data() == nullptr); + REQUIRE(variant.as().data() == nullptr); } - SECTION("set(-42L)") { - variant.set(-42L); - - REQUIRE(variant.as() == -42.0); - REQUIRE(variant.as() == "-42"); - REQUIRE(variant.as().isNull()); - } - - SECTION("set(42UL)") { - variant.set(42UL); + SECTION("set(uint64_t)") { + variant.set(4294967296U); REQUIRE(variant.as() == true); - REQUIRE(variant.as() == 42.0); - REQUIRE(variant.as() == "42"); + REQUIRE(variant.as() == 4294967296.0); + REQUIRE(variant.as() == 0); + REQUIRE(variant.as() == 0); + REQUIRE(variant.as() == 4294967296U); + REQUIRE(variant.as() == "4294967296"); REQUIRE(variant.as().isNull()); + REQUIRE(variant.as().data() == nullptr); + REQUIRE(variant.as().data() == nullptr); + } + + SECTION("set(int64_t)") { + variant.set(-2147483649LL); + + REQUIRE(variant.as() == true); + REQUIRE(variant.as() == -2147483649LL); + REQUIRE(variant.as() == 0); + REQUIRE(variant.as() == -2147483649LL); + REQUIRE(variant.as() == 0); + REQUIRE(variant.as() == 0); + REQUIRE(variant.as() == "-2147483649"); + REQUIRE(variant.as().isNull()); + REQUIRE(variant.as().data() == nullptr); + REQUIRE(variant.as().data() == nullptr); } SECTION("set(0L)") {