mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-05-15 14:16:07 -06:00
74 lines
1.2 KiB
C++
74 lines
1.2 KiB
C++
#include <Core/Core.h>
|
|
|
|
using namespace Upp;
|
|
|
|
bool OK;
|
|
|
|
#define CHECK(x, ref) { \
|
|
String val = AsString(x); \
|
|
bool ok = val == ref; \
|
|
LOG("CHECK(" << #x << ", " << AsCString(val) << ");"); \
|
|
ASSERT(ok); }
|
|
|
|
CONSOLE_APP_MAIN
|
|
{
|
|
OK = true;
|
|
|
|
StdLogSetup(LOG_COUT|LOG_FILE);
|
|
|
|
ValueMap m;
|
|
m("key1", "value1");
|
|
m("key2", "value2");
|
|
|
|
Value vm = m;
|
|
Value vm2 = m;
|
|
vm.At(1) = "123";
|
|
|
|
CHECK(vm, "{ key1: value1, key2: 123 }");
|
|
CHECK(vm2, "{ key1: value1, key2: value2 }");
|
|
|
|
Value json;
|
|
Value& h = json("monday");
|
|
h("morning")(0) = "a";
|
|
h("morning")(1) = "x";
|
|
h("evening") = "supper";
|
|
CHECK(json, "{ monday: { morning: [a, x], evening: supper } }");
|
|
|
|
ValueArray va;
|
|
va.Add("Node");
|
|
|
|
Value v = va;
|
|
|
|
Value& v1 = va.At(1);
|
|
|
|
v1 = 123;
|
|
|
|
CHECK(va, "[Node, 123]");
|
|
|
|
Value v2;
|
|
v2.At(0) = 1;
|
|
Value v3 = v2;
|
|
v2.At(1) = 2;
|
|
CHECK(v2, "[1, 2]");
|
|
CHECK(v3, "[1]");
|
|
|
|
{
|
|
Value va;
|
|
CHECK(va, "");
|
|
va << 1;
|
|
CHECK(va, "[1]");
|
|
va << 1 << "dva" << 3.0;
|
|
CHECK(va, "[1, 1, dva, 3]");
|
|
}
|
|
|
|
{
|
|
Value m;
|
|
m.At(0) = "zero";
|
|
m("hello") = "one";
|
|
CHECK(m, "{ 0: zero, hello: one }");
|
|
}
|
|
|
|
ASSERT(OK);
|
|
|
|
LOG("============================== OK");
|
|
}
|