ultimatepp/autotest/Convert/Convert.cpp
cxl a788390fc7 .autotest
git-svn-id: svn://ultimatepp.org/upp/trunk@16007 f0d560ea-af0d-0410-9eb7-867de7ffcac7
2021-06-26 19:17:24 +00:00

125 lines
3 KiB
C++

#include <Core/Core.h>
using namespace Upp;
void Test(Convert& cv, const char *s, Value res)
{
Value v = cv.Scan(s);
LOG(s << ": " << v);
if(IsError(res))
ASSERT(IsError(v));
else
if(IsNumber(v)) {
double x = res;
double y = v;
if(y == 0)
ASSERT(x == 0);
else
ASSERT(abs((x - y) / x) < 0.00000000000001);
}
else
ASSERT(res == v);
}
CONSOLE_APP_MAIN
{
StdLogSetup(LOG_FILE|LOG_COUT);
SetLanguage(LNG_('C','S','C','Z'));
ConvertTime cv;
DUMP(cv.Format(Date(2013, 1, 2)));
ASSERT(cv.Format(Date(2013, 1, 2)) == "02.01.2013");
DUMP(cv.Format(Time(2013, 1, 2)));
ASSERT(cv.Format(Time(2013, 1, 2)) == "02.01.2013");
DUMP(cv.Format(Time(2013, 1, 2, 11, 12, 13)));
ASSERT(cv.Format(Time(2013, 1, 2, 11, 12, 13)) == "02.01.2013 11:12:13");
cv.TimeAlways();
DUMP(cv.Format(Date(2013, 1, 2)));
ASSERT(cv.Format(Date(2013, 1, 2)) == "02.01.2013 00:00:00");
DUMP(cv.Format(Time(2013, 1, 2, 11, 12, 13)));
ASSERT(cv.Format(Time(2013, 1, 2, 11, 12, 13)) == "02.01.2013 11:12:13");
DUMP(cv.Scan("15.6.2010"));
ASSERT(cv.Scan("15.6.2010") == Time(2010, 6, 15, 0, 0, 0));
cv.DayEnd();
DUMP(cv.Scan("15.6.2010"));
ASSERT(cv.Scan("15.6.2010") == Time(2010, 6, 15, 23, 59, 59));
ConvertDouble d;
DUMP(d.Scan("12-12"));
ASSERT(IsError(d.Scan("12-12")));
Test(d, "12-12", ErrorValue());
Test(d, "12+12", ErrorValue());
Test(d, "12.-12", ErrorValue());
Test(d, "12.+12", ErrorValue());
Test(d, "a", ErrorValue());
Test(d, " ", ErrorValue());
Test(d, "123 ", 123);
Test(d, "0", 0);
Test(d, "123", 123);
Test(d, "+123", 123);
Test(d, "-123", -123);
Test(d, "1.1", 1.1);
Test(d, "+1.1", 1.1);
Test(d, "-1.1", -1.1);
Test(d, "1.1e10", 1.1e10);
Test(d, "+1.1e10", 1.1e10);
Test(d, "-1.1e10", -1.1e10);
Test(d, "1.1e+10", 1.1e10);
Test(d, "+1.1e+10", 1.1e10);
Test(d, "-1.1e+10", -1.1e10);
Test(d, "1.1e-10", 1.1e-10);
Test(d, "+1.1e-10", 1.1e-10);
Test(d, "-1.1e-10", -1.1e-10);
Test(d, "1.1E10", 1.1E10);
Test(d, "+1.1E10", 1.1E10);
Test(d, "-1.1E10", -1.1E10);
Test(d, "1.1E+10", 1.1E10);
Test(d, "+1.1E+10", 1.1E10);
Test(d, "-1.1E+10", -1.1E10);
Test(d, "1.1E-10", 1.1E-10);
Test(d, "+1.1E-10", 1.1E-10);
Test(d, "-1.1E-10", -1.1E-10);
ConvertInt x;
Test(x, "12", 12);
Test(x, "-12", -12);
Test(x, "12-12", ErrorValue());
Test(x, "12+12", ErrorValue());
Test(x, "12.-12", ErrorValue());
Test(x, "12.+12", ErrorValue());
Test(x, "a", ErrorValue());
Test(x, " ", ErrorValue());
ConvertInt64 xx;
Test(xx, "12", 12);
Test(xx, "-12", -12);
Test(xx, "12-12", ErrorValue());
Test(xx, "12+12", ErrorValue());
Test(xx, "12.-12", ErrorValue());
Test(xx, "12.+12", ErrorValue());
Test(xx, "a", ErrorValue());
Test(xx, " ", ErrorValue());
ASSERT(StrDbl("123xxx") == 123);
ASSERT(StrInt("123xxx") == 123);
ConvertDouble dd;
dd.Pattern("%2.!n EUR");
Test(dd, "123 EUR", 123);
LOG("=========== OK");
}