all
This commit is contained in:
85
test.py
Normal file
85
test.py
Normal file
@@ -0,0 +1,85 @@
|
||||
|
||||
# one
|
||||
one = {
|
||||
'defs': [
|
||||
'int f(auto b){return 0;};',
|
||||
'int f(long b){return 0;};',
|
||||
'int f(void* b){return 0;};',
|
||||
'int f(){return 0;};',
|
||||
],
|
||||
'tests' : [
|
||||
'int A = f();',
|
||||
'int B = f(0);',
|
||||
'int C = f({});',
|
||||
'int D = f(nullptr);',
|
||||
], 'url': 'https://cppcon.digital-medium.co.uk/v3bqsv/'
|
||||
}
|
||||
|
||||
three = {
|
||||
'defs': [
|
||||
'int f(int b){return 0;}',
|
||||
'int f(int b=0){return 0;}',
|
||||
'int f(void* b){return 0;}',
|
||||
'int f(){return 0;}',
|
||||
'int f(long b){return 0;}',
|
||||
],
|
||||
|
||||
'tests': [
|
||||
'int A = f();',
|
||||
'int B = f(0);',
|
||||
'int C = f(1);',
|
||||
'int D = f({});',
|
||||
'int E = f(nullptr);',
|
||||
],
|
||||
'url': 'https://cppcon.digital-medium.co.uk/urea44/'
|
||||
}
|
||||
|
||||
four = {
|
||||
'defs': [
|
||||
'int f(int b){return 0;}',
|
||||
'int f(int b=0){return 0;}',
|
||||
'int f(void* b){return 0;}',
|
||||
'int f(){return 0;}',
|
||||
'int f(long b){return 0;}',
|
||||
],
|
||||
|
||||
'tests': [
|
||||
'int A = f();',
|
||||
'int B = f(0);',
|
||||
'int C = f(1);',
|
||||
'int D = f({});',
|
||||
'int E = f(nullptr);',
|
||||
],
|
||||
'url': 'https://cppcon.digital-medium.co.uk/j2hv4d/'
|
||||
}
|
||||
|
||||
|
||||
import subprocess
|
||||
import tempfile
|
||||
for a in [one, three, four]:
|
||||
print (a['url'])
|
||||
defs = a['defs']
|
||||
tests = a['tests']
|
||||
for i, d in enumerate(defs, start=1):
|
||||
buffer = d
|
||||
|
||||
sol = ''
|
||||
for test in tests:
|
||||
tbuffer = buffer + 'int main(){' + test + 'return 0;}'
|
||||
|
||||
with tempfile.NamedTemporaryFile(mode='w+', encoding='utf8', suffix='.cpp') as fp:
|
||||
fp.write(tbuffer)
|
||||
fp.flush()
|
||||
#print(subprocess.check_output(["cat", fp.name]))
|
||||
print(' ' + tbuffer, end="")
|
||||
try:
|
||||
subprocess.check_call(["clang++", "-std=c++20", fp.name])
|
||||
subprocess.check_call(['./a.out'])
|
||||
sol += test[4]
|
||||
except:
|
||||
print('XXX')
|
||||
continue
|
||||
print()
|
||||
print(str(i) + " " + sol)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user