2015-01-31 19:13:11 +00:00
|
|
|
#define CATCH_CONFIG_MAIN
|
|
|
|
#include "catch.hpp"
|
|
|
|
|
|
|
|
#include "json.hpp"
|
|
|
|
using nlohmann::json;
|
|
|
|
|
2015-02-08 12:52:11 +00:00
|
|
|
#include <array>
|
|
|
|
#include <deque>
|
|
|
|
#include <forward_list>
|
|
|
|
#include <list>
|
|
|
|
#include <map>
|
|
|
|
#include <set>
|
|
|
|
#include <string>
|
2015-02-08 12:25:09 +00:00
|
|
|
#include <unordered_map>
|
2015-02-08 12:52:11 +00:00
|
|
|
#include <unordered_set>
|
|
|
|
#include <vector>
|
2015-01-31 19:13:11 +00:00
|
|
|
|
2015-02-08 12:25:09 +00:00
|
|
|
TEST_CASE("Constructors")
|
2015-01-31 19:13:11 +00:00
|
|
|
{
|
2015-02-08 12:25:09 +00:00
|
|
|
SECTION("create an empty value with a given type")
|
2015-01-31 19:13:11 +00:00
|
|
|
{
|
2015-02-08 12:25:09 +00:00
|
|
|
SECTION("null")
|
2015-01-31 19:13:11 +00:00
|
|
|
{
|
2015-02-08 12:25:09 +00:00
|
|
|
auto t = json::value_t::null;
|
|
|
|
json j(t);
|
|
|
|
CHECK(j.type() == t);
|
2015-01-31 19:13:11 +00:00
|
|
|
}
|
|
|
|
|
2015-02-08 12:25:09 +00:00
|
|
|
SECTION("object")
|
2015-01-31 19:13:11 +00:00
|
|
|
{
|
2015-02-08 12:25:09 +00:00
|
|
|
auto t = json::value_t::object;
|
|
|
|
json j(t);
|
|
|
|
CHECK(j.type() == t);
|
2015-01-31 19:13:11 +00:00
|
|
|
}
|
|
|
|
|
2015-02-08 12:25:09 +00:00
|
|
|
SECTION("array")
|
2015-01-31 19:13:11 +00:00
|
|
|
{
|
2015-02-08 12:25:09 +00:00
|
|
|
auto t = json::value_t::array;
|
|
|
|
json j(t);
|
|
|
|
CHECK(j.type() == t);
|
2015-01-31 19:13:11 +00:00
|
|
|
}
|
|
|
|
|
2015-02-08 12:25:09 +00:00
|
|
|
SECTION("boolean")
|
2015-01-31 19:13:11 +00:00
|
|
|
{
|
2015-02-08 12:25:09 +00:00
|
|
|
auto t = json::value_t::boolean;
|
|
|
|
json j(t);
|
|
|
|
CHECK(j.type() == t);
|
2015-01-31 19:13:11 +00:00
|
|
|
}
|
|
|
|
|
2015-02-08 12:52:11 +00:00
|
|
|
SECTION("string")
|
|
|
|
{
|
|
|
|
auto t = json::value_t::string;
|
|
|
|
json j(t);
|
|
|
|
CHECK(j.type() == t);
|
|
|
|
}
|
|
|
|
|
2015-02-08 12:25:09 +00:00
|
|
|
SECTION("number_integer")
|
2015-01-31 19:13:11 +00:00
|
|
|
{
|
2015-02-08 12:25:09 +00:00
|
|
|
auto t = json::value_t::number_integer;
|
|
|
|
json j(t);
|
|
|
|
CHECK(j.type() == t);
|
2015-01-31 19:13:11 +00:00
|
|
|
}
|
|
|
|
|
2015-02-08 12:25:09 +00:00
|
|
|
SECTION("number_float")
|
2015-01-31 19:13:11 +00:00
|
|
|
{
|
2015-02-08 12:25:09 +00:00
|
|
|
auto t = json::value_t::number_float;
|
|
|
|
json j(t);
|
|
|
|
CHECK(j.type() == t);
|
2015-01-31 19:13:11 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2015-02-08 12:25:09 +00:00
|
|
|
SECTION("create a null object (implicitly)")
|
2015-01-31 19:13:11 +00:00
|
|
|
{
|
2015-02-08 12:25:09 +00:00
|
|
|
SECTION("no parameter")
|
2015-01-31 19:13:11 +00:00
|
|
|
{
|
2015-02-08 12:52:11 +00:00
|
|
|
json j{};
|
2015-02-08 12:25:09 +00:00
|
|
|
CHECK(j.type() == json::value_t::null);
|
2015-01-31 19:13:11 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2015-02-08 12:25:09 +00:00
|
|
|
SECTION("create a null object (explicitly)")
|
2015-01-31 19:13:11 +00:00
|
|
|
{
|
2015-02-08 12:25:09 +00:00
|
|
|
SECTION("parameter")
|
2015-01-31 19:13:11 +00:00
|
|
|
{
|
2015-02-08 12:25:09 +00:00
|
|
|
json j(nullptr);
|
|
|
|
CHECK(j.type() == json::value_t::null);
|
2015-01-31 19:13:11 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2015-02-08 12:25:09 +00:00
|
|
|
SECTION("create an object (explicit)")
|
2015-01-31 19:13:11 +00:00
|
|
|
{
|
2015-02-08 12:25:09 +00:00
|
|
|
SECTION("empty object")
|
2015-01-31 19:13:11 +00:00
|
|
|
{
|
2015-02-08 12:25:09 +00:00
|
|
|
json::object_t o;
|
|
|
|
json j(o);
|
|
|
|
CHECK(j.type() == json::value_t::object);
|
2015-01-31 19:13:11 +00:00
|
|
|
}
|
|
|
|
|
2015-02-08 12:25:09 +00:00
|
|
|
SECTION("filled object")
|
2015-01-31 19:13:11 +00:00
|
|
|
{
|
2015-02-08 12:52:11 +00:00
|
|
|
json::object_t o {{"a", json(1)}, {"b", json(2.2)}, {"c", json(false)}, {"d", json("string")}, {"e", json()}};
|
2015-02-08 12:25:09 +00:00
|
|
|
json j(o);
|
|
|
|
CHECK(j.type() == json::value_t::object);
|
2015-01-31 19:13:11 +00:00
|
|
|
}
|
|
|
|
}
|
2015-02-08 12:52:11 +00:00
|
|
|
|
2015-02-08 12:25:09 +00:00
|
|
|
SECTION("create an object (implicit)")
|
2015-01-31 19:13:11 +00:00
|
|
|
{
|
2015-02-08 12:25:09 +00:00
|
|
|
// reference object
|
2015-02-08 12:52:11 +00:00
|
|
|
json::object_t o_reference {{"a", json(1)}, {"b", json(2.2)}, {"c", json(false)}, {"d", json("string")}, {"e", json()}};
|
2015-02-08 12:25:09 +00:00
|
|
|
json j_reference(o_reference);
|
2015-02-08 12:52:11 +00:00
|
|
|
|
2015-02-08 12:25:09 +00:00
|
|
|
SECTION("std::map<std::string, json>")
|
2015-01-31 19:13:11 +00:00
|
|
|
{
|
2015-02-08 12:52:11 +00:00
|
|
|
std::map<std::string, json> o {{"a", json(1)}, {"b", json(2.2)}, {"c", json(false)}, {"d", json("string")}, {"e", json()}};
|
2015-02-08 12:25:09 +00:00
|
|
|
json j(o);
|
|
|
|
CHECK(j.type() == json::value_t::object);
|
|
|
|
CHECK(j == j_reference);
|
2015-01-31 19:13:11 +00:00
|
|
|
}
|
|
|
|
|
2015-02-08 12:25:09 +00:00
|
|
|
SECTION("std::map<const char*, json>")
|
2015-01-31 19:13:11 +00:00
|
|
|
{
|
2015-02-08 12:52:11 +00:00
|
|
|
std::map<const char*, json> o {{"a", json(1)}, {"b", json(2.2)}, {"c", json(false)}, {"d", json("string")}, {"e", json()}};
|
2015-02-08 12:25:09 +00:00
|
|
|
json j(o);
|
|
|
|
CHECK(j.type() == json::value_t::object);
|
|
|
|
CHECK(j == j_reference);
|
2015-01-31 19:13:11 +00:00
|
|
|
}
|
|
|
|
|
2015-02-08 12:25:09 +00:00
|
|
|
SECTION("std::multimap<std::string, json>")
|
2015-01-31 19:13:11 +00:00
|
|
|
{
|
2015-02-08 12:52:11 +00:00
|
|
|
std::multimap<std::string, json> o {{"a", json(1)}, {"b", json(2.2)}, {"c", json(false)}, {"d", json("string")}, {"e", json()}};
|
2015-02-08 12:25:09 +00:00
|
|
|
json j(o);
|
|
|
|
CHECK(j.type() == json::value_t::object);
|
|
|
|
CHECK(j == j_reference);
|
2015-01-31 19:13:11 +00:00
|
|
|
}
|
|
|
|
|
2015-02-08 12:25:09 +00:00
|
|
|
SECTION("std::unordered_map<std::string, json>")
|
2015-01-31 19:13:11 +00:00
|
|
|
{
|
2015-02-08 12:52:11 +00:00
|
|
|
std::unordered_map<std::string, json> o {{"a", json(1)}, {"b", json(2.2)}, {"c", json(false)}, {"d", json("string")}, {"e", json()}};
|
2015-02-08 12:25:09 +00:00
|
|
|
json j(o);
|
|
|
|
CHECK(j.type() == json::value_t::object);
|
|
|
|
CHECK(j == j_reference);
|
2015-01-31 19:13:11 +00:00
|
|
|
}
|
|
|
|
|
2015-02-08 12:25:09 +00:00
|
|
|
SECTION("std::unordered_multimap<std::string, json>")
|
2015-01-31 19:13:11 +00:00
|
|
|
{
|
2015-02-08 12:52:11 +00:00
|
|
|
std::unordered_multimap<std::string, json> o {{"a", json(1)}, {"b", json(2.2)}, {"c", json(false)}, {"d", json("string")}, {"e", json()}};
|
2015-02-08 12:25:09 +00:00
|
|
|
json j(o);
|
|
|
|
CHECK(j.type() == json::value_t::object);
|
|
|
|
CHECK(j == j_reference);
|
2015-01-31 19:13:11 +00:00
|
|
|
}
|
2015-02-08 12:52:11 +00:00
|
|
|
|
|
|
|
SECTION("associative container literal")
|
|
|
|
{
|
|
|
|
json j({{"a", json(1)}, {"b", json(2.2)}, {"c", json(false)}, {"d", json("string")}, {"e", json()}});
|
|
|
|
CHECK(j.type() == json::value_t::object);
|
|
|
|
CHECK(j == j_reference);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("create an array (explicit)")
|
|
|
|
{
|
|
|
|
SECTION("empty array")
|
|
|
|
{
|
|
|
|
json::array_t a;
|
|
|
|
json j(a);
|
|
|
|
CHECK(j.type() == json::value_t::array);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("filled array")
|
|
|
|
{
|
|
|
|
json::array_t a {json(1), json(2.2), json(false), json("string"), json()};
|
|
|
|
json j(a);
|
|
|
|
CHECK(j.type() == json::value_t::array);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("create an array (implicit)")
|
|
|
|
{
|
|
|
|
// reference array
|
|
|
|
json::array_t a_reference {json(1), json(2.2), json(false), json("string"), json()};
|
|
|
|
json j_reference(a_reference);
|
|
|
|
|
|
|
|
SECTION("std::list<json>")
|
|
|
|
{
|
|
|
|
std::list<json> a {json(1), json(2.2), json(false), json("string"), json()};
|
|
|
|
json j(a);
|
|
|
|
CHECK(j.type() == json::value_t::array);
|
|
|
|
CHECK(j == j_reference);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("std::forward_list<json>")
|
|
|
|
{
|
|
|
|
std::forward_list<json> a {json(1), json(2.2), json(false), json("string"), json()};
|
|
|
|
json j(a);
|
|
|
|
CHECK(j.type() == json::value_t::array);
|
|
|
|
CHECK(j == j_reference);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("std::array<json>")
|
|
|
|
{
|
|
|
|
std::array<json, 5> a {{json(1), json(2.2), json(false), json("string"), json()}};
|
|
|
|
json j(a);
|
|
|
|
CHECK(j.type() == json::value_t::array);
|
|
|
|
CHECK(j == j_reference);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("std::vector<json>")
|
|
|
|
{
|
|
|
|
std::vector<json> a {json(1), json(2.2), json(false), json("string"), json()};
|
|
|
|
json j(a);
|
|
|
|
CHECK(j.type() == json::value_t::array);
|
|
|
|
CHECK(j == j_reference);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("std::deque<json>")
|
|
|
|
{
|
|
|
|
std::deque<json> a {json(1), json(2.2), json(false), json("string"), json()};
|
|
|
|
json j(a);
|
|
|
|
CHECK(j.type() == json::value_t::array);
|
|
|
|
CHECK(j == j_reference);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("std::set<json>")
|
|
|
|
{
|
|
|
|
std::set<json> a {json(1), json(2.2), json(false), json("string"), json()};
|
|
|
|
json j(a);
|
|
|
|
CHECK(j.type() == json::value_t::array);
|
|
|
|
// we cannot really check for equality here
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("std::unordered_set<json>")
|
|
|
|
{
|
|
|
|
std::unordered_set<json> a {json(1), json(2.2), json(false), json("string"), json()};
|
|
|
|
json j(a);
|
|
|
|
CHECK(j.type() == json::value_t::array);
|
|
|
|
// we cannot really check for equality here
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("sequence container literal")
|
|
|
|
{
|
|
|
|
json j({json(1), json(2.2), json(false), json("string"), json()});
|
|
|
|
CHECK(j.type() == json::value_t::array);
|
|
|
|
CHECK(j == j_reference);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("create a string (explicit)")
|
|
|
|
{
|
|
|
|
SECTION("empty string")
|
|
|
|
{
|
|
|
|
json::string_t s;
|
|
|
|
json j(s);
|
|
|
|
CHECK(j.type() == json::value_t::string);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("filled string")
|
|
|
|
{
|
|
|
|
json::string_t s {"Hello world"};
|
|
|
|
json j(s);
|
|
|
|
CHECK(j.type() == json::value_t::string);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2015-02-08 13:10:36 +00:00
|
|
|
SECTION("create a string (implicit)")
|
2015-02-08 12:52:11 +00:00
|
|
|
{
|
|
|
|
// reference string
|
|
|
|
json::string_t s_reference {"Hello world"};
|
|
|
|
json j_reference(s_reference);
|
|
|
|
|
|
|
|
SECTION("std::string")
|
|
|
|
{
|
|
|
|
std::string s {"Hello world"};
|
|
|
|
json j(s);
|
|
|
|
CHECK(j.type() == json::value_t::string);
|
|
|
|
CHECK(j == j_reference);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("char[]")
|
|
|
|
{
|
|
|
|
char s[] {"Hello world"};
|
|
|
|
json j(s);
|
|
|
|
CHECK(j.type() == json::value_t::string);
|
|
|
|
CHECK(j == j_reference);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("const char*")
|
|
|
|
{
|
|
|
|
const char* s {"Hello world"};
|
|
|
|
json j(s);
|
|
|
|
CHECK(j.type() == json::value_t::string);
|
|
|
|
CHECK(j == j_reference);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("string literal")
|
|
|
|
{
|
|
|
|
json j("Hello world");
|
|
|
|
CHECK(j.type() == json::value_t::string);
|
|
|
|
CHECK(j == j_reference);
|
|
|
|
}
|
2015-01-31 19:13:11 +00:00
|
|
|
}
|
2015-02-08 13:10:36 +00:00
|
|
|
|
|
|
|
SECTION("create a boolean (explicit)")
|
|
|
|
{
|
|
|
|
SECTION("empty boolean")
|
|
|
|
{
|
|
|
|
json::boolean_t b{};
|
|
|
|
json j(b);
|
|
|
|
CHECK(j.type() == json::value_t::boolean);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("filled boolean (true)")
|
|
|
|
{
|
|
|
|
json j(true);
|
|
|
|
CHECK(j.type() == json::value_t::boolean);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("filled boolean (false)")
|
|
|
|
{
|
|
|
|
json j(false);
|
|
|
|
CHECK(j.type() == json::value_t::boolean);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("create an integer number (explicit)")
|
|
|
|
{
|
|
|
|
SECTION("uninitialized value")
|
|
|
|
{
|
|
|
|
json::number_integer_t n{};
|
|
|
|
json j(n);
|
|
|
|
CHECK(j.type() == json::value_t::number_integer);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("initialized value")
|
|
|
|
{
|
|
|
|
json::number_integer_t n(42);
|
|
|
|
json j(n);
|
|
|
|
CHECK(j.type() == json::value_t::number_integer);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("create an integer number (implicit)")
|
|
|
|
{
|
|
|
|
// reference object
|
|
|
|
json::number_integer_t n_reference = 42;
|
|
|
|
json j_reference(n_reference);
|
|
|
|
|
|
|
|
SECTION("short")
|
|
|
|
{
|
|
|
|
short n = 42;
|
|
|
|
json j(n);
|
|
|
|
CHECK(j.type() == json::value_t::number_integer);
|
|
|
|
CHECK(j == j_reference);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("unsigned short")
|
|
|
|
{
|
|
|
|
unsigned short n = 42;
|
|
|
|
json j(n);
|
|
|
|
CHECK(j.type() == json::value_t::number_integer);
|
|
|
|
CHECK(j == j_reference);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("int")
|
|
|
|
{
|
|
|
|
int n = 42;
|
|
|
|
json j(n);
|
|
|
|
CHECK(j.type() == json::value_t::number_integer);
|
|
|
|
CHECK(j == j_reference);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("unsigned int")
|
|
|
|
{
|
|
|
|
unsigned int n = 42;
|
|
|
|
json j(n);
|
|
|
|
CHECK(j.type() == json::value_t::number_integer);
|
|
|
|
CHECK(j == j_reference);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("long")
|
|
|
|
{
|
|
|
|
long n = 42;
|
|
|
|
json j(n);
|
|
|
|
CHECK(j.type() == json::value_t::number_integer);
|
|
|
|
CHECK(j == j_reference);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("unsigned long")
|
|
|
|
{
|
|
|
|
short n = 42;
|
|
|
|
json j(n);
|
|
|
|
CHECK(j.type() == json::value_t::number_integer);
|
|
|
|
CHECK(j == j_reference);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("long long")
|
|
|
|
{
|
|
|
|
long long n = 42;
|
|
|
|
json j(n);
|
|
|
|
CHECK(j.type() == json::value_t::number_integer);
|
|
|
|
CHECK(j == j_reference);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("unsigned long long")
|
|
|
|
{
|
|
|
|
unsigned long long n = 42;
|
|
|
|
json j(n);
|
|
|
|
CHECK(j.type() == json::value_t::number_integer);
|
|
|
|
CHECK(j == j_reference);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("int8_t")
|
|
|
|
{
|
|
|
|
int8_t n = 42;
|
|
|
|
json j(n);
|
|
|
|
CHECK(j.type() == json::value_t::number_integer);
|
|
|
|
CHECK(j == j_reference);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("int16_t")
|
|
|
|
{
|
|
|
|
int16_t n = 42;
|
|
|
|
json j(n);
|
|
|
|
CHECK(j.type() == json::value_t::number_integer);
|
|
|
|
CHECK(j == j_reference);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("int32_t")
|
|
|
|
{
|
|
|
|
int32_t n = 42;
|
|
|
|
json j(n);
|
|
|
|
CHECK(j.type() == json::value_t::number_integer);
|
|
|
|
CHECK(j == j_reference);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("int64_t")
|
|
|
|
{
|
|
|
|
int64_t n = 42;
|
|
|
|
json j(n);
|
|
|
|
CHECK(j.type() == json::value_t::number_integer);
|
|
|
|
CHECK(j == j_reference);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("int_fast8_t")
|
|
|
|
{
|
|
|
|
int_fast8_t n = 42;
|
|
|
|
json j(n);
|
|
|
|
CHECK(j.type() == json::value_t::number_integer);
|
|
|
|
CHECK(j == j_reference);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("int_fast16_t")
|
|
|
|
{
|
|
|
|
int_fast16_t n = 42;
|
|
|
|
json j(n);
|
|
|
|
CHECK(j.type() == json::value_t::number_integer);
|
|
|
|
CHECK(j == j_reference);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("int_fast32_t")
|
|
|
|
{
|
|
|
|
int_fast32_t n = 42;
|
|
|
|
json j(n);
|
|
|
|
CHECK(j.type() == json::value_t::number_integer);
|
|
|
|
CHECK(j == j_reference);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("int_fast64_t")
|
|
|
|
{
|
|
|
|
int_fast64_t n = 42;
|
|
|
|
json j(n);
|
|
|
|
CHECK(j.type() == json::value_t::number_integer);
|
|
|
|
CHECK(j == j_reference);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("int_least8_t")
|
|
|
|
{
|
|
|
|
int_least8_t n = 42;
|
|
|
|
json j(n);
|
|
|
|
CHECK(j.type() == json::value_t::number_integer);
|
|
|
|
CHECK(j == j_reference);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("int_least16_t")
|
|
|
|
{
|
|
|
|
int_least16_t n = 42;
|
|
|
|
json j(n);
|
|
|
|
CHECK(j.type() == json::value_t::number_integer);
|
|
|
|
CHECK(j == j_reference);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("int_least32_t")
|
|
|
|
{
|
|
|
|
int_least32_t n = 42;
|
|
|
|
json j(n);
|
|
|
|
CHECK(j.type() == json::value_t::number_integer);
|
|
|
|
CHECK(j == j_reference);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("int_least64_t")
|
|
|
|
{
|
|
|
|
int_least64_t n = 42;
|
|
|
|
json j(n);
|
|
|
|
CHECK(j.type() == json::value_t::number_integer);
|
|
|
|
CHECK(j == j_reference);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("uint8_t")
|
|
|
|
{
|
|
|
|
uint8_t n = 42;
|
|
|
|
json j(n);
|
|
|
|
CHECK(j.type() == json::value_t::number_integer);
|
|
|
|
CHECK(j == j_reference);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("uint16_t")
|
|
|
|
{
|
|
|
|
uint16_t n = 42;
|
|
|
|
json j(n);
|
|
|
|
CHECK(j.type() == json::value_t::number_integer);
|
|
|
|
CHECK(j == j_reference);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("uint32_t")
|
|
|
|
{
|
|
|
|
uint32_t n = 42;
|
|
|
|
json j(n);
|
|
|
|
CHECK(j.type() == json::value_t::number_integer);
|
|
|
|
CHECK(j == j_reference);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("uint64_t")
|
|
|
|
{
|
|
|
|
uint64_t n = 42;
|
|
|
|
json j(n);
|
|
|
|
CHECK(j.type() == json::value_t::number_integer);
|
|
|
|
CHECK(j == j_reference);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("uint_fast8_t")
|
|
|
|
{
|
|
|
|
uint_fast8_t n = 42;
|
|
|
|
json j(n);
|
|
|
|
CHECK(j.type() == json::value_t::number_integer);
|
|
|
|
CHECK(j == j_reference);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("uint_fast16_t")
|
|
|
|
{
|
|
|
|
uint_fast16_t n = 42;
|
|
|
|
json j(n);
|
|
|
|
CHECK(j.type() == json::value_t::number_integer);
|
|
|
|
CHECK(j == j_reference);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("uint_fast32_t")
|
|
|
|
{
|
|
|
|
uint_fast32_t n = 42;
|
|
|
|
json j(n);
|
|
|
|
CHECK(j.type() == json::value_t::number_integer);
|
|
|
|
CHECK(j == j_reference);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("uint_fast64_t")
|
|
|
|
{
|
|
|
|
uint_fast64_t n = 42;
|
|
|
|
json j(n);
|
|
|
|
CHECK(j.type() == json::value_t::number_integer);
|
|
|
|
CHECK(j == j_reference);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("uint_least8_t")
|
|
|
|
{
|
|
|
|
uint_least8_t n = 42;
|
|
|
|
json j(n);
|
|
|
|
CHECK(j.type() == json::value_t::number_integer);
|
|
|
|
CHECK(j == j_reference);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("uint_least16_t")
|
|
|
|
{
|
|
|
|
uint_least16_t n = 42;
|
|
|
|
json j(n);
|
|
|
|
CHECK(j.type() == json::value_t::number_integer);
|
|
|
|
CHECK(j == j_reference);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("uint_least32_t")
|
|
|
|
{
|
|
|
|
uint_least32_t n = 42;
|
|
|
|
json j(n);
|
|
|
|
CHECK(j.type() == json::value_t::number_integer);
|
|
|
|
CHECK(j == j_reference);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("uint_least64_t")
|
|
|
|
{
|
|
|
|
uint_least64_t n = 42;
|
|
|
|
json j(n);
|
|
|
|
CHECK(j.type() == json::value_t::number_integer);
|
|
|
|
CHECK(j == j_reference);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("integer literal without suffix")
|
|
|
|
{
|
|
|
|
json j(42);
|
|
|
|
CHECK(j.type() == json::value_t::number_integer);
|
|
|
|
CHECK(j == j_reference);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("integer literal with u suffix")
|
|
|
|
{
|
|
|
|
json j(42u);
|
|
|
|
CHECK(j.type() == json::value_t::number_integer);
|
|
|
|
CHECK(j == j_reference);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("integer literal with l suffix")
|
|
|
|
{
|
|
|
|
json j(42l);
|
|
|
|
CHECK(j.type() == json::value_t::number_integer);
|
|
|
|
CHECK(j == j_reference);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("integer literal with ul suffix")
|
|
|
|
{
|
|
|
|
json j(42ul);
|
|
|
|
CHECK(j.type() == json::value_t::number_integer);
|
|
|
|
CHECK(j == j_reference);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("integer literal with ll suffix")
|
|
|
|
{
|
|
|
|
json j(42ll);
|
|
|
|
CHECK(j.type() == json::value_t::number_integer);
|
|
|
|
CHECK(j == j_reference);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("integer literal with ull suffix")
|
|
|
|
{
|
|
|
|
json j(42ull);
|
|
|
|
CHECK(j.type() == json::value_t::number_integer);
|
|
|
|
CHECK(j == j_reference);
|
|
|
|
}
|
|
|
|
}
|
2015-01-31 19:13:11 +00:00
|
|
|
}
|