Home | History | Annotate | Download | only in test_lib_json

Lines Matching refs:Json

7 #include <json/config.h>
8 #include <json/json.h>
13 #define kint32max Json::Value::maxInt
14 #define kint32min Json::Value::minInt
15 #define kuint32max Json::Value::maxUInt
16 #define kint64max Json::Value::maxInt64
17 #define kint64min Json::Value::minInt64
18 #define kuint64max Json::Value::maxUInt64
27 // Json Library test cases
32 static inline double uint64ToDouble(Json::UInt64 value) {
36 static inline double uint64ToDouble(Json::UInt64 value) {
37 return static_cast<double>(Json::Int64(value / 2)) * 2.0 +
38 Json::Int64(value & 1);
43 Json::Value null_;
44 Json::Value emptyArray_;
45 Json::Value emptyObject_;
46 Json::Value integer_;
47 Json::Value unsignedInteger_;
48 Json::Value smallUnsignedInteger_;
49 Json::Value real_;
50 Json::Value float_;
51 Json::Value array1_;
52 Json::Value object1_;
53 Json::Value emptyString_;
54 Json::Value string1_;
55 Json::Value string_;
56 Json::Value true_;
57 Json::Value false_;
60 : emptyArray_(Json::arrayValue), emptyObject_(Json::objectValue),
62 smallUnsignedInteger_(Json::Value::UInt(Json::Value::maxInt)),
88 void checkConstMemberCount(const Json::Value& value,
91 void checkMemberCount(Json::Value& value, unsigned int expectedCount);
93 void checkIs(const Json::Value& value, const IsCheck& check);
95 void checkIsLess(const Json::Value& x, const Json::Value& y);
97 void checkIsEqual(const Json::Value& x, const Json::Value& y);
170 JSONTEST_ASSERT_EQUAL(Json::objectValue, emptyObject_.type());
173 JSONTEST_ASSERT(emptyObject_.isConvertibleTo(Json::nullValue));
176 JSONTEST_ASSERT(!object1_.isConvertibleTo(Json::nullValue));
179 JSONTEST_ASSERT(emptyObject_.isConvertibleTo(Json::objectValue));
182 JSONTEST_ASSERT(!emptyObject_.isConvertibleTo(Json::arrayValue));
183 JSONTEST_ASSERT(!emptyObject_.isConvertibleTo(Json::intValue));
184 JSONTEST_ASSERT(!emptyObject_.isConvertibleTo(Json::uintValue));
185 JSONTEST_ASSERT(!emptyObject_.isConvertibleTo(Json::realValue));
186 JSONTEST_ASSERT(!emptyObject_.isConvertibleTo(Json::booleanValue));
187 JSONTEST_ASSERT(!emptyObject_.isConvertibleTo(Json::stringValue));
190 const Json::Value& constObject = object1_;
192 JSONTEST_ASSERT_EQUAL(Json::Value(1234), constObject["id"]);
193 JSONTEST_ASSERT_EQUAL(Json::Value(), constObject["unknown id"]);
196 JSONTEST_ASSERT_EQUAL(Json::Value(1234), object1_["id"]);
197 JSONTEST_ASSERT_EQUAL(Json::Value(), object1_["unknown id"]);
200 JSONTEST_ASSERT_EQUAL(Json::Value("foo"), object1_["some other id"]);
212 JSONTEST_ASSERT_EQUAL(Json::arrayValue, array1_.type());
215 JSONTEST_ASSERT(emptyArray_.isConvertibleTo(Json::nullValue));
218 JSONTEST_ASSERT(!array1_.isConvertibleTo(Json::nullValue));
221 JSONTEST_ASSERT(emptyArray_.isConvertibleTo(Json::arrayValue));
224 JSONTEST_ASSERT(!emptyArray_.isConvertibleTo(Json::objectValue));
225 JSONTEST_ASSERT(!emptyArray_.isConvertibleTo(Json::intValue));
226 JSONTEST_ASSERT(!emptyArray_.isConvertibleTo(Json::uintValue));
227 JSONTEST_ASSERT(!emptyArray_.isConvertibleTo(Json::realValue));
228 JSONTEST_ASSERT(!emptyArray_.isConvertibleTo(Json::booleanValue));
229 JSONTEST_ASSERT(!emptyArray_.isConvertibleTo(Json::stringValue));
232 const Json::Value& constArray = array1_;
233 JSONTEST_ASSERT_EQUAL(Json::Value(1234), constArray[index0]);
234 JSONTEST_ASSERT_EQUAL(Json::Value(1234), constArray[0]);
237 JSONTEST_ASSERT_EQUAL(Json::Value(1234), array1_[index0]);
238 JSONTEST_ASSERT_EQUAL(Json::Value(1234), array1_[0]);
240 array1_[2] = Json::Value(17);
241 JSONTEST_ASSERT_EQUAL(Json::Value(), array1_[1]);
242 JSONTEST_ASSERT_EQUAL(Json::Value(17), array1_[2]);
246 JSONTEST_ASSERT_EQUAL(Json::nullValue, null_.type());
252 JSONTEST_ASSERT(null_.isConvertibleTo(Json::nullValue));
253 JSONTEST_ASSERT(null_.isConvertibleTo(Json::intValue));
254 JSONTEST_ASSERT(null_.isConvertibleTo(Json::uintValue));
255 JSONTEST_ASSERT(null_.isConvertibleTo(Json::realValue));
256 JSONTEST_ASSERT(null_.isConvertibleTo(Json::booleanValue));
257 JSONTEST_ASSERT(null_.isConvertibleTo(Json::stringValue));
258 JSONTEST_ASSERT(null_.isConvertibleTo(Json::arrayValue));
259 JSONTEST_ASSERT(null_.isConvertibleTo(Json::objectValue));
261 JSONTEST_ASSERT_EQUAL(Json::Int(0), null_.asInt());
262 JSONTEST_ASSERT_EQUAL(Json::LargestInt(0), null_.asLargestInt());
263 JSONTEST_ASSERT_EQUAL(Json::UInt(0), null_.asUInt());
264 JSONTEST_ASSERT_EQUAL(Json::LargestUInt(0), null_.asLargestUInt());
271 JSONTEST_ASSERT_EQUAL(Json::stringValue, string1_.type());
280 JSONTEST_ASSERT(emptyString_.isConvertibleTo(Json::nullValue));
283 JSONTEST_ASSERT(!string1_.isConvertibleTo(Json::nullValue));
286 JSONTEST_ASSERT(string1_.isConvertibleTo(Json::stringValue));
289 JSONTEST_ASSERT(!string1_.isConvertibleTo(Json::objectValue));
290 JSONTEST_ASSERT(!string1_.isConvertibleTo(Json::arrayValue));
291 JSONTEST_ASSERT(!string1_.isConvertibleTo(Json::intValue));
292 JSONTEST_ASSERT(!string1_.isConvertibleTo(Json::uintValue));
293 JSONTEST_ASSERT(!string1_.isConvertibleTo(Json::realValue));
300 JSONTEST_ASSERT_EQUAL(Json::booleanValue, false_.type());
308 JSONTEST_ASSERT(false_.isConvertibleTo(Json::nullValue));
311 JSONTEST_ASSERT(!true_.isConvertibleTo(Json::nullValue));
314 JSONTEST_ASSERT(true_.isConvertibleTo(Json::intValue));
315 JSONTEST_ASSERT(true_.isConvertibleTo(Json::uintValue));
316 JSONTEST_ASSERT(true_.isConvertibleTo(Json::realValue));
317 JSONTEST_ASSERT(true_.isConvertibleTo(Json::booleanValue));
318 JSONTEST_ASSERT(true_.isConvertibleTo(Json::stringValue));
321 JSONTEST_ASSERT(!true_.isConvertibleTo(Json::arrayValue));
322 JSONTEST_ASSERT(!true_.isConvertibleTo(Json::objectValue));
343 Json::Value val;
346 JSONTEST_ASSERT(Json::Value(17).isConvertibleTo(Json::realValue));
347 JSONTEST_ASSERT(Json::Value(17).isConvertibleTo(Json::stringValue));
348 JSONTEST_ASSERT(Json::Value(17).isConvertibleTo(Json::booleanValue));
349 JSONTEST_ASSERT(!Json::Value(17).isConvertibleTo(Json::arrayValue));
350 JSONTEST_ASSERT(!Json::Value(17).isConvertibleTo(Json::objectValue));
352 JSONTEST_ASSERT(Json::Value(17U).isConvertibleTo(Json::realValue));
353 JSONTEST_ASSERT(Json::Value(17U).isConvertibleTo(Json::stringValue));
354 JSONTEST_ASSERT(Json::Value(17U).isConvertibleTo(Json::booleanValue));
355 JSONTEST_ASSERT(!Json::Value(17U).isConvertibleTo(Json::arrayValue));
356 JSONTEST_ASSERT(!Json::Value(17U).isConvertibleTo(Json::objectValue));
358 JSONTEST_ASSERT(Json::Value(17.0).isConvertibleTo(Json::realValue));
359 JSONTEST_ASSERT(Json::Value(17.0).isConvertibleTo(Json::stringValue));
360 JSONTEST_ASSERT(Json::Value(17.0).isConvertibleTo(Json::booleanValue));
361 JSONTEST_ASSERT(!Json::Value(17.0).isConvertibleTo(Json::arrayValue));
362 JSONTEST_ASSERT(!Json::Value(17.0).isConvertibleTo(Json::objectValue));
365 val = Json::Value(Json::intValue);
367 JSONTEST_ASSERT_EQUAL(Json::intValue, val.type());
379 JSONTEST_ASSERT(val.isConvertibleTo(Json::nullValue));
380 JSONTEST_ASSERT(val.isConvertibleTo(Json::intValue));
381 JSONTEST_ASSERT(val.isConvertibleTo(Json::uintValue));
393 val = Json::Value(Json::uintValue);
395 JSONTEST_ASSERT_EQUAL(Json::uintValue, val.type());
407 JSONTEST_ASSERT(val.isConvertibleTo(Json::nullValue));
408 JSONTEST_ASSERT(val.isConvertibleTo(Json::intValue));
409 JSONTEST_ASSERT(val.isConvertibleTo(Json::uintValue));
421 val = Json::Value(Json::realValue);
423 JSONTEST_ASSERT_EQUAL(Json::realValue, val.type());
425 JSONTEST_ASSERT(val.isConvertibleTo(Json::nullValue));
426 JSONTEST_ASSERT(val.isConvertibleTo(Json::intValue));
427 JSONTEST_ASSERT(val.isConvertibleTo(Json::uintValue));
449 val = Json::Value(0);
451 JSONTEST_ASSERT_EQUAL(Json::intValue, val.type());
463 JSONTEST_ASSERT(val.isConvertibleTo(Json::nullValue));
464 JSONTEST_ASSERT(val.isConvertibleTo(Json::intValue));
465 JSONTEST_ASSERT(val.isConvertibleTo(Json::uintValue));
477 val = Json::Value(0u);
479 JSONTEST_ASSERT_EQUAL(Json::uintValue, val.type());
491 JSONTEST_ASSERT(val.isConvertibleTo(Json::nullValue));
492 JSONTEST_ASSERT(val.isConvertibleTo(Json::intValue));
493 JSONTEST_ASSERT(val.isConvertibleTo(Json::uintValue));
505 val = Json::Value(0.0);
507 JSONTEST_ASSERT_EQUAL(Json::realValue, val.type());
519 JSONTEST_ASSERT(val.isConvertibleTo(Json::nullValue));
520 JSONTEST_ASSERT(val.isConvertibleTo(Json::intValue));
521 JSONTEST_ASSERT(val.isConvertibleTo(Json::uintValue));
533 val = Json::Value(1 << 20);
535 JSONTEST_ASSERT_EQUAL(Json::intValue, val.type());
546 JSONTEST_ASSERT(!val.isConvertibleTo(Json::nullValue));
547 JSONTEST_ASSERT(val.isConvertibleTo(Json::intValue));
548 JSONTEST_ASSERT(val.isConvertibleTo(Json::uintValue));
560 val = Json::Value(Json::UInt(1 << 20));
562 JSONTEST_ASSERT_EQUAL(Json::uintValue, val.type());
574 JSONTEST_ASSERT(!val.isConvertibleTo(Json::nullValue));
575 JSONTEST_ASSERT(val.isConvertibleTo(Json::intValue));
576 JSONTEST_ASSERT(val.isConvertibleTo(Json::uintValue));
588 val = Json::Value((1 << 20) / 1.0);
590 JSONTEST_ASSERT_EQUAL(Json::realValue, val.type());
602 JSONTEST_ASSERT(!val.isConvertibleTo(Json::nullValue));
603 JSONTEST_ASSERT(val.isConvertibleTo(Json::intValue));
604 JSONTEST_ASSERT(val.isConvertibleTo(Json::uintValue));
617 val = Json::Value(-(1 << 20));
619 JSONTEST_ASSERT_EQUAL(Json::intValue, val.type());
629 JSONTEST_ASSERT(!val.isConvertibleTo(Json::nullValue));
630 JSONTEST_ASSERT(val.isConvertibleTo(Json::intValue));
631 JSONTEST_ASSERT(!val.isConvertibleTo(Json::uintValue));
641 val = Json::Value(kint32max);
643 JSONTEST_ASSERT_EQUAL(Json::intValue, val.type());
655 JSONTEST_ASSERT(!val.isConvertibleTo(Json::nullValue));
656 JSONTEST_ASSERT(val.isConvertibleTo(Json::intValue));
657 JSONTEST_ASSERT(val.isConvertibleTo(Json::uintValue));
669 val = Json::Value(kint32min);
671 JSONTEST_ASSERT_EQUAL(Json::intValue, val.type());
681 JSONTEST_ASSERT(!val.isConvertibleTo(Json::nullValue));
682 JSONTEST_ASSERT(val.isConvertibleTo(Json::intValue));
683 JSONTEST_ASSERT(!val.isConvertibleTo(Json::uintValue));
693 val = Json::Value(kuint32max);
695 JSONTEST_ASSERT_EQUAL(Json::uintValue, val.type());
706 JSONTEST_ASSERT(!val.isConvertibleTo(Json::nullValue));
707 JSONTEST_ASSERT(!val.isConvertibleTo(Json::intValue));
708 JSONTEST_ASSERT(val.isConvertibleTo(Json::uintValue));
722 val = Json::Value(double(kint64max));
724 JSONTEST_ASSERT_EQUAL(Json::realValue, val.type());
731 JSONTEST_ASSERT(!val.isConvertibleTo(Json::nullValue));
732 JSONTEST_ASSERT(!val.isConvertibleTo(Json::intValue));
733 JSONTEST_ASSERT(!val.isConvertibleTo(Json::uintValue));
741 val = Json::Value(double(kint64min));
743 JSONTEST_ASSERT_EQUAL(Json::realValue, val.type());
750 JSONTEST_ASSERT(!val.isConvertibleTo(Json::nullValue));
751 JSONTEST_ASSERT(!val.isConvertibleTo(Json::intValue));
752 JSONTEST_ASSERT(!val.isConvertibleTo(Json::uintValue));
760 val = Json::Value(double(kuint64max));
762 JSONTEST_ASSERT_EQUAL(Json::realValue, val.type());
769 JSONTEST_ASSERT(!val.isConvertibleTo(Json::nullValue));
770 JSONTEST_ASSERT(!val.isConvertibleTo(Json::intValue));
771 JSONTEST_ASSERT(!val.isConvertibleTo(Json::uintValue));
779 val = Json::Value(Json::Int64(1) << 40);
781 JSONTEST_ASSERT_EQUAL(Json::intValue, val.type());
791 JSONTEST_ASSERT(!val.isConvertibleTo(Json::nullValue));
792 JSONTEST_ASSERT(!val.isConvertibleTo(Json::intValue));
793 JSONTEST_ASSERT(!val.isConvertibleTo(Json::uintValue));
795 JSONTEST_ASSERT_EQUAL((Json::Int64(1) << 40), val.asInt64());
796 JSONTEST_ASSERT_EQUAL((Json::Int64(1) << 40), val.asLargestInt());
797 JSONTEST_ASSERT_EQUAL((Json::Int64(1) << 40), val.asUInt64());
798 JSONTEST_ASSERT_EQUAL((Json::Int64(1) << 40), val.asLargestUInt());
799 JSONTEST_ASSERT_EQUAL((Json::Int64(1) << 40), val.asDouble());
800 JSONTEST_ASSERT_EQUAL((Json::Int64(1) << 40), val.asFloat());
805 val = Json::Value(Json::UInt64(1) << 40);
807 JSONTEST_ASSERT_EQUAL(Json::uintValue, val.type());
817 JSONTEST_ASSERT(!val.isConvertibleTo(Json::nullValue));
818 JSONTEST_ASSERT(!val.isConvertibleTo(Json::intValue));
819 JSONTEST_ASSERT(!val.isConvertibleTo(Json::uintValue));
821 JSONTEST_ASSERT_EQUAL((Json::Int64(1) << 40), val.asInt64());
822 JSONTEST_ASSERT_EQUAL((Json::Int64(1) << 40), val.asLargestInt());
823 JSONTEST_ASSERT_EQUAL((Json::Int64(1) << 40), val.asUInt64());
824 JSONTEST_ASSERT_EQUAL((Json::Int64(1) << 40), val.asLargestUInt());
825 JSONTEST_ASSERT_EQUAL((Json::Int64(1) << 40), val.asDouble());
826 JSONTEST_ASSERT_EQUAL((Json::Int64(1) << 40), val.asFloat());
831 val = Json::Value((Json::Int64(1) << 40) / 1.0);
833 JSONTEST_ASSERT_EQUAL(Json::realValue, val.type());
843 JSONTEST_ASSERT(!val.isConvertibleTo(Json::nullValue));
844 JSONTEST_ASSERT(!val.isConvertibleTo(Json::intValue));
845 JSONTEST_ASSERT(!val.isConvertibleTo(Json::uintValue));
847 JSONTEST_ASSERT_EQUAL((Json::Int64(1) << 40), val.asInt64());
848 JSONTEST_ASSERT_EQUAL((Json::Int64(1) << 40), val.asLargestInt());
849 JSONTEST_ASSERT_EQUAL((Json::Int64(1) << 40), val.asUInt64());
850 JSONTEST_ASSERT_EQUAL((Json::Int64(1) << 40), val.asLargestUInt());
851 JSONTEST_ASSERT_EQUAL((Json::Int64(1) << 40), val.asDouble());
852 JSONTEST_ASSERT_EQUAL((Json::Int64(1) << 40), val.asFloat());
858 val = Json::Value(-(Json::Int64(1) << 40));
860 JSONTEST_ASSERT_EQUAL(Json::intValue, val.type());
869 JSONTEST_ASSERT(!val.isConvertibleTo(Json::nullValue));
870 JSONTEST_ASSERT(!val.isConvertibleTo(Json::intValue));
871 JSONTEST_ASSERT(!val.isConvertibleTo(Json::uintValue));
873 JSONTEST_ASSERT_EQUAL(-(Json::Int64(1) << 40), val.asInt64());
874 JSONTEST_ASSERT_EQUAL(-(Json::Int64(1) << 40), val.asLargestInt());
875 JSONTEST_ASSERT_EQUAL(-(Json::Int64(1) << 40), val.asDouble());
876 JSONTEST_ASSERT_EQUAL(-(Json::Int64(1) << 40), val.asFloat());
881 val = Json::Value(Json::Int64(kint64max));
883 JSONTEST_ASSERT_EQUAL(Json::intValue, val.type());
893 JSONTEST_ASSERT(!val.isConvertibleTo(Json::nullValue));
894 JSONTEST_ASSERT(!val.isConvertibleTo(Json::intValue));
895 JSONTEST_ASSERT(!val.isConvertibleTo(Json::uintValue));
908 val = Json::Value(double(kint64max));
910 JSONTEST_ASSERT_EQUAL(Json::realValue, val.type());
919 JSONTEST_ASSERT(!val.isConvertibleTo(Json::nullValue));
920 JSONTEST_ASSERT(!val.isConvertibleTo(Json::intValue));
921 JSONTEST_ASSERT(!val.isConvertibleTo(Json::uintValue));
923 JSONTEST_ASSERT_EQUAL(Json::UInt64(1) << 63, val.asUInt64());
924 JSONTEST_ASSERT_EQUAL(Json::UInt64(1) << 63, val.asLargestUInt());
925 JSONTEST_ASSERT_EQUAL(uint64ToDouble(Json::UInt64(1) << 63), val.asDouble());
926 JSONTEST_ASSERT_EQUAL(float(uint64ToDouble(Json::UInt64(1) << 63)),
933 val = Json::Value(Json::Int64(kint64min));
935 JSONTEST_ASSERT_EQUAL(Json::intValue, val.type());
944 JSONTEST_ASSERT(!val.isConvertibleTo(Json::nullValue));
945 JSONTEST_ASSERT(!val.isConvertibleTo(Json::intValue));
946 JSONTEST_ASSERT(!val.isConvertibleTo(Json::uintValue));
957 val = Json::Value(double(kint64min));
959 JSONTEST_ASSERT_EQUAL(Json::realValue, val.type());
968 JSONTEST_ASSERT(!val.isConvertibleTo(Json::nullValue));
969 JSONTEST_ASSERT(!val.isConvertibleTo(Json::intValue));
970 JSONTEST_ASSERT(!val.isConvertibleTo(Json::uintValue));
981 const Json::UInt64 ten_to_19 = static_cast<Json::UInt64>(1e19);
982 val = Json::Value(Json::UInt64(ten_to_19));
984 JSONTEST_ASSERT_EQUAL(Json::uintValue, val.type());
993 JSONTEST_ASSERT(!val.isConvertibleTo(Json::nullValue));
994 JSONTEST_ASSERT(!val.isConvertibleTo(Json::intValue));
995 JSONTEST_ASSERT(!val.isConvertibleTo(Json::uintValue));
1006 val = Json::Value(uint64ToDouble(ten_to_19));
1008 JSONTEST_ASSERT_EQUAL(Json::realValue, val.type());
1017 JSONTEST_ASSERT(!val.isConvertibleTo(Json::nullValue));
1018 JSONTEST_ASSERT(!val.isConvertibleTo(Json::intValue));
1019 JSONTEST_ASSERT(!val.isConvertibleTo(Json::uintValue));
1028 val = Json::Value(Json::UInt64(kuint64max));
1030 JSONTEST_ASSERT_EQUAL(Json::uintValue, val.type());
1039 JSONTEST_ASSERT(!val.isConvertibleTo(Json::nullValue));
1040 JSONTEST_ASSERT(!val.isConvertibleTo(Json::intValue));
1041 JSONTEST_ASSERT(!val.isConvertibleTo(Json::uintValue));
1052 val = Json::Value(uint64ToDouble(kuint64max));
1054 JSONTEST_ASSERT_EQUAL(Json::realValue, val.type());
1061 JSONTEST_ASSERT(!val.isConvertibleTo(Json::nullValue));
1062 JSONTEST_ASSERT(!val.isConvertibleTo(Json::intValue));
1063 JSONTEST_ASSERT(!val.isConvertibleTo(Json::uintValue));
1075 Json::Value val;
1078 val = Json::Value(1.5);
1080 JSONTEST_ASSERT_EQUAL(Json::realValue, val.type());
1087 JSONTEST_ASSERT(val.isConvertibleTo(Json::intValue));
1088 JSONTEST_ASSERT(val.isConvertibleTo(Json::uintValue));
1089 JSONTEST_ASSERT(val.isConvertibleTo(Json::realValue));
1090 JSONTEST_ASSERT(val.isConvertibleTo(Json::booleanValue));
1091 JSONTEST_ASSERT(val.isConvertibleTo(Json::stringValue));
1092 JSONTEST_ASSERT(!val.isConvertibleTo(Json::nullValue));
1093 JSONTEST_ASSERT(!val.isConvertibleTo(Json::arrayValue));
1094 JSONTEST_ASSERT(!val.isConvertibleTo(Json::objectValue));
1106 val = Json::Value(-1.5);
1108 JSONTEST_ASSERT_EQUAL(Json::realValue, val.type());
1115 JSONTEST_ASSERT(val.isConvertibleTo(Json::intValue));
1116 JSONTEST_ASSERT(val.isConvertibleTo(Json::realValue));
1117 JSONTEST_ASSERT(val.isConvertibleTo(Json::booleanValue));
1118 JSONTEST_ASSERT(val.isConvertibleTo(Json::stringValue));
1119 JSONTEST_ASSERT(!val.isConvertibleTo(Json::nullValue));
1120 JSONTEST_ASSERT(!val.isConvertibleTo(Json::uintValue));
1121 JSONTEST_ASSERT(!val.isConvertibleTo(Json::arrayValue));
1122 JSONTEST_ASSERT(!val.isConvertibleTo(Json::objectValue));
1132 val = Json::Value(kint32max + 0.5);
1134 JSONTEST_ASSERT_EQUAL(Json::realValue, val.type());
1141 JSONTEST_ASSERT(val.isConvertibleTo(Json::uintValue));
1142 JSONTEST_ASSERT(val.isConvertibleTo(Json::realValue));
1143 JSONTEST_ASSERT(val.isConvertibleTo(Json::booleanValue));
1144 JSONTEST_ASSERT(val.isConvertibleTo(Json::stringValue));
1145 JSONTEST_ASSERT(!val.isConvertibleTo(Json::nullValue));
1146 JSONTEST_ASSERT(!val.isConvertibleTo(Json::intValue));
1147 JSONTEST_ASSERT(!val.isConvertibleTo(Json::arrayValue));
1148 JSONTEST_ASSERT(!val.isConvertibleTo(Json::objectValue));
1162 val = Json::Value(kint32min - 0.5);
1164 JSONTEST_ASSERT_EQUAL(Json::realValue, val.type());
1171 JSONTEST_ASSERT(val.isConvertibleTo(Json::realValue));
1172 JSONTEST_ASSERT(val.isConvertibleTo(Json::booleanValue));
1173 JSONTEST_ASSERT(val.isConvertibleTo(Json::stringValue));
1174 JSONTEST_ASSERT(!val.isConvertibleTo(Json::nullValue));
1175 JSONTEST_ASSERT(!val.isConvertibleTo(Json::intValue));
1176 JSONTEST_ASSERT(!val.isConvertibleTo(Json::uintValue));
1177 JSONTEST_ASSERT(!val.isConvertibleTo(Json::arrayValue));
1178 JSONTEST_ASSERT(!val.isConvertibleTo(Json::objectValue));
1183 JSONTEST_ASSERT_EQUAL(-Json::Int64(1) << 31, val.asLargestInt());
1190 val = Json::Value(kuint32max + 0.5);
1192 JSONTEST_ASSERT_EQUAL(Json::realValue, val.type());
1199 JSONTEST_ASSERT(val.isConvertibleTo(Json::realValue));
1200 JSONTEST_ASSERT(val.isConvertibleTo(Json::booleanValue));
1201 JSONTEST_ASSERT(val.isConvertibleTo(Json::stringValue));
1202 JSONTEST_ASSERT(!val.isConvertibleTo(Json::nullValue));
1203 JSONTEST_ASSERT(!val.isConvertibleTo(Json::intValue));
1204 JSONTEST_ASSERT(!val.isConvertibleTo(Json::uintValue));
1205 JSONTEST_ASSERT(!val.isConvertibleTo(Json::arrayValue));
1206 JSONTEST_ASSERT(!val.isConvertibleTo(Json::objectValue));
1211 JSONTEST_ASSERT_EQUAL((Json::Int64(1) << 32) - 1, val.asLargestInt());
1212 JSONTEST_ASSERT_EQUAL((Json::UInt64(1) << 32) - Json::UInt64(1),
1219 val = Json::Value(1.2345678901234);
1224 val = Json::Value(2199023255552000.0f);
1230 val = Json::Value(3.402823466385289e38);
1236 val = Json::Value(1.2345678e300);
1242 void ValueTest::checkConstMemberCount(const Json::Value& value,
1245 Json::Value::const_iterator itEnd = value.end();
1246 for (Json::Value::const_iterator it = value.begin(); it != itEnd; ++it) {
1249 JSONTEST_ASSERT_EQUAL(expectedCount, count) << "Json::Value::const_iterator";
1252 void ValueTest::checkMemberCount(Json::Value& value,
1257 Json::Value::iterator itEnd = value.end();
1258 for (Json::Value::iterator it = value.begin(); it != itEnd; ++it) {
1261 JSONTEST_ASSERT_EQUAL(expectedCount, count) << "Json::Value::iterator";
1272 void ValueTest::checkIs(const Json::Value& value, const IsCheck& check) {
1294 JSONTEST_ASSERT_PRED(checkIsEqual(Json::Value(), Json::Value()));
1306 JSONTEST_ASSERT_PRED(checkIsLess(0u, Json::Value::maxUInt));
1336 JsonJson::arrayValue);
1337 Json::Value l1aArray;
1339 Json::Value l1bArray;
1341 Json::Value l2aArray;
1344 Json::Value l2bArray;
1351 JSONTEST_ASSERT_PRED(checkIsEqual(emptyArray, Json::Value(emptyArray)));
1352 JSONTEST_ASSERT_PRED(checkIsEqual(l1aArray, Json::Value(l1aArray)));
1353 JSONTEST_ASSERT_PRED(checkIsEqual(l2bArray, Json::Value(l2bArray)));
1358 Json::Value emptyObject(Json::objectValue);
1359 Json::Value l1aObject;
1361 Json::Value l1bObject;
1363 Json::Value l2aObject;
1369 JSONTEST_ASSERT_PRED(checkIsEqual(emptyObject, Json::Value(emptyObject)));
1370 JSONTEST_ASSERT_PRED(checkIsEqual(l1aObject, Json::Value(l1aObject)));
1371 JSONTEST_ASSERT_PRED(checkIsEqual(l2aObject, Json::Value(l2aObject)));
1376 JSONTEST_ASSERT_PRED(checkIsLess(Json::Value(), Json::Value(1)));
1377 JSONTEST_ASSERT_PRED(checkIsLess(Json::Value(1), Json::Value(1u)));
1378 JSONTEST_ASSERT_PRED(checkIsLess(Json::Value(1u), Json::Value(1.0)));
1379 JSONTEST_ASSERT_PRED(checkIsLess(Json::Value(1.0), Json::Value("a")));
1380 JSONTEST_ASSERT_PRED(checkIsLess(Json::Value("a"), Json::Value(true)));
1382 checkIsLess(Json::Value(true), Json::Value(Json::arrayValue)));
1383 JSONTEST_ASSERT_PRED(checkIsLess(Json::Value(Json::arrayValue),
1384 Json::Value(Json::objectValue)));
1387 void ValueTest::checkIsLess(const Json::Value& x, const Json::Value& y) {
1402 void ValueTest::checkIsEqual(const Json::Value& x, const Json::Value& y) {
1420 Json::Value intVal(1);
1421 Json::Value strVal("Test");
1422 Json::Value objVal(Json::objectValue);
1423 Json::Value arrVal(Json::arrayValue);
1484 Json::Value x;
1491 Json::Value y(x);
1494 Json::Value z;
1505 Json::FastWriter writer;
1506 Json::Value nullValue;
1516 Json::Reader reader;
1517 Json::Value root;
1525 Json::Reader reader;
1526 Json::Value root;
1555 Json::Reader reader;
1556 Json::Value root;
1562 std::vector<Json::Reader::StructuredError> errors =
1572 Json::Reader reader;
1573 Json::Value root;
1579 std::vector<Json::Reader::StructuredError> errors =
1589 Json::Reader reader;
1590 Json::Value root;
1596 std::vector<Json::Reader::StructuredError> errors =