Warning: session_start(): open(/var/lib/php/sessions/sess_9vu3arpmkpalbus2ua8jrgj7ie, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
//set flag LogNArray_debug.
svoid test_LogNArray(O... _) {
// Simple test
optPar int n = 1000;
new LogNArray l;
assertEqualsVerbose(0, l.size());
for (int i = -1; i < 2; i++) { int _i = i ; assertException(r { l.get(_i) }); }
l.add("hello");
assertEqualsVerbose(1, l.size());
assertException(r { l.get(-1) });
assertEqualsVerbose("hello", l.get(0));
assertException(r { l.get(1) });
Random random = predictableRandom();
// n random insertions, complete check
new LS refl;
l.clear();
repeat n {
int i = random(random, l(refl)+1);
S id = randomID(random);
print("add " + i + " " + id);
refl.add(i, id);
l.add(i, id);
assertEquals(l(l), l(refl));
}
assertEqualsVerbose(l(l), l(refl));
for i over refl:
assertEquals(l.get(i), refl.get(i));
// overwriting
repeat n {
int i = random(random, l(refl));
S id = randomID(random);
print("set " + i + " " + id);
assertEquals(l.set(i, id), refl.set(i, id));
assertEquals(l(l), l(refl));
}
// n random deletions, check after each turn
repeat n {
int i = random(random, l(refl));
print("remove " + i);
assertEquals(l.remove(i), refl.remove(i));
assertEqualsVerbose(l(l), l(refl));
for j over refl:
assertEquals(l.get(j), refl.get(j));
}
infoBox("LogNArray works (tested up to size " + n + ")! :)");
}