git-svn-id: svn://ultimatepp.org/upp/trunk@5473 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
cxl 2012-10-24 19:35:59 +00:00
parent c278134ff6
commit 857632bb23
7 changed files with 364 additions and 362 deletions

4
upptst/BiVector/init Normal file
View file

@ -0,0 +1,4 @@
#ifndef _BiVector_icpp_init_stub
#define _BiVector_icpp_init_stub
#include "Core/init"
#endif

View file

@ -1,8 +1,9 @@
uses
Core;
file
main.cpp;
mainconfig
"" = "";
uses
Core;
file
main.cpp;
mainconfig
"" = "";

View file

@ -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';
}

View file

@ -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");
}

View file

@ -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

View file

@ -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";

View file

@ -1,6 +1,5 @@
#ifndef _SvoValue_icpp_init_stub
#define _SvoValue_icpp_init_stub
#include "Core/init"
#include "CtrlLib/init"
#include "Painter/init"
#endif