mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-05-21 06:45:39 -06:00
.upptst
git-svn-id: svn://ultimatepp.org/upp/trunk@5473 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
parent
c278134ff6
commit
857632bb23
7 changed files with 364 additions and 362 deletions
4
upptst/BiVector/init
Normal file
4
upptst/BiVector/init
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
#ifndef _BiVector_icpp_init_stub
|
||||
#define _BiVector_icpp_init_stub
|
||||
#include "Core/init"
|
||||
#endif
|
||||
|
|
@ -1,8 +1,9 @@
|
|||
uses
|
||||
Core;
|
||||
|
||||
file
|
||||
main.cpp;
|
||||
|
||||
mainconfig
|
||||
"" = "";
|
||||
uses
|
||||
Core;
|
||||
|
||||
file
|
||||
main.cpp;
|
||||
|
||||
mainconfig
|
||||
"" = "";
|
||||
|
||||
|
|
|
|||
|
|
@ -1,27 +1,27 @@
|
|||
#include <Core/Core.h>
|
||||
#include <Plugin/Pcre/Pcre.h>
|
||||
|
||||
using namespace Upp;
|
||||
|
||||
CONSOLE_APP_MAIN
|
||||
{
|
||||
RegExp r0("(\\w+)\\s(\\w+)\\s(\\w+)");
|
||||
if(r0.Match("one two three"))
|
||||
{
|
||||
for(int i = 0; i < r0.GetCount(); i++)
|
||||
Cout() << r0[i] << '\n';
|
||||
} else if(r0.IsError())
|
||||
Cout() << r0.GetError() << '\n';
|
||||
|
||||
Cout() << "------------------------------\n";
|
||||
|
||||
RegExp r1("(\\w+)", RegExp::UNICODE);
|
||||
int i = 0;
|
||||
while(r1.GlobalMatch("hello 4 ho 55 uuu iii pp 99 baby too swistak"))
|
||||
{
|
||||
for(int i = 0; i < r1.GetCount(); i++)
|
||||
Cout() << r1[i] << '\n';
|
||||
}
|
||||
if(r1.IsError())
|
||||
Cout() << r1.GetError() << '\n';
|
||||
}
|
||||
#include <Core/Core.h>
|
||||
#include <plugin/pcre/Pcre.h>
|
||||
|
||||
using namespace Upp;
|
||||
|
||||
CONSOLE_APP_MAIN
|
||||
{
|
||||
RegExp r0("(\\w+)\\s(\\w+)\\s(\\w+)");
|
||||
if(r0.Match("one two three"))
|
||||
{
|
||||
for(int i = 0; i < r0.GetCount(); i++)
|
||||
Cout() << r0[i] << '\n';
|
||||
} else if(r0.IsError())
|
||||
Cout() << r0.GetError() << '\n';
|
||||
|
||||
Cout() << "------------------------------\n";
|
||||
|
||||
RegExp r1("(\\w+)", RegExp::UNICODE);
|
||||
int i = 0;
|
||||
while(r1.GlobalMatch("hello 4 ho 55 uuu iii pp 99 baby too swistak"))
|
||||
{
|
||||
for(int i = 0; i < r1.GetCount(); i++)
|
||||
Cout() << r1[i] << '\n';
|
||||
}
|
||||
if(r1.IsError())
|
||||
Cout() << r1.GetError() << '\n';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,124 +1,124 @@
|
|||
#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).Bold().Strikeout(), true);
|
||||
|
||||
{
|
||||
DrawingDraw g(100, 100);
|
||||
g.DrawText(0, 0, "Hello world");
|
||||
Drawing x = g.GetResult();
|
||||
CheckType(x);
|
||||
}
|
||||
|
||||
{
|
||||
PaintingPainter g(100, 100);
|
||||
g.DrawText(0, 0, "Hello world");
|
||||
Painting x = g.GetResult();
|
||||
CheckType(x);
|
||||
}
|
||||
|
||||
CheckType(CtrlImg::save());
|
||||
|
||||
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");
|
||||
|
||||
PromptOK("OK");
|
||||
}
|
||||
#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);
|
||||
|
||||
CheckType(Arial(50).Bold().Strikeout(), true);
|
||||
|
||||
{
|
||||
DrawingDraw g(100, 100);
|
||||
g.DrawText(0, 0, "Hello world");
|
||||
Drawing x = g.GetResult();
|
||||
CheckType(x);
|
||||
}
|
||||
|
||||
{
|
||||
PaintingPainter g(100, 100);
|
||||
g.DrawText(0, 0, "Hello world");
|
||||
Painting x = g.GetResult();
|
||||
CheckType(x);
|
||||
}
|
||||
|
||||
{
|
||||
CheckType(CreateImage(Size(20, 20), Blue));
|
||||
}
|
||||
|
||||
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,199 +1,198 @@
|
|||
#ifndef _SvoValue_SvoValue_h_
|
||||
#define _SvoValue_SvoValue_h_
|
||||
|
||||
#include <CtrlLib/CtrlLib.h>
|
||||
#include <Painter/Painter.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));
|
||||
|
||||
RDUMP(v);
|
||||
tx = x;
|
||||
xml = StoreAsXML(tx, "test");
|
||||
RDUMP(xml);
|
||||
ty = Null;
|
||||
LoadFromXML(ty, xml);
|
||||
RDUMP(ty);
|
||||
ASSERT(StoreAsXML(tx, "X") == StoreAsXML(x, "X"));
|
||||
|
||||
json = StoreAsJson(tx);
|
||||
RDUMP(json);
|
||||
ty = Null;
|
||||
LoadFromJson(ty, json);
|
||||
RDUMP(ty);
|
||||
ASSERT(StoreAsJson(tx) == StoreAsJson(x));
|
||||
ASSERT(IsNull(vv));
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
#ifndef _SvoValue_SvoValue_h_
|
||||
#define _SvoValue_SvoValue_h_
|
||||
|
||||
#include <Painter/Painter.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));
|
||||
|
||||
RDUMP(v);
|
||||
tx = x;
|
||||
xml = StoreAsXML(tx, "test");
|
||||
RDUMP(xml);
|
||||
ty = Null;
|
||||
LoadFromXML(ty, xml);
|
||||
RDUMP(ty);
|
||||
ASSERT(StoreAsXML(tx, "X") == StoreAsXML(x, "X"));
|
||||
|
||||
json = StoreAsJson(tx);
|
||||
RDUMP(json);
|
||||
ty = Null;
|
||||
LoadFromJson(ty, json);
|
||||
RDUMP(ty);
|
||||
ASSERT(StoreAsJson(tx) == StoreAsJson(x));
|
||||
ASSERT(IsNull(vv));
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ optimize_speed;
|
|||
|
||||
uses
|
||||
Core,
|
||||
CtrlLib,
|
||||
Painter,
|
||||
Painter;
|
||||
|
||||
file
|
||||
|
|
@ -15,6 +15,5 @@ file
|
|||
SvoValue.cpp optimize_speed;
|
||||
|
||||
mainconfig
|
||||
"" = "SSE2 SVO_VALUE GUI",
|
||||
"" = "SSE2 OLD_VALUE GUI";
|
||||
"" = "SSE2";
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
#ifndef _SvoValue_icpp_init_stub
|
||||
#define _SvoValue_icpp_init_stub
|
||||
#include "Core/init"
|
||||
#include "CtrlLib/init"
|
||||
#include "Painter/init"
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue