mirror of
				https://github.com/eledio-devices/thirdparty-ArduinoJson.git
				synced 2025-10-31 16:14:11 +01:00 
			
		
		
		
	Fix comparison operators for JsonArray and JsonArrayConst
				
					
				
			This commit is contained in:
		| @@ -6,6 +6,7 @@ HEAD | |||||||
|  |  | ||||||
| * Add `JsonVariant::link()` (issue #1343) | * Add `JsonVariant::link()` (issue #1343) | ||||||
| * Fix `9.22337e+18 is outside the range of representable values of type 'long'` | * Fix `9.22337e+18 is outside the range of representable values of type 'long'` | ||||||
|  | * Fix comparison operators for `JsonArray` and `JsonArrayConst` | ||||||
|  |  | ||||||
| v6.19.4 (2022-04-05) | v6.19.4 (2022-04-05) | ||||||
| ------- | ------- | ||||||
|   | |||||||
| @@ -5,6 +5,7 @@ | |||||||
| add_executable(JsonArrayTests | add_executable(JsonArrayTests | ||||||
| 	add.cpp | 	add.cpp | ||||||
| 	clear.cpp | 	clear.cpp | ||||||
|  | 	compare.cpp | ||||||
| 	copyArray.cpp | 	copyArray.cpp | ||||||
| 	createNested.cpp | 	createNested.cpp | ||||||
| 	equals.cpp | 	equals.cpp | ||||||
|   | |||||||
							
								
								
									
										512
									
								
								extras/tests/JsonArray/compare.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										512
									
								
								extras/tests/JsonArray/compare.cpp
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,512 @@ | |||||||
|  | // ArduinoJson - https://arduinojson.org | ||||||
|  | // Copyright © 2014-2022, Benoit BLANCHON | ||||||
|  | // MIT License | ||||||
|  |  | ||||||
|  | #include <ArduinoJson.h> | ||||||
|  | #include <catch.hpp> | ||||||
|  |  | ||||||
|  | TEST_CASE("Compare JsonArray with JsonArray") { | ||||||
|  |   StaticJsonDocument<256> doc; | ||||||
|  |  | ||||||
|  |   SECTION("Compare with unbound") { | ||||||
|  |     JsonArray array = doc.to<JsonArray>(); | ||||||
|  |     array.add(1); | ||||||
|  |     array.add("hello"); | ||||||
|  |     JsonArray unbound; | ||||||
|  |  | ||||||
|  |     CHECK(array != unbound); | ||||||
|  |     CHECK_FALSE(array == unbound); | ||||||
|  |     CHECK_FALSE(array <= unbound); | ||||||
|  |     CHECK_FALSE(array >= unbound); | ||||||
|  |     CHECK_FALSE(array > unbound); | ||||||
|  |     CHECK_FALSE(array < unbound); | ||||||
|  |  | ||||||
|  |     CHECK(unbound != array); | ||||||
|  |     CHECK_FALSE(unbound == array); | ||||||
|  |     CHECK_FALSE(unbound <= array); | ||||||
|  |     CHECK_FALSE(unbound >= array); | ||||||
|  |     CHECK_FALSE(unbound > array); | ||||||
|  |     CHECK_FALSE(unbound < array); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   SECTION("Compare with self") { | ||||||
|  |     JsonArray array = doc.to<JsonArray>(); | ||||||
|  |     array.add(1); | ||||||
|  |     array.add("hello"); | ||||||
|  |  | ||||||
|  |     CHECK(array == array); | ||||||
|  |     CHECK(array <= array); | ||||||
|  |     CHECK(array >= array); | ||||||
|  |     CHECK_FALSE(array != array); | ||||||
|  |     CHECK_FALSE(array > array); | ||||||
|  |     CHECK_FALSE(array < array); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   SECTION("Compare with identical array") { | ||||||
|  |     JsonArray array1 = doc.createNestedArray(); | ||||||
|  |     array1.add(1); | ||||||
|  |     array1.add("hello"); | ||||||
|  |     array1.createNestedObject(); | ||||||
|  |  | ||||||
|  |     JsonArray array2 = doc.createNestedArray(); | ||||||
|  |     array2.add(1); | ||||||
|  |     array2.add("hello"); | ||||||
|  |     array2.createNestedObject(); | ||||||
|  |  | ||||||
|  |     CHECK(array1 == array2); | ||||||
|  |     CHECK(array1 <= array2); | ||||||
|  |     CHECK(array1 >= array2); | ||||||
|  |     CHECK_FALSE(array1 != array2); | ||||||
|  |     CHECK_FALSE(array1 > array2); | ||||||
|  |     CHECK_FALSE(array1 < array2); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   SECTION("Compare with different array") { | ||||||
|  |     JsonArray array1 = doc.createNestedArray(); | ||||||
|  |     array1.add(1); | ||||||
|  |     array1.add("hello1"); | ||||||
|  |     array1.createNestedObject(); | ||||||
|  |  | ||||||
|  |     JsonArray array2 = doc.createNestedArray(); | ||||||
|  |     array2.add(1); | ||||||
|  |     array2.add("hello2"); | ||||||
|  |     array2.createNestedObject(); | ||||||
|  |  | ||||||
|  |     CHECK(array1 != array2); | ||||||
|  |     CHECK_FALSE(array1 == array2); | ||||||
|  |     CHECK_FALSE(array1 > array2); | ||||||
|  |     CHECK_FALSE(array1 < array2); | ||||||
|  |     CHECK_FALSE(array1 <= array2); | ||||||
|  |     CHECK_FALSE(array1 >= array2); | ||||||
|  |   } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | TEST_CASE("Compare JsonArray with JsonVariant") { | ||||||
|  |   StaticJsonDocument<256> doc; | ||||||
|  |  | ||||||
|  |   SECTION("Compare with self") { | ||||||
|  |     JsonArray array = doc.to<JsonArray>(); | ||||||
|  |     array.add(1); | ||||||
|  |     array.add("hello"); | ||||||
|  |  | ||||||
|  |     JsonVariant variant = array; | ||||||
|  |  | ||||||
|  |     CHECK(array == variant); | ||||||
|  |     CHECK(array <= variant); | ||||||
|  |     CHECK(array >= variant); | ||||||
|  |     CHECK_FALSE(array != variant); | ||||||
|  |     CHECK_FALSE(array > variant); | ||||||
|  |     CHECK_FALSE(array < variant); | ||||||
|  |  | ||||||
|  |     CHECK(variant == array); | ||||||
|  |     CHECK(variant <= array); | ||||||
|  |     CHECK(variant >= array); | ||||||
|  |     CHECK_FALSE(variant != array); | ||||||
|  |     CHECK_FALSE(variant > array); | ||||||
|  |     CHECK_FALSE(variant < array); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   SECTION("Compare with identical array") { | ||||||
|  |     JsonArray array = doc.createNestedArray(); | ||||||
|  |     array.add(1); | ||||||
|  |     array.add("hello"); | ||||||
|  |     array.createNestedObject(); | ||||||
|  |  | ||||||
|  |     JsonVariant variant = doc.createNestedArray(); | ||||||
|  |     variant.add(1); | ||||||
|  |     variant.add("hello"); | ||||||
|  |     variant.createNestedObject(); | ||||||
|  |  | ||||||
|  |     CHECK(array == variant); | ||||||
|  |     CHECK(array <= variant); | ||||||
|  |     CHECK(array >= variant); | ||||||
|  |     CHECK_FALSE(array != variant); | ||||||
|  |     CHECK_FALSE(array > variant); | ||||||
|  |     CHECK_FALSE(array < variant); | ||||||
|  |  | ||||||
|  |     CHECK(variant == array); | ||||||
|  |     CHECK(variant <= array); | ||||||
|  |     CHECK(variant >= array); | ||||||
|  |     CHECK_FALSE(variant != array); | ||||||
|  |     CHECK_FALSE(variant > array); | ||||||
|  |     CHECK_FALSE(variant < array); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   SECTION("Compare with different array") { | ||||||
|  |     JsonArray array = doc.createNestedArray(); | ||||||
|  |     array.add(1); | ||||||
|  |     array.add("hello1"); | ||||||
|  |     array.createNestedObject(); | ||||||
|  |  | ||||||
|  |     JsonVariant variant = doc.createNestedArray(); | ||||||
|  |     variant.add(1); | ||||||
|  |     variant.add("hello2"); | ||||||
|  |     variant.createNestedObject(); | ||||||
|  |  | ||||||
|  |     CHECK(array != variant); | ||||||
|  |     CHECK_FALSE(array == variant); | ||||||
|  |     CHECK_FALSE(array > variant); | ||||||
|  |     CHECK_FALSE(array < variant); | ||||||
|  |     CHECK_FALSE(array <= variant); | ||||||
|  |     CHECK_FALSE(array >= variant); | ||||||
|  |   } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | TEST_CASE("Compare JsonArray with JsonVariantConst") { | ||||||
|  |   StaticJsonDocument<256> doc; | ||||||
|  |  | ||||||
|  |   SECTION("Compare with unbound") { | ||||||
|  |     JsonArray array = doc.to<JsonArray>(); | ||||||
|  |     array.add(1); | ||||||
|  |     array.add("hello"); | ||||||
|  |     JsonVariantConst unbound; | ||||||
|  |  | ||||||
|  |     CHECK(array != unbound); | ||||||
|  |     CHECK_FALSE(array == unbound); | ||||||
|  |     CHECK_FALSE(array <= unbound); | ||||||
|  |     CHECK_FALSE(array >= unbound); | ||||||
|  |     CHECK_FALSE(array > unbound); | ||||||
|  |     CHECK_FALSE(array < unbound); | ||||||
|  |  | ||||||
|  |     CHECK(unbound != array); | ||||||
|  |     CHECK_FALSE(unbound == array); | ||||||
|  |     CHECK_FALSE(unbound <= array); | ||||||
|  |     CHECK_FALSE(unbound >= array); | ||||||
|  |     CHECK_FALSE(unbound > array); | ||||||
|  |     CHECK_FALSE(unbound < array); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   SECTION("Compare with self") { | ||||||
|  |     JsonArray array = doc.to<JsonArray>(); | ||||||
|  |     array.add(1); | ||||||
|  |     array.add("hello"); | ||||||
|  |  | ||||||
|  |     JsonVariantConst variant = array; | ||||||
|  |  | ||||||
|  |     CHECK(array == variant); | ||||||
|  |     CHECK(array <= variant); | ||||||
|  |     CHECK(array >= variant); | ||||||
|  |     CHECK_FALSE(array != variant); | ||||||
|  |     CHECK_FALSE(array > variant); | ||||||
|  |     CHECK_FALSE(array < variant); | ||||||
|  |  | ||||||
|  |     CHECK(variant == array); | ||||||
|  |     CHECK(variant <= array); | ||||||
|  |     CHECK(variant >= array); | ||||||
|  |     CHECK_FALSE(variant != array); | ||||||
|  |     CHECK_FALSE(variant > array); | ||||||
|  |     CHECK_FALSE(variant < array); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   SECTION("Compare with identical array") { | ||||||
|  |     JsonArray array = doc.createNestedArray(); | ||||||
|  |     array.add(1); | ||||||
|  |     array.add("hello"); | ||||||
|  |     array.createNestedObject(); | ||||||
|  |  | ||||||
|  |     JsonArray array2 = doc.createNestedArray(); | ||||||
|  |     array2.add(1); | ||||||
|  |     array2.add("hello"); | ||||||
|  |     array2.createNestedObject(); | ||||||
|  |     JsonVariantConst variant = array2; | ||||||
|  |  | ||||||
|  |     CHECK(array == variant); | ||||||
|  |     CHECK(array <= variant); | ||||||
|  |     CHECK(array >= variant); | ||||||
|  |     CHECK_FALSE(array != variant); | ||||||
|  |     CHECK_FALSE(array > variant); | ||||||
|  |     CHECK_FALSE(array < variant); | ||||||
|  |  | ||||||
|  |     CHECK(variant == array); | ||||||
|  |     CHECK(variant <= array); | ||||||
|  |     CHECK(variant >= array); | ||||||
|  |     CHECK_FALSE(variant != array); | ||||||
|  |     CHECK_FALSE(variant > array); | ||||||
|  |     CHECK_FALSE(variant < array); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   SECTION("Compare with different array") { | ||||||
|  |     JsonArray array = doc.createNestedArray(); | ||||||
|  |     array.add(1); | ||||||
|  |     array.add("hello1"); | ||||||
|  |     array.createNestedObject(); | ||||||
|  |  | ||||||
|  |     JsonArray array2 = doc.createNestedArray(); | ||||||
|  |     array2.add(1); | ||||||
|  |     array2.add("hello2"); | ||||||
|  |     array2.createNestedObject(); | ||||||
|  |     JsonVariantConst variant = array2; | ||||||
|  |  | ||||||
|  |     CHECK(array != variant); | ||||||
|  |     CHECK_FALSE(array == variant); | ||||||
|  |     CHECK_FALSE(array > variant); | ||||||
|  |     CHECK_FALSE(array < variant); | ||||||
|  |     CHECK_FALSE(array <= variant); | ||||||
|  |     CHECK_FALSE(array >= variant); | ||||||
|  |   } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | TEST_CASE("Compare JsonArray with JsonArrayConst") { | ||||||
|  |   StaticJsonDocument<256> doc; | ||||||
|  |  | ||||||
|  |   SECTION("Compare with unbound") { | ||||||
|  |     JsonArray array = doc.to<JsonArray>(); | ||||||
|  |     array.add(1); | ||||||
|  |     array.add("hello"); | ||||||
|  |     JsonArrayConst unbound; | ||||||
|  |  | ||||||
|  |     CHECK(array != unbound); | ||||||
|  |     CHECK_FALSE(array == unbound); | ||||||
|  |     CHECK_FALSE(array <= unbound); | ||||||
|  |     CHECK_FALSE(array >= unbound); | ||||||
|  |     CHECK_FALSE(array > unbound); | ||||||
|  |     CHECK_FALSE(array < unbound); | ||||||
|  |  | ||||||
|  |     CHECK(unbound != array); | ||||||
|  |     CHECK_FALSE(unbound == array); | ||||||
|  |     CHECK_FALSE(unbound <= array); | ||||||
|  |     CHECK_FALSE(unbound >= array); | ||||||
|  |     CHECK_FALSE(unbound > array); | ||||||
|  |     CHECK_FALSE(unbound < array); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   SECTION("Compare with self") { | ||||||
|  |     JsonArray array = doc.to<JsonArray>(); | ||||||
|  |     array.add(1); | ||||||
|  |     array.add("hello"); | ||||||
|  |     JsonArrayConst carray = array; | ||||||
|  |  | ||||||
|  |     CHECK(array == carray); | ||||||
|  |     CHECK(array <= carray); | ||||||
|  |     CHECK(array >= carray); | ||||||
|  |     CHECK_FALSE(array != carray); | ||||||
|  |     CHECK_FALSE(array > carray); | ||||||
|  |     CHECK_FALSE(array < carray); | ||||||
|  |  | ||||||
|  |     CHECK(carray == array); | ||||||
|  |     CHECK(carray <= array); | ||||||
|  |     CHECK(carray >= array); | ||||||
|  |     CHECK_FALSE(carray != array); | ||||||
|  |     CHECK_FALSE(carray > array); | ||||||
|  |     CHECK_FALSE(carray < array); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   SECTION("Compare with identical array") { | ||||||
|  |     JsonArray array1 = doc.createNestedArray(); | ||||||
|  |     array1.add(1); | ||||||
|  |     array1.add("hello"); | ||||||
|  |     array1.createNestedObject(); | ||||||
|  |  | ||||||
|  |     JsonArray array2 = doc.createNestedArray(); | ||||||
|  |     array2.add(1); | ||||||
|  |     array2.add("hello"); | ||||||
|  |     array2.createNestedObject(); | ||||||
|  |     JsonArrayConst carray2 = array2; | ||||||
|  |  | ||||||
|  |     CHECK(array1 == carray2); | ||||||
|  |     CHECK(array1 <= carray2); | ||||||
|  |     CHECK(array1 >= carray2); | ||||||
|  |     CHECK_FALSE(array1 != carray2); | ||||||
|  |     CHECK_FALSE(array1 > carray2); | ||||||
|  |     CHECK_FALSE(array1 < carray2); | ||||||
|  |  | ||||||
|  |     CHECK(carray2 == array1); | ||||||
|  |     CHECK(carray2 <= array1); | ||||||
|  |     CHECK(carray2 >= array1); | ||||||
|  |     CHECK_FALSE(carray2 != array1); | ||||||
|  |     CHECK_FALSE(carray2 > array1); | ||||||
|  |     CHECK_FALSE(carray2 < array1); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   SECTION("Compare with different array") { | ||||||
|  |     JsonArray array1 = doc.createNestedArray(); | ||||||
|  |     array1.add(1); | ||||||
|  |     array1.add("hello1"); | ||||||
|  |     array1.createNestedObject(); | ||||||
|  |  | ||||||
|  |     JsonArray array2 = doc.createNestedArray(); | ||||||
|  |     array2.add(1); | ||||||
|  |     array2.add("hello2"); | ||||||
|  |     array2.createNestedObject(); | ||||||
|  |     JsonArrayConst carray2 = array2; | ||||||
|  |  | ||||||
|  |     CHECK(array1 != carray2); | ||||||
|  |     CHECK_FALSE(array1 == carray2); | ||||||
|  |     CHECK_FALSE(array1 > carray2); | ||||||
|  |     CHECK_FALSE(array1 < carray2); | ||||||
|  |     CHECK_FALSE(array1 <= carray2); | ||||||
|  |     CHECK_FALSE(array1 >= carray2); | ||||||
|  |  | ||||||
|  |     CHECK(carray2 != array1); | ||||||
|  |     CHECK_FALSE(carray2 == array1); | ||||||
|  |     CHECK_FALSE(carray2 > array1); | ||||||
|  |     CHECK_FALSE(carray2 < array1); | ||||||
|  |     CHECK_FALSE(carray2 <= array1); | ||||||
|  |     CHECK_FALSE(carray2 >= array1); | ||||||
|  |   } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | TEST_CASE("Compare JsonArrayConst with JsonArrayConst") { | ||||||
|  |   StaticJsonDocument<256> doc; | ||||||
|  |  | ||||||
|  |   SECTION("Compare with unbound") { | ||||||
|  |     JsonArray array = doc.to<JsonArray>(); | ||||||
|  |     array.add(1); | ||||||
|  |     array.add("hello"); | ||||||
|  |  | ||||||
|  |     JsonArrayConst carray = array; | ||||||
|  |     JsonArrayConst unbound; | ||||||
|  |  | ||||||
|  |     CHECK(carray != unbound); | ||||||
|  |     CHECK_FALSE(carray == unbound); | ||||||
|  |     CHECK_FALSE(carray <= unbound); | ||||||
|  |     CHECK_FALSE(carray >= unbound); | ||||||
|  |     CHECK_FALSE(carray > unbound); | ||||||
|  |     CHECK_FALSE(carray < unbound); | ||||||
|  |  | ||||||
|  |     CHECK(unbound != carray); | ||||||
|  |     CHECK_FALSE(unbound == carray); | ||||||
|  |     CHECK_FALSE(unbound <= carray); | ||||||
|  |     CHECK_FALSE(unbound >= carray); | ||||||
|  |     CHECK_FALSE(unbound > carray); | ||||||
|  |     CHECK_FALSE(unbound < carray); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   SECTION("Compare with self") { | ||||||
|  |     JsonArray array = doc.to<JsonArray>(); | ||||||
|  |     array.add(1); | ||||||
|  |     array.add("hello"); | ||||||
|  |     JsonArrayConst carray = array; | ||||||
|  |  | ||||||
|  |     CHECK(carray == carray); | ||||||
|  |     CHECK(carray <= carray); | ||||||
|  |     CHECK(carray >= carray); | ||||||
|  |     CHECK_FALSE(carray != carray); | ||||||
|  |     CHECK_FALSE(carray > carray); | ||||||
|  |     CHECK_FALSE(carray < carray); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   SECTION("Compare with identical array") { | ||||||
|  |     JsonArray array1 = doc.createNestedArray(); | ||||||
|  |     array1.add(1); | ||||||
|  |     array1.add("hello"); | ||||||
|  |     array1.createNestedObject(); | ||||||
|  |     JsonArrayConst carray1 = array1; | ||||||
|  |  | ||||||
|  |     JsonArray array2 = doc.createNestedArray(); | ||||||
|  |     array2.add(1); | ||||||
|  |     array2.add("hello"); | ||||||
|  |     array2.createNestedObject(); | ||||||
|  |     JsonArrayConst carray2 = array2; | ||||||
|  |  | ||||||
|  |     CHECK(carray1 == carray2); | ||||||
|  |     CHECK(carray1 <= carray2); | ||||||
|  |     CHECK(carray1 >= carray2); | ||||||
|  |     CHECK_FALSE(carray1 != carray2); | ||||||
|  |     CHECK_FALSE(carray1 > carray2); | ||||||
|  |     CHECK_FALSE(carray1 < carray2); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   SECTION("Compare with different array") { | ||||||
|  |     JsonArray array1 = doc.createNestedArray(); | ||||||
|  |     array1.add(1); | ||||||
|  |     array1.add("hello1"); | ||||||
|  |     array1.createNestedObject(); | ||||||
|  |     JsonArrayConst carray1 = array1; | ||||||
|  |  | ||||||
|  |     JsonArray array2 = doc.createNestedArray(); | ||||||
|  |     array2.add(1); | ||||||
|  |     array2.add("hello2"); | ||||||
|  |     array2.createNestedObject(); | ||||||
|  |     JsonArrayConst carray2 = array2; | ||||||
|  |  | ||||||
|  |     CHECK(carray1 != carray2); | ||||||
|  |     CHECK_FALSE(carray1 == carray2); | ||||||
|  |     CHECK_FALSE(carray1 > carray2); | ||||||
|  |     CHECK_FALSE(carray1 < carray2); | ||||||
|  |     CHECK_FALSE(carray1 <= carray2); | ||||||
|  |     CHECK_FALSE(carray1 >= carray2); | ||||||
|  |   } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | TEST_CASE("Compare JsonArrayConst with JsonVariant") { | ||||||
|  |   StaticJsonDocument<256> doc; | ||||||
|  |  | ||||||
|  |   SECTION("Compare with self") { | ||||||
|  |     JsonArray array = doc.to<JsonArray>(); | ||||||
|  |     array.add(1); | ||||||
|  |     array.add("hello"); | ||||||
|  |     JsonArrayConst carray = array; | ||||||
|  |     JsonVariant variant = array; | ||||||
|  |  | ||||||
|  |     CHECK(carray == variant); | ||||||
|  |     CHECK(carray <= variant); | ||||||
|  |     CHECK(carray >= variant); | ||||||
|  |     CHECK_FALSE(carray != variant); | ||||||
|  |     CHECK_FALSE(carray > variant); | ||||||
|  |     CHECK_FALSE(carray < variant); | ||||||
|  |  | ||||||
|  |     CHECK(variant == carray); | ||||||
|  |     CHECK(variant <= carray); | ||||||
|  |     CHECK(variant >= carray); | ||||||
|  |     CHECK_FALSE(variant != carray); | ||||||
|  |     CHECK_FALSE(variant > carray); | ||||||
|  |     CHECK_FALSE(variant < carray); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   SECTION("Compare with identical array") { | ||||||
|  |     JsonArray array1 = doc.createNestedArray(); | ||||||
|  |     array1.add(1); | ||||||
|  |     array1.add("hello"); | ||||||
|  |     array1.createNestedObject(); | ||||||
|  |     JsonArrayConst carray1 = array1; | ||||||
|  |  | ||||||
|  |     JsonArray array2 = doc.createNestedArray(); | ||||||
|  |     array2.add(1); | ||||||
|  |     array2.add("hello"); | ||||||
|  |     array2.createNestedObject(); | ||||||
|  |     JsonVariant variant2 = array2; | ||||||
|  |  | ||||||
|  |     CHECK(carray1 == variant2); | ||||||
|  |     CHECK(carray1 <= variant2); | ||||||
|  |     CHECK(carray1 >= variant2); | ||||||
|  |     CHECK_FALSE(carray1 != variant2); | ||||||
|  |     CHECK_FALSE(carray1 > variant2); | ||||||
|  |     CHECK_FALSE(carray1 < variant2); | ||||||
|  |  | ||||||
|  |     CHECK(variant2 == carray1); | ||||||
|  |     CHECK(variant2 <= carray1); | ||||||
|  |     CHECK(variant2 >= carray1); | ||||||
|  |     CHECK_FALSE(variant2 != carray1); | ||||||
|  |     CHECK_FALSE(variant2 > carray1); | ||||||
|  |     CHECK_FALSE(variant2 < carray1); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   SECTION("Compare with different array") { | ||||||
|  |     JsonArray array1 = doc.createNestedArray(); | ||||||
|  |     array1.add(1); | ||||||
|  |     array1.add("hello1"); | ||||||
|  |     array1.createNestedObject(); | ||||||
|  |     JsonArrayConst carray1 = array1; | ||||||
|  |  | ||||||
|  |     JsonArray array2 = doc.createNestedArray(); | ||||||
|  |     array2.add(1); | ||||||
|  |     array2.add("hello2"); | ||||||
|  |     array2.createNestedObject(); | ||||||
|  |     JsonVariant variant2 = array2; | ||||||
|  |  | ||||||
|  |     CHECK(carray1 != variant2); | ||||||
|  |     CHECK_FALSE(carray1 == variant2); | ||||||
|  |     CHECK_FALSE(carray1 > variant2); | ||||||
|  |     CHECK_FALSE(carray1 < variant2); | ||||||
|  |     CHECK_FALSE(carray1 <= variant2); | ||||||
|  |     CHECK_FALSE(carray1 >= variant2); | ||||||
|  |  | ||||||
|  |     CHECK(variant2 != carray1); | ||||||
|  |     CHECK_FALSE(variant2 == carray1); | ||||||
|  |     CHECK_FALSE(variant2 > carray1); | ||||||
|  |     CHECK_FALSE(variant2 < carray1); | ||||||
|  |     CHECK_FALSE(variant2 <= carray1); | ||||||
|  |     CHECK_FALSE(variant2 >= carray1); | ||||||
|  |   } | ||||||
|  | } | ||||||
| @@ -62,6 +62,7 @@ class ArrayRefBase { | |||||||
| }; | }; | ||||||
|  |  | ||||||
| class ArrayConstRef : public ArrayRefBase<const CollectionData>, | class ArrayConstRef : public ArrayRefBase<const CollectionData>, | ||||||
|  |                       public VariantOperators<ArrayConstRef>, | ||||||
|                       public Visitable { |                       public Visitable { | ||||||
|   friend class ArrayRef; |   friend class ArrayRef; | ||||||
|   typedef ArrayRefBase<const CollectionData> base_type; |   typedef ArrayRefBase<const CollectionData> base_type; | ||||||
| @@ -116,6 +117,7 @@ class ArrayConstRef : public ArrayRefBase<const CollectionData>, | |||||||
|  |  | ||||||
| class ArrayRef : public ArrayRefBase<CollectionData>, | class ArrayRef : public ArrayRefBase<CollectionData>, | ||||||
|                  public ArrayShortcuts<ArrayRef>, |                  public ArrayShortcuts<ArrayRef>, | ||||||
|  |                  public VariantOperators<ArrayRef>, | ||||||
|                  public Visitable { |                  public Visitable { | ||||||
|   typedef ArrayRefBase<CollectionData> base_type; |   typedef ArrayRefBase<CollectionData> base_type; | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user