| 988 | using tt = T; |
| 989 | |
| 990 | void |
| 991 | testExchange() |
| 992 | { |
| 993 | // string{} |
| 994 | { |
| 995 | BOOST_TEST(value("abc").is_string()); |
| 996 | BOOST_TEST(value(std::string()).is_string()); |
| 997 | BOOST_TEST(value(string_view()).is_string()); |
| 998 | |
| 999 | { value jv; BOOST_TEST((jv = "abc").is_string()); } |
| 1000 | { value jv; BOOST_TEST((jv = std::string()).is_string()); } |
| 1001 | { value jv; BOOST_TEST((jv = string_view()).is_string()); } |
| 1002 | } |
| 1003 | |
| 1004 | // numbers |
| 1005 | { |
| 1006 | BOOST_TEST(value(tt<signed char>{}).is_int64()); |
| 1007 | BOOST_TEST(value(tt<short>{}).is_int64()); |
| 1008 | BOOST_TEST(value(tt<int>{}).is_int64()); |
| 1009 | BOOST_TEST(value(tt<long>{}).is_int64()); |
| 1010 | BOOST_TEST(value(tt<long long>{}).is_int64()); |
| 1011 | BOOST_TEST(value(tt<unsigned char>{}).is_uint64()); |
| 1012 | BOOST_TEST(value(tt<unsigned short>{}).is_uint64()); |
| 1013 | BOOST_TEST(value(tt<unsigned int>{}).is_uint64()); |
| 1014 | BOOST_TEST(value(tt<unsigned long>{}).is_uint64()); |
| 1015 | BOOST_TEST(value(tt<unsigned long long>{}).is_uint64()); |
| 1016 | BOOST_TEST(value(tt<float>{}).is_double()); |
| 1017 | BOOST_TEST(value(tt<double>{}).is_double()); |
| 1018 | |
| 1019 | { value jv; BOOST_TEST((jv = tt<signed char>{}).is_int64()); } |
| 1020 | { value jv; BOOST_TEST((jv = tt<short>{}).is_int64()); } |
| 1021 | { value jv; BOOST_TEST((jv = tt<int>{}).is_int64()); } |
| 1022 | { value jv; BOOST_TEST((jv = tt<long>{}).is_int64()); } |
| 1023 | { value jv; BOOST_TEST((jv = tt<long long>{}).is_int64()); } |
| 1024 | { value jv; BOOST_TEST((jv = tt<unsigned char>{}).is_uint64()); } |
| 1025 | { value jv; BOOST_TEST((jv = tt<unsigned short>{}).is_uint64()); } |
| 1026 | { value jv; BOOST_TEST((jv = tt<unsigned int>{}).is_uint64()); } |
| 1027 | { value jv; BOOST_TEST((jv = tt<unsigned long>{}).is_uint64()); } |
| 1028 | { value jv; BOOST_TEST((jv = tt<unsigned long long>{}).is_uint64()); } |
| 1029 | { value jv; BOOST_TEST((jv = tt<float>{}).is_double()); } |
| 1030 | { value jv; BOOST_TEST((jv = tt<double>{}).is_double()); } |
| 1031 | } |
| 1032 | |
| 1033 | // bool |
| 1034 | { |
| 1035 | BOOST_TEST(value(true).is_bool()); |
| 1036 | BOOST_TEST(value(false).is_bool()); |
| 1037 | |
| 1038 | { value jv; BOOST_TEST((jv = true).is_bool()); } |
| 1039 | { value jv; BOOST_TEST((jv = false).is_bool()); } |
| 1040 | } |
| 1041 | |
| 1042 | // nullptr |
| 1043 | { |
| 1044 | BOOST_TEST(value(nullptr).is_null()); |
| 1045 | |
| 1046 | { value jv("x"); BOOST_TEST((jv = nullptr).is_null()); } |
| 1047 | } |