Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import subprocess
- import os.path
- import pickle
- def test_task(tests, task_name, rule):
- scores = []
- for test in tests:
- task = subprocess.Popen(["python", task_name], stdin=subprocess.PIPE, stdout=subprocess.PIPE)
- res, err = task.communicate(test[0])
- if rule == "eq":
- if res.decode("utf-8").rstrip() == test[1]:
- scores.append(4)
- else:
- scores.append(0)
- elif "sort":
- res_arr = res.decode("utf-8").rstrip().split(" ")
- res_arr.sort()
- test_arr = test[1].split(" ")
- test_arr.sort()
- if res_arr == test_arr:
- scores.append(4)
- else:
- scores.append(0)
- return scores
- if __name__ == "__main__":
- with open("test_cases.pickle", "rb") as f:
- test_cases = pickle.load(f)
- total = 0
- for i in range(0, 5):
- file_task = "task{i}.py".format(i=i+1)
- if os.path.exists(file_task) and len(test_cases) > i:
- res = test_task(test_cases[i], file_task, "eq" if i != 4 else "sort")
- total += sum(res)
- print("{task}: {res}. Total: {sum}".format(task=file_task, res=res, sum=sum(res)))
- else:
- print("{task} not found".format(task=file_task))
- print("Total: {total}".format(total=total))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement