master.py updated
grading.py added
One test case added: tests directory includes the input texts and output requirements, test_output directory includes sample outputs. Your outputs do not need to be the same as the outputs in the test_output directory, as long as they satisfy the output requirements specified in the tests directory.
For the meaning of the output requirements, you can guess or read the grading.py script. Basically, for each line in the output requirement, it (1) reads "count" lines from your output, (2) checks if they are identical, (3) checks if it includes everything in "mandatory", and (4) checks if it doesn't include anything not in "mandatory" or "optional".
Update:
More test cases are added. Please feel free to let me know if you think there is any mistake in the test cases.