mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-05-15 14:16:07 -06:00
.autotest
git-svn-id: svn://ultimatepp.org/upp/trunk@9770 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
parent
f59f7b19bd
commit
a1d0d63e52
2 changed files with 40 additions and 46 deletions
|
|
@ -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");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue