.autotest

git-svn-id: svn://ultimatepp.org/upp/trunk@9770 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
cxl 2016-05-03 06:49:41 +00:00
parent f59f7b19bd
commit a1d0d63e52
2 changed files with 40 additions and 46 deletions

View file

@ -6,6 +6,8 @@ using namespace Upp;
CONSOLE_APP_MAIN
{
StdLogSetup(LOG_COUT|LOG_FILE);
String orig = LoadDataFile("X11App.cpp");
ASSERT(orig.GetCount());
{
@ -24,4 +26,6 @@ CONSOLE_APP_MAIN
{
ASSERT(LZMADecompress(LoadDataFile("X11App.cpp.lzma")) == orig);
}
LOG("================== OK");
}

View file

@ -19,49 +19,42 @@ void Benchmark();
void Check(int N, int M)
{
LOG("LESS");
for(int pass = 0; pass < 2; pass++) {
int i;
Vector<String> k;
Vector<int> v;
StableSort(k);
LOG("Testing " << N << ' ' << M);
for(i = 0; i < N; i++) {
k.Add(AsString(rand() % M));
v.Add(i);
}
LOG(" GetStableSortOrder...");
Vector<int> o = pass ? GetStableSortOrderCmp(k) : GetStableSortOrder(k);
i = 0;
while(i < o.GetCount()) {
LLOG(k[o[i]].v);
if(i > 0)
ASSERT(k[o[i]] >= k[o[i - 1]]);
int j = i;
while(++j < o.GetCount() && k[o[j]] == k[o[i]])
ASSERT(o[j] > o[j - 1]);
i = j;
}
LOG(" StableIndexSort...");
if(pass)
StableIndexSortCmp(k, v);
else
StableIndexSort(k, v);
LOG(" Testing...");
for(i = 0; i < k.GetCount(); i++)
LLOG(k[i] << ' ' << v[i]);
LLOG("----------");
i = 0;
while(i < k.GetCount()) {
LLOG(k[i] << ' ' << v[i]);
if(i > 0)
ASSERT(k[i] >= k[i - 1]);
int j = i;
while(++j < k.GetCount() && k[j] == k[i])
ASSERT(v[j] > v[j - 1]);
i = j;
}
if(pass == 0)
LOG("CMP");
int i;
Vector<String> k;
Vector<int> v;
StableSort(k);
LOG("Testing " << N << ' ' << M);
for(i = 0; i < N; i++) {
k.Add(AsString(rand() % M));
v.Add(i);
}
LOG(" GetStableSortOrder...");
Vector<int> o = GetStableSortOrder(k);
i = 0;
while(i < o.GetCount()) {
LLOG(k[o[i]].v);
if(i > 0)
ASSERT(k[o[i]] >= k[o[i - 1]]);
int j = i;
while(++j < o.GetCount() && k[o[j]] == k[o[i]])
ASSERT(o[j] > o[j - 1]);
i = j;
}
LOG(" StableIndexSort...");
StableIndexSort(k, v);
LOG(" Testing...");
for(i = 0; i < k.GetCount(); i++)
LLOG(k[i] << ' ' << v[i]);
LLOG("----------");
i = 0;
while(i < k.GetCount()) {
LLOG(k[i] << ' ' << v[i]);
if(i > 0)
ASSERT(k[i] >= k[i - 1]);
int j = i;
while(++j < k.GetCount() && k[j] == k[i])
ASSERT(v[j] > v[j - 1]);
i = j;
}
}
@ -89,7 +82,4 @@ void CompileCheck()
StableIndexSort(x, x);
StableIndexSort2(x, x, x);
StableIndexSort3(x, x, x, x);
StableIndexSortCmp(x, x);
StableIndexSort2Cmp(x, x, x);
StableIndexSort3Cmp(x, x, x, x);
}