added for loop to test trivial cases and a comically slow python script to generate all potential test cases up to some number of ops

This commit is contained in:
Pagwin 2024-12-11 15:04:16 -05:00
parent ae9d9cd27d
commit d88ba5accc
No known key found for this signature in database
GPG key ID: 81137023740CA260
3 changed files with 230 additions and 0 deletions

1
.gitignore vendored
View file

@ -3,3 +3,4 @@ s
t
a.out
.clangd
tests

37
gen_track_cases.py Normal file
View file

@ -0,0 +1,37 @@
import itertools
from enum import Enum
class Operation(Enum):
SUB = 0
ADD = 1
def __str__(self):
if self == Operation.SUB:
return "[]"
elif self == Operation.ADD:
return "()"
else:
raise Exception("unreachable")
def __radd__(self, num):
if self == Operation.SUB:
return num - 1
elif self == Operation.ADD:
return num + 1
else:
raise Exception("unreachable")
track = set()
for i in range(13):
ops_iter = itertools.combinations([Operation.ADD] * i + [Operation.SUB] * i, i)
for ops in ops_iter:
correct = sum(ops)
track.add(f"""i = a{"".join(str(op) for op in ops)};
assert(i == {correct});""")
with open("tests", "w+") as out:
for test in sorted(track):
print(test, file=out)

192
track.cpp
View file

@ -31,9 +31,201 @@ int main(void) {
assert(a[] == -1);
assert(a[]() == 0);
assert(a[]()() == 1);
for (long long j = 1; j < 100; j++) {
A a2;
A a3;
for (long long k = 0; k < j; k++) {
assert(a2 == k);
assert(a3 == -k);
a2 = a2();
a3 = a3[];
}
assert(a2 == j);
assert(a3 == -j);
}
int i = a;
assert(i == 0);
i = a()()()()()()()()()()()();
assert(i == 12);
i = a()()()()()()()()()()();
assert(i == 11);
i = a()()()()()()()()()()()[];
assert(i == 10);
i = a()()()()()()()()()();
assert(i == 10);
i = a()()()()()()()()()()[];
assert(i == 9);
i = a()()()()()()()()()()[][];
assert(i == 8);
i = a()()()()()()()()();
assert(i == 9);
i = a()()()()()()()()()[];
assert(i == 8);
i = a()()()()()()()()()[][];
assert(i == 7);
i = a()()()()()()()()()[][][];
assert(i == 6);
i = a()()()()()()()();
assert(i == 8);
i = a()()()()()()()()[];
assert(i == 7);
i = a()()()()()()()()[][];
assert(i == 6);
i = a()()()()()()()()[][][];
assert(i == 5);
i = a()()()()()()()()[][][][];
assert(i == 4);
i = a()()()()()()();
assert(i == 7);
i = a()()()()()()()[];
assert(i == 6);
i = a()()()()()()()[][];
assert(i == 5);
i = a()()()()()()()[][][];
assert(i == 4);
i = a()()()()()()()[][][][];
assert(i == 3);
i = a()()()()()()()[][][][][];
assert(i == 2);
i = a()()()()()();
assert(i == 6);
i = a()()()()()()[];
assert(i == 5);
i = a()()()()()()[][];
assert(i == 4);
i = a()()()()()()[][][];
assert(i == 3);
i = a()()()()()()[][][][];
assert(i == 2);
i = a()()()()()()[][][][][];
assert(i == 1);
i = a()()()()()()[][][][][][];
assert(i == 0);
i = a()()()()();
assert(i == 5);
i = a()()()()()[];
assert(i == 4);
i = a()()()()()[][];
assert(i == 3);
i = a()()()()()[][][];
assert(i == 2);
i = a()()()()()[][][][];
assert(i == 1);
i = a()()()()()[][][][][];
assert(i == 0);
i = a()()()()()[][][][][][];
assert(i == -1);
i = a()()()()()[][][][][][][];
assert(i == -2);
i = a()()()();
assert(i == 4);
i = a()()()()[];
assert(i == 3);
i = a()()()()[][];
assert(i == 2);
i = a()()()()[][][];
assert(i == 1);
i = a()()()()[][][][];
assert(i == 0);
i = a()()()()[][][][][];
assert(i == -1);
i = a()()()()[][][][][][];
assert(i == -2);
i = a()()()()[][][][][][][];
assert(i == -3);
i = a()()()()[][][][][][][][];
assert(i == -4);
i = a()()();
assert(i == 3);
i = a()()()[];
assert(i == 2);
i = a()()()[][];
assert(i == 1);
i = a()()()[][][];
assert(i == 0);
i = a()()()[][][][];
assert(i == -1);
i = a()()()[][][][][];
assert(i == -2);
i = a()()()[][][][][][];
assert(i == -3);
i = a()()()[][][][][][][];
assert(i == -4);
i = a()()()[][][][][][][][];
assert(i == -5);
i = a()()()[][][][][][][][][];
assert(i == -6);
i = a()();
assert(i == 2);
i = a()()[];
assert(i == 1);
i = a()()[][];
assert(i == 0);
i = a()()[][][];
assert(i == -1);
i = a()()[][][][];
assert(i == -2);
i = a()()[][][][][];
assert(i == -3);
i = a()()[][][][][][];
assert(i == -4);
i = a()()[][][][][][][];
assert(i == -5);
i = a()()[][][][][][][][];
assert(i == -6);
i = a()()[][][][][][][][][];
assert(i == -7);
i = a()()[][][][][][][][][][];
assert(i == -8);
i = a();
assert(i == 1);
i = a()[];
assert(i == 0);
i = a()[][];
assert(i == -1);
i = a()[][][];
assert(i == -2);
i = a()[][][][];
assert(i == -3);
i = a()[][][][][];
assert(i == -4);
i = a()[][][][][][];
assert(i == -5);
i = a()[][][][][][][];
assert(i == -6);
i = a()[][][][][][][][];
assert(i == -7);
i = a()[][][][][][][][][];
assert(i == -8);
i = a()[][][][][][][][][][];
assert(i == -9);
i = a()[][][][][][][][][][][];
assert(i == -10);
i = a;
assert(i == 0);
i = a[];
assert(i == -1);
i = a[][];
assert(i == -2);
i = a[][][];
assert(i == -3);
i = a[][][][];
assert(i == -4);
i = a[][][][][];
assert(i == -5);
i = a[][][][][][];
assert(i == -6);
i = a[][][][][][][];
assert(i == -7);
i = a[][][][][][][][];
assert(i == -8);
i = a[][][][][][][][][];
assert(i == -9);
i = a[][][][][][][][][][];
assert(i == -10);
i = a[][][][][][][][][][][];
assert(i == -11);
i = a[][][][][][][][][][][][];
assert(i == -12);
return 0;
}