mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-08-07 22:03:42 -06:00
.upptst: GuiJsonize
git-svn-id: svn://ultimatepp.org/upp/trunk@4916 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
parent
09b20c162b
commit
15852dc807
7 changed files with 388 additions and 287 deletions
9
upptst/GuiJsonize/GuiJsonize.upp
Normal file
9
upptst/GuiJsonize/GuiJsonize.upp
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
uses
|
||||
CtrlLib;
|
||||
|
||||
file
|
||||
main.cpp;
|
||||
|
||||
mainconfig
|
||||
"" = "GUI SSE2";
|
||||
|
||||
4
upptst/GuiJsonize/init
Normal file
4
upptst/GuiJsonize/init
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
#ifndef _GuiJsonize_icpp_init_stub
|
||||
#define _GuiJsonize_icpp_init_stub
|
||||
#include "CtrlLib/init"
|
||||
#endif
|
||||
84
upptst/GuiJsonize/main.cpp
Normal file
84
upptst/GuiJsonize/main.cpp
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
#include <CtrlLib/CtrlLib.h>
|
||||
using namespace Upp;
|
||||
|
||||
struct TestStruct
|
||||
{
|
||||
struct TestV : Moveable<TestV>
|
||||
{
|
||||
double a;
|
||||
Value b;
|
||||
String ToString() const
|
||||
{
|
||||
return Format("a=%d, b=%d", a,b);
|
||||
}
|
||||
|
||||
void Jsonize(JsonIO &json)
|
||||
{
|
||||
json
|
||||
("a", a)
|
||||
("b", b)
|
||||
;
|
||||
}
|
||||
};
|
||||
|
||||
void Add(double a, Value b)
|
||||
{
|
||||
TestV v;
|
||||
v.a = a;
|
||||
v.b = b;
|
||||
static int ii;
|
||||
map.Add("SomeKey" + AsString(++ii), v);
|
||||
}
|
||||
|
||||
void Jsonize(JsonIO &json)
|
||||
{
|
||||
StringMap(json, map); // <- string map
|
||||
}
|
||||
VectorMap<String,TestV> map;
|
||||
};
|
||||
|
||||
GUI_APP_MAIN
|
||||
{
|
||||
StdLogSetup(LOG_COUT|LOG_FILE);
|
||||
|
||||
Vector<Value> a, b;
|
||||
a.Add();
|
||||
String json = StoreAsJson(a);
|
||||
RDUMP(json);
|
||||
LoadFromJson(b, json);
|
||||
RDUMPC(b);
|
||||
ASSERT(b.GetCount() == 1 && IsNull(b[0]));
|
||||
|
||||
String xml = StoreAsXML(a, "test");
|
||||
RDUMP(xml);
|
||||
LoadFromXML(b, xml);
|
||||
RDUMPC(b);
|
||||
ASSERT(b.GetCount() == 1 && IsNull(b[0]));
|
||||
|
||||
TestStruct test, test2;
|
||||
test.Add(0, 0);
|
||||
test.Add(-1.2345, Date(2007, 12, 12));
|
||||
|
||||
LoadFromJson(test2, StoreAsJson(test));
|
||||
|
||||
RLOG(StoreAsJson(test));
|
||||
RLOG("===================");
|
||||
RLOG(StoreAsJson(test2));
|
||||
ASSERT(StoreAsJson(test) == StoreAsJson(test2));
|
||||
RLOG("===================");
|
||||
StoreAsJsonFile(test, NULL, true);
|
||||
LoadFromJsonFile(test2);
|
||||
ASSERT(StoreAsJson(test) == StoreAsJson(test2));
|
||||
String fn = ConfigFile("h");
|
||||
StoreAsJsonFile(test, fn, true);
|
||||
RDUMP(LoadFile(fn));
|
||||
LoadFromJsonFile(test2);
|
||||
ASSERT(StoreAsJson(test) == StoreAsJson(test2));
|
||||
|
||||
TestStruct test3;
|
||||
ASSERT(!LoadFromJson(test2, "{\"SomeKey1\":{\"a\":\"X\",\"b\":2},\"SomeKey2\":{\"a\":1,\"b\":2}}"));
|
||||
|
||||
ASSERT(!LoadFromJsonFile(test2, "c:aksjdfhkjaskjdfkhasdf"));
|
||||
|
||||
RLOG("Everything is OK.");
|
||||
}
|
||||
|
|
@ -1,104 +1,106 @@
|
|||
#include "SvoValue.h"
|
||||
|
||||
CONSOLE_APP_MAIN
|
||||
{
|
||||
StdLogSetup(LOG_COUT|LOG_FILE);
|
||||
|
||||
// temporary
|
||||
Value ist = Opt0();
|
||||
if(ist.Is<int>())
|
||||
RLOG("int");
|
||||
if(IsNumber(ist))
|
||||
RLOG("number");
|
||||
//
|
||||
|
||||
|
||||
Value v;
|
||||
ASSERT(v.IsVoid());
|
||||
|
||||
CheckType(Value());
|
||||
CheckType(String("ahoj"), true);
|
||||
CheckType(String('a', 20), true);
|
||||
CheckType(String('b', 200), true);
|
||||
CheckType(WString("ahoj"));
|
||||
CheckType(123);
|
||||
CheckType(123.0);
|
||||
CheckType(true);
|
||||
CheckType((int64)123, true);
|
||||
CheckType(Date(2012, 1, 1));
|
||||
CheckType(Time(2012, 1, 1, 15, 30), true);
|
||||
CheckType(Complex(1, 2), true);
|
||||
ValueArray va;
|
||||
va.Add(123);
|
||||
va.Add("ahoj");
|
||||
ASSERT(va.GetCount() == 2);
|
||||
ASSERT(va[0] == 123);
|
||||
ASSERT(va[1] == "ahoj");
|
||||
CheckType(va, true);
|
||||
ValueMap map;
|
||||
map.Add("1", 1);
|
||||
map.Add("2", 2);
|
||||
CheckType(map, true);
|
||||
CheckType(Point(20, 20), true);
|
||||
CheckType(Size(20, 20), true);
|
||||
CheckType(Rect(0, 0, 123, 123), true);
|
||||
CheckType(Point64(20, 20), true);
|
||||
CheckType(Size64(20, 20), true);
|
||||
CheckType(Rect64(0, 0, 123, 123), true);
|
||||
CheckType(Pointf(20, 20), true);
|
||||
CheckType(Sizef(20, 20), true);
|
||||
CheckType(Rectf(0, 0, 123, 123), true);
|
||||
CheckType(Blue(), true);
|
||||
Uuid uuid;
|
||||
uuid.a = 11234;
|
||||
uuid.b = 321;
|
||||
uuid.c = 1111;
|
||||
uuid.d = 19999;
|
||||
CheckType(uuid, true);
|
||||
|
||||
v = ErrorValue("error");
|
||||
CheckType(v, true);
|
||||
ASSERT(v.IsVoid());
|
||||
ASSERT(v.IsError());
|
||||
ASSERT(!Value().IsError());
|
||||
RDUMP(GetErrorText(v));
|
||||
ASSERT(GetErrorText(v) == "error");
|
||||
|
||||
CheckValueMap();
|
||||
|
||||
CheckNumber<int>();
|
||||
CheckNumber<double>();
|
||||
CheckNumber<int64>();
|
||||
CheckNumber<bool>();
|
||||
|
||||
RLOG("------------------------------");
|
||||
RLOG("CheckString");
|
||||
CheckString();
|
||||
|
||||
RLOG("------------------------------");
|
||||
RLOG("CheckDateTime");
|
||||
CheckDateTime();
|
||||
|
||||
RLOG("------------------------------");
|
||||
RLOG("CheckValue");
|
||||
CheckRawValue();
|
||||
|
||||
RLOG("------------------------------");
|
||||
RLOG("CheckRawValue");
|
||||
CheckRawValue();
|
||||
|
||||
RLOG("------------------------------");
|
||||
RLOG("CheckRawPickValue");
|
||||
CheckRawPickValue();
|
||||
|
||||
RLOG("------------------------------");
|
||||
RLOG("CheckCreateRawValue");
|
||||
CheckCreateRawValue();
|
||||
|
||||
RLOG("------------------------------");
|
||||
RLOG("OtherChecks");
|
||||
OtherChecks();
|
||||
|
||||
RLOG("------------------------------");
|
||||
RLOG("######## Everything is OK");
|
||||
}
|
||||
#include "SvoValue.h"
|
||||
|
||||
GUI_APP_MAIN
|
||||
{
|
||||
StdLogSetup(LOG_COUT|LOG_FILE);
|
||||
|
||||
// temporary
|
||||
Value ist = Opt0();
|
||||
if(ist.Is<int>())
|
||||
RLOG("int");
|
||||
if(IsNumber(ist))
|
||||
RLOG("number");
|
||||
//
|
||||
|
||||
|
||||
Value v;
|
||||
ASSERT(v.IsVoid());
|
||||
|
||||
CheckType(Value());
|
||||
CheckType(String("ahoj"), true);
|
||||
CheckType(String('a', 20), true);
|
||||
CheckType(String('b', 200), true);
|
||||
CheckType(WString("ahoj"));
|
||||
CheckType(123);
|
||||
CheckType(123.0);
|
||||
CheckType(true);
|
||||
CheckType((int64)123, true);
|
||||
CheckType(Date(2012, 1, 1));
|
||||
CheckType(Time(2012, 1, 1, 15, 30), true);
|
||||
CheckType(Complex(1, 2), true);
|
||||
ValueArray va;
|
||||
va.Add(123);
|
||||
va.Add("ahoj");
|
||||
ASSERT(va.GetCount() == 2);
|
||||
ASSERT(va[0] == 123);
|
||||
ASSERT(va[1] == "ahoj");
|
||||
CheckType(va, true);
|
||||
ValueMap map;
|
||||
map.Add("1", 1);
|
||||
map.Add("2", 2);
|
||||
CheckType(map, true);
|
||||
CheckType(Point(20, 20), true);
|
||||
CheckType(Size(20, 20), true);
|
||||
CheckType(Rect(0, 0, 123, 123), true);
|
||||
CheckType(Point64(20, 20), true);
|
||||
CheckType(Size64(20, 20), true);
|
||||
CheckType(Rect64(0, 0, 123, 123), true);
|
||||
CheckType(Pointf(20, 20), true);
|
||||
CheckType(Sizef(20, 20), true);
|
||||
CheckType(Rectf(0, 0, 123, 123), true);
|
||||
CheckType(Blue(), true);
|
||||
Uuid uuid;
|
||||
uuid.a = 11234;
|
||||
uuid.b = 321;
|
||||
uuid.c = 1111;
|
||||
uuid.d = 19999;
|
||||
CheckType(uuid, true);
|
||||
|
||||
CheckType(Arial(50), true);
|
||||
|
||||
v = ErrorValue("error");
|
||||
CheckType(v, true);
|
||||
ASSERT(v.IsVoid());
|
||||
ASSERT(v.IsError());
|
||||
ASSERT(!Value().IsError());
|
||||
RDUMP(GetErrorText(v));
|
||||
ASSERT(GetErrorText(v) == "error");
|
||||
|
||||
CheckValueMap();
|
||||
|
||||
CheckNumber<int>();
|
||||
CheckNumber<double>();
|
||||
CheckNumber<int64>();
|
||||
CheckNumber<bool>();
|
||||
|
||||
RLOG("------------------------------");
|
||||
RLOG("CheckString");
|
||||
CheckString();
|
||||
|
||||
RLOG("------------------------------");
|
||||
RLOG("CheckDateTime");
|
||||
CheckDateTime();
|
||||
|
||||
RLOG("------------------------------");
|
||||
RLOG("CheckValue");
|
||||
CheckRawValue();
|
||||
|
||||
RLOG("------------------------------");
|
||||
RLOG("CheckRawValue");
|
||||
CheckRawValue();
|
||||
|
||||
RLOG("------------------------------");
|
||||
RLOG("CheckRawPickValue");
|
||||
CheckRawPickValue();
|
||||
|
||||
RLOG("------------------------------");
|
||||
RLOG("CheckCreateRawValue");
|
||||
CheckCreateRawValue();
|
||||
|
||||
RLOG("------------------------------");
|
||||
RLOG("OtherChecks");
|
||||
OtherChecks();
|
||||
|
||||
RLOG("------------------------------");
|
||||
RLOG("######## Everything is OK");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,181 +1,181 @@
|
|||
#ifndef _SvoValue_SvoValue_h_
|
||||
#define _SvoValue_SvoValue_h_
|
||||
|
||||
#include <Core/Core.h>
|
||||
|
||||
using namespace Upp;
|
||||
|
||||
void DumpNumber(const Value& v);
|
||||
Value Opt0();
|
||||
void Opt();
|
||||
void CheckString();
|
||||
void CheckDateTime();
|
||||
void CheckValueMap();
|
||||
void OtherChecks();
|
||||
void CheckRawPickValue();
|
||||
void CheckRawValue();
|
||||
void CheckCreateRawValue();
|
||||
|
||||
template <class T>
|
||||
void CheckNumber()
|
||||
{
|
||||
RLOG("========================================================");
|
||||
RLOG("CheckNumber " << typeid(T).name());
|
||||
Value v = (T)123;
|
||||
Value v2 = (T)0;
|
||||
Value vn = (T)Null;
|
||||
Value dv = 123.0;
|
||||
ASSERT(IsNumber(v));
|
||||
ASSERT(!IsError(v));
|
||||
ASSERT(!IsVoid(v));
|
||||
ASSERT(!IsString(v));
|
||||
ASSERT(!IsDateTime(v));
|
||||
ASSERT(vn.Is<bool>() || GetHashValue(v) == GetHashValue(dv));
|
||||
ASSERT(v != v2);
|
||||
ASSERT(v != vn);
|
||||
ASSERT(IsNull(vn) || vn.Is<bool>());
|
||||
DumpNumber(v);
|
||||
DumpNumber(vn);
|
||||
Value v1 = v;
|
||||
RDUMP(v1);
|
||||
RDUMP(v2);
|
||||
RDUMP(v1 != v2);
|
||||
ASSERT(v1 != v2);
|
||||
v2 = v1;
|
||||
RDUMP(v1);
|
||||
RDUMP(v2);
|
||||
RDUMP(v1 == v2);
|
||||
ASSERT(v1 == v2);
|
||||
Opt();
|
||||
}
|
||||
|
||||
template <class T>
|
||||
void CheckType(const T& x, bool checkhash = false)
|
||||
{
|
||||
RLOG("========================================================");
|
||||
RLOG("CheckType " << typeid(T).name() << " = " << x);
|
||||
String fn;
|
||||
Value vf;
|
||||
Value tt = x;
|
||||
bool isvoid = tt.IsVoid();
|
||||
if(!isvoid) {
|
||||
fn = ConfigFile(AsString(tt.GetType()) + ":" + AsString(x));
|
||||
if(FileExists(fn)) {
|
||||
LoadFromFile(vf, fn);
|
||||
if(IsValueMap(tt)) {
|
||||
RDUMP(ValueMap(vf));
|
||||
ASSERT(ValueMap(vf) == ValueMap(x));
|
||||
}
|
||||
else {
|
||||
RDUMP(vf.To<T>());
|
||||
ASSERT(vf.To<T>() == x);
|
||||
}
|
||||
}
|
||||
}
|
||||
Value v = x;
|
||||
RDUMP(v);
|
||||
ASSERT((T)v == x);
|
||||
ASSERT(isvoid ? v.IsVoid() : v.Is<T>());
|
||||
if(!isvoid) {
|
||||
StoreToFile(v, fn);
|
||||
RDUMP(GetValueTypeNo<T>());
|
||||
ASSERT(v.GetType() == GetValueTypeNo<T>());
|
||||
if(!tt.Is<ValueArray>() && !tt.Is<ValueMap>())
|
||||
ASSERT(v.To<T>() == x);
|
||||
ASSERT((T)(v) == x);
|
||||
if(!tt.Is<bool>() && !tt.Is<ValueArray>() && !tt.Is<ValueMap>()) {
|
||||
Value hh;
|
||||
for(int i = 0; i < 2; i++) {
|
||||
ASSERT(IsNull(hh.Get<T>()));
|
||||
ASSERT(IsNull((T)hh));
|
||||
hh = (int)Null;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(!vf.IsVoid())
|
||||
ASSERT(vf == v);
|
||||
String h = StoreAsString(v);
|
||||
Value vv;
|
||||
LoadFromString(vv, h);
|
||||
RDUMP(vv);
|
||||
ASSERT(vv == v);
|
||||
T xx = vv;
|
||||
RDUMP(xx);
|
||||
ASSERT(vv == v);
|
||||
|
||||
RDUMP(GetHashValue(v));
|
||||
RDUMP(GetHashValue(xx));
|
||||
ASSERT(!checkhash || GetHashValue(v) == GetHashValue(xx));
|
||||
|
||||
Value vn = (T)Null;
|
||||
ASSERT(IsNull(vn) || vn.Is<bool>());
|
||||
|
||||
DLOG("----------");
|
||||
RDUMP(v);
|
||||
String xml = StoreAsXML(v, "test");
|
||||
RDUMP(xml);
|
||||
vv = Null;
|
||||
LoadFromXML(vv, xml);
|
||||
RDUMP(vv);
|
||||
ASSERT(vv == v);
|
||||
|
||||
String json = StoreAsJson(v);
|
||||
RDUMP(json);
|
||||
vv = Null;
|
||||
LoadFromJson(vv, json);
|
||||
RDUMP(vv);
|
||||
ASSERT(vv == v);
|
||||
|
||||
if(!tt.Is<bool>()) {
|
||||
DLOG("----------");
|
||||
v = Null;
|
||||
|
||||
RDUMP(v);
|
||||
String data = StoreAsString(v);
|
||||
vv = x;
|
||||
LoadFromString(vv, data);
|
||||
RDUMP(vv);
|
||||
ASSERT(IsNull(vv));
|
||||
|
||||
RDUMP(v);
|
||||
xml = StoreAsXML(v, "test");
|
||||
RDUMP(xml);
|
||||
vv = x;
|
||||
LoadFromXML(vv, xml);
|
||||
RDUMP(vv);
|
||||
ASSERT(IsNull(vv));
|
||||
|
||||
json = StoreAsJson(v);
|
||||
RDUMP(json);
|
||||
vv = x;
|
||||
LoadFromJson(vv, json);
|
||||
RDUMP(vv);
|
||||
ASSERT(IsNull(vv));
|
||||
|
||||
DLOG("----------");
|
||||
T tx = Null;
|
||||
ASSERT(IsNull(tx));
|
||||
data = StoreAsString(tx);
|
||||
T ty = x;
|
||||
LoadFromString(ty, data);
|
||||
RDUMP(ty);
|
||||
ASSERT(IsNull(ty));
|
||||
|
||||
RDUMP(v);
|
||||
xml = StoreAsXML(tx, "test");
|
||||
RDUMP(xml);
|
||||
ty = x;
|
||||
LoadFromXML(ty, xml);
|
||||
RDUMP(ty);
|
||||
ASSERT(IsNull(ty));
|
||||
|
||||
json = StoreAsJson(tx);
|
||||
RDUMP(json);
|
||||
ty = x;
|
||||
LoadFromJson(ty, json);
|
||||
RDUMP(ty);
|
||||
ASSERT(IsNull(vv));
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
#ifndef _SvoValue_SvoValue_h_
|
||||
#define _SvoValue_SvoValue_h_
|
||||
|
||||
#include <CtrlLib/CtrlLib.h>
|
||||
|
||||
using namespace Upp;
|
||||
|
||||
void DumpNumber(const Value& v);
|
||||
Value Opt0();
|
||||
void Opt();
|
||||
void CheckString();
|
||||
void CheckDateTime();
|
||||
void CheckValueMap();
|
||||
void OtherChecks();
|
||||
void CheckRawPickValue();
|
||||
void CheckRawValue();
|
||||
void CheckCreateRawValue();
|
||||
|
||||
template <class T>
|
||||
void CheckNumber()
|
||||
{
|
||||
RLOG("========================================================");
|
||||
RLOG("CheckNumber " << typeid(T).name());
|
||||
Value v = (T)123;
|
||||
Value v2 = (T)0;
|
||||
Value vn = (T)Null;
|
||||
Value dv = 123.0;
|
||||
ASSERT(IsNumber(v));
|
||||
ASSERT(!IsError(v));
|
||||
ASSERT(!IsVoid(v));
|
||||
ASSERT(!IsString(v));
|
||||
ASSERT(!IsDateTime(v));
|
||||
ASSERT(vn.Is<bool>() || GetHashValue(v) == GetHashValue(dv));
|
||||
ASSERT(v != v2);
|
||||
ASSERT(v != vn);
|
||||
ASSERT(IsNull(vn) || vn.Is<bool>());
|
||||
DumpNumber(v);
|
||||
DumpNumber(vn);
|
||||
Value v1 = v;
|
||||
RDUMP(v1);
|
||||
RDUMP(v2);
|
||||
RDUMP(v1 != v2);
|
||||
ASSERT(v1 != v2);
|
||||
v2 = v1;
|
||||
RDUMP(v1);
|
||||
RDUMP(v2);
|
||||
RDUMP(v1 == v2);
|
||||
ASSERT(v1 == v2);
|
||||
Opt();
|
||||
}
|
||||
|
||||
template <class T>
|
||||
void CheckType(const T& x, bool checkhash = false)
|
||||
{
|
||||
RLOG("========================================================");
|
||||
RLOG("CheckType " << typeid(T).name() << " = " << x);
|
||||
String fn;
|
||||
Value vf;
|
||||
Value tt = x;
|
||||
bool isvoid = tt.IsVoid();
|
||||
if(!isvoid) {
|
||||
fn = ConfigFile(AsString(tt.GetType()) + ":" + AsString(x));
|
||||
if(FileExists(fn)) {
|
||||
LoadFromFile(vf, fn);
|
||||
if(IsValueMap(tt)) {
|
||||
RDUMP(ValueMap(vf));
|
||||
ASSERT(ValueMap(vf) == ValueMap(x));
|
||||
}
|
||||
else {
|
||||
RDUMP(vf.To<T>());
|
||||
ASSERT(vf.To<T>() == x);
|
||||
}
|
||||
}
|
||||
}
|
||||
Value v = x;
|
||||
RDUMP(v);
|
||||
ASSERT((T)v == x);
|
||||
ASSERT(isvoid ? v.IsVoid() : v.Is<T>());
|
||||
if(!isvoid) {
|
||||
StoreToFile(v, fn);
|
||||
RDUMP(GetValueTypeNo<T>());
|
||||
ASSERT(v.GetType() == GetValueTypeNo<T>());
|
||||
if(!tt.Is<ValueArray>() && !tt.Is<ValueMap>())
|
||||
ASSERT(v.To<T>() == x);
|
||||
ASSERT((T)(v) == x);
|
||||
if(!tt.Is<bool>() && !tt.Is<ValueArray>() && !tt.Is<ValueMap>()) {
|
||||
Value hh;
|
||||
for(int i = 0; i < 2; i++) {
|
||||
ASSERT(IsNull(hh.Get<T>()));
|
||||
ASSERT(IsNull((T)hh));
|
||||
hh = (int)Null;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(!vf.IsVoid())
|
||||
ASSERT(vf == v);
|
||||
String h = StoreAsString(v);
|
||||
Value vv;
|
||||
LoadFromString(vv, h);
|
||||
RDUMP(vv);
|
||||
ASSERT(vv == v);
|
||||
T xx = vv;
|
||||
RDUMP(xx);
|
||||
ASSERT(vv == v);
|
||||
|
||||
RDUMP(GetHashValue(v));
|
||||
RDUMP(GetHashValue(xx));
|
||||
ASSERT(!checkhash || GetHashValue(v) == GetHashValue(xx));
|
||||
|
||||
Value vn = (T)Null;
|
||||
ASSERT(IsNull(vn) || vn.Is<bool>());
|
||||
|
||||
DLOG("----------");
|
||||
RDUMP(v);
|
||||
String xml = StoreAsXML(v, "test");
|
||||
RDUMP(xml);
|
||||
vv = Null;
|
||||
LoadFromXML(vv, xml);
|
||||
RDUMP(vv);
|
||||
ASSERT(vv == v);
|
||||
|
||||
String json = StoreAsJson(v);
|
||||
RDUMP(json);
|
||||
vv = Null;
|
||||
LoadFromJson(vv, json);
|
||||
RDUMP(vv);
|
||||
ASSERT(vv == v);
|
||||
|
||||
if(!tt.Is<bool>()) {
|
||||
DLOG("----------");
|
||||
v = Null;
|
||||
|
||||
RDUMP(v);
|
||||
String data = StoreAsString(v);
|
||||
vv = x;
|
||||
LoadFromString(vv, data);
|
||||
RDUMP(vv);
|
||||
ASSERT(IsNull(vv));
|
||||
|
||||
RDUMP(v);
|
||||
xml = StoreAsXML(v, "test");
|
||||
RDUMP(xml);
|
||||
vv = x;
|
||||
LoadFromXML(vv, xml);
|
||||
RDUMP(vv);
|
||||
ASSERT(IsNull(vv));
|
||||
|
||||
json = StoreAsJson(v);
|
||||
RDUMP(json);
|
||||
vv = x;
|
||||
LoadFromJson(vv, json);
|
||||
RDUMP(vv);
|
||||
ASSERT(IsNull(vv));
|
||||
|
||||
DLOG("----------");
|
||||
T tx = Null;
|
||||
ASSERT(IsNull(tx));
|
||||
data = StoreAsString(tx);
|
||||
T ty = x;
|
||||
LoadFromString(ty, data);
|
||||
RDUMP(ty);
|
||||
ASSERT(IsNull(ty));
|
||||
|
||||
RDUMP(v);
|
||||
xml = StoreAsXML(tx, "test");
|
||||
RDUMP(xml);
|
||||
ty = x;
|
||||
LoadFromXML(ty, xml);
|
||||
RDUMP(ty);
|
||||
ASSERT(IsNull(ty));
|
||||
|
||||
json = StoreAsJson(tx);
|
||||
RDUMP(json);
|
||||
ty = x;
|
||||
LoadFromJson(ty, json);
|
||||
RDUMP(ty);
|
||||
ASSERT(IsNull(vv));
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -3,7 +3,8 @@ description "Value unit testing\377";
|
|||
optimize_speed;
|
||||
|
||||
uses
|
||||
Core;
|
||||
Core,
|
||||
CtrlLib;
|
||||
|
||||
file
|
||||
SvoValue.h,
|
||||
|
|
@ -13,5 +14,5 @@ file
|
|||
SvoValue.cpp optimize_speed;
|
||||
|
||||
mainconfig
|
||||
"" = "SSE2 SVO_VALUE";
|
||||
"" = "SSE2 SVO_VALUE GUI";
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
#ifndef _SvoValue_icpp_init_stub
|
||||
#define _SvoValue_icpp_init_stub
|
||||
#include "Core/init"
|
||||
#include "CtrlLib/init"
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue