diff --git a/joj3_config_generator/transformers/task.py b/joj3_config_generator/transformers/task.py index 6eebe69..0a04947 100644 --- a/joj3_config_generator/transformers/task.py +++ b/joj3_config_generator/transformers/task.py @@ -169,11 +169,17 @@ def fix_diff( valid_cases = ( (case, task_stage.cases[case]) for case in task_stage.cases - if case not in task_stage.skip and case in task_stage.cases + if case not in task_stage.skip ) testcases = get_testcases(task_root, task_path) - # TODO: better filter strategy - default_cases = sorted(testcases.difference(task_stage.cases)) + default_cases = sorted( + [ + case + for case in testcases + if any(case.endswith(other) for other in task_stage.cases) + ] + ) + print(default_cases) stage_cases = [] parser_cases = [] for case, case_stage in valid_cases: @@ -219,7 +225,6 @@ def fix_diff( parser_case = result.DiffCasesConfig( outputs=[ result.DiffOutputConfig( - # TODO: how to balance a good score strategy score=5, # default score file_name="stdout", answer_path=str(base_dir / f"{case}.out"), diff --git a/tests/convert/diff/task1/subtask1/task5.in b/tests/convert/diff/case9.in similarity index 100% rename from tests/convert/diff/task1/subtask1/task5.in rename to tests/convert/diff/case9.in diff --git a/tests/convert/diff/task1/subtask1/task5.out b/tests/convert/diff/case9.out similarity index 100% rename from tests/convert/diff/task1/subtask1/task5.out rename to tests/convert/diff/case9.out diff --git a/tests/convert/diff/task.json b/tests/convert/diff/task.json index 4bfc14b..a7d25c7 100644 --- a/tests/convert/diff/task.json +++ b/tests/convert/diff/task.json @@ -78,42 +78,56 @@ }, { "stdin": { - "src": "/home/tt/.config/joj/diff/case2.in" + "src": "/home/tt/.config/joj/diff/case9.in" + }, + "memoryLimit": 268435456 + }, + { + "stdin": { + "src": "/home/tt/.config/joj/diff/case11.in" + }, + "memoryLimit": 268435456 + }, + { + "stdin": { + "src": "/home/tt/.config/joj/diff/case10.in" + }, + "memoryLimit": 268435456 + }, + { + "stdin": { + "src": "/home/tt/.config/joj/diff/case5.in" + }, + "memoryLimit": 268435456 + }, + { + "stdin": { + "src": "/home/tt/.config/joj/diff/case0.in" } }, { "stdin": { - "src": "/home/tt/.config/joj/diff/case3.in" + "src": "/home/tt/.config/joj/diff/case1.in" } }, { "stdin": { - "src": "/home/tt/.config/joj/diff/task1/subtask1/task5.in" + "src": "/home/tt/.config/joj/diff/case9.in" } }, { "stdin": { - "src": "/home/tt/.config/joj/diff/task1/subtask1/task6.in" + "src": "/home/tt/.config/joj/diff/task1/case5.in" } }, { "stdin": { - "src": "/home/tt/.config/joj/diff/task1/task1.in" + "src": "/home/tt/.config/joj/diff/task1/subtask1/case10.in" } }, { "stdin": { - "src": "/home/tt/.config/joj/diff/task1/task2.in" - } - }, - { - "stdin": { - "src": "/home/tt/.config/joj/diff/task2/task3.in" - } - }, - { - "stdin": { - "src": "/home/tt/.config/joj/diff/task2/task4.in" + "src": "/home/tt/.config/joj/diff/task1/subtask1/case11.in" } } ] @@ -125,6 +139,78 @@ "with": { "name": "diff", "cases": [ + { + "outputs": [ + { + "score": 5, + "fileName": "stdout", + "answerPath": "/home/tt/.config/joj/diff/case0.out", + "forceQuitOnDiff": false, + "alwaysHide": false, + "compareSpace": false + } + ] + }, + { + "outputs": [ + { + "score": 123214122421, + "fileName": "stdout", + "answerPath": "/home/tt/.config/joj/diff/case1.out", + "forceQuitOnDiff": false, + "alwaysHide": false, + "compareSpace": false + } + ] + }, + { + "outputs": [ + { + "score": 1232131, + "fileName": "stdout", + "answerPath": "/home/tt/.config/joj/diff/case9.out", + "forceQuitOnDiff": false, + "alwaysHide": false, + "compareSpace": false + } + ] + }, + { + "outputs": [ + { + "score": 92321, + "fileName": "stdout", + "answerPath": "/home/tt/.config/joj/diff/case11.out", + "forceQuitOnDiff": false, + "alwaysHide": false, + "compareSpace": false + } + ] + }, + { + "outputs": [ + { + "score": 823131, + "fileName": "stdout", + "answerPath": "/home/tt/.config/joj/diff/case10.out", + "forceQuitOnDiff": false, + "alwaysHide": false, + "compareSpace": false + } + ] + }, + { + "outputs": [ + { + "score": 2590, + "fileName": "stdout", + "answerPath": "/home/tt/.config/joj/diff/case5.out", + "forceQuitOnDiff": false, + "alwaysHide": false, + "compareSpace": false + } + ] + }, { "outputs": [ { @@ -154,7 +240,7 @@ { "score": 5, "fileName": "stdout", - "answerPath": "/home/tt/.config/joj/diff/case2.out", + "answerPath": "/home/tt/.config/joj/diff/case9.out", "forceQuitOnDiff": false, "alwaysHide": false, "compareSpace": false @@ -166,7 +252,7 @@ { "score": 5, "fileName": "stdout", - "answerPath": "/home/tt/.config/joj/diff/case3.out", + "answerPath": "/home/tt/.config/joj/diff/task1/case5.out", "forceQuitOnDiff": false, "alwaysHide": false, "compareSpace": false @@ -178,7 +264,7 @@ { "score": 5, "fileName": "stdout", - "answerPath": "/home/tt/.config/joj/diff/task1/subtask1/task5.out", + "answerPath": "/home/tt/.config/joj/diff/task1/subtask1/case10.out", "forceQuitOnDiff": false, "alwaysHide": false, "compareSpace": false @@ -190,55 +276,7 @@ { "score": 5, "fileName": "stdout", - "answerPath": "/home/tt/.config/joj/diff/task1/subtask1/task6.out", - "forceQuitOnDiff": false, - "alwaysHide": false, - "compareSpace": false - } - ] - }, - { - "outputs": [ - { - "score": 5, - "fileName": "stdout", - "answerPath": "/home/tt/.config/joj/diff/task1/task1.out", - "forceQuitOnDiff": false, - "alwaysHide": false, - "compareSpace": false - } - ] - }, - { - "outputs": [ - { - "score": 5, - "fileName": "stdout", - "answerPath": "/home/tt/.config/joj/diff/task1/task2.out", - "forceQuitOnDiff": false, - "alwaysHide": false, - "compareSpace": false - } - ] - }, - { - "outputs": [ - { - "score": 5, - "fileName": "stdout", - "answerPath": "/home/tt/.config/joj/diff/task2/task3.out", - "forceQuitOnDiff": false, - "alwaysHide": false, - "compareSpace": false - } - ] - }, - { - "outputs": [ - { - "score": 5, - "fileName": "stdout", - "answerPath": "/home/tt/.config/joj/diff/task2/task4.out", + "answerPath": "/home/tt/.config/joj/diff/task1/subtask1/case11.out", "forceQuitOnDiff": false, "alwaysHide": false, "compareSpace": false diff --git a/tests/convert/diff/task.toml b/tests/convert/diff/task.toml index abdd10c..f4f283d 100644 --- a/tests/convert/diff/task.toml +++ b/tests/convert/diff/task.toml @@ -23,10 +23,18 @@ case0.diff.output.ignore_spaces = true #case0.command = "./h7/build/ex2" case0.in = "case0.in" -case1.diff.output.score = 5 +case1.diff.output.score = 123214122421 case1.limit.cpu = "2s" case1.limit.mem = "4m" case1.diff.output.ignore_spaces = true #case1.limit.stdout = 8 #case1.command = "./h7/build/ex2" case1.in = "case1.in" + +case9.diff.output.score = 1232131 + +case11.diff.output.score = 92321 + +case10.diff.output.score = 823131 + +case5.diff.output.score = 2590 diff --git a/tests/convert/diff/task1/subtask1/task6.in b/tests/convert/diff/task1/case4.in similarity index 100% rename from tests/convert/diff/task1/subtask1/task6.in rename to tests/convert/diff/task1/case4.in diff --git a/tests/convert/diff/task1/subtask1/task6.out b/tests/convert/diff/task1/case4.out similarity index 100% rename from tests/convert/diff/task1/subtask1/task6.out rename to tests/convert/diff/task1/case4.out diff --git a/tests/convert/diff/task1/task1.in b/tests/convert/diff/task1/case5.in similarity index 100% rename from tests/convert/diff/task1/task1.in rename to tests/convert/diff/task1/case5.in diff --git a/tests/convert/diff/task1/task1.out b/tests/convert/diff/task1/case5.out similarity index 100% rename from tests/convert/diff/task1/task1.out rename to tests/convert/diff/task1/case5.out diff --git a/tests/convert/diff/task1/task2.in b/tests/convert/diff/task1/subtask1/case10.in similarity index 100% rename from tests/convert/diff/task1/task2.in rename to tests/convert/diff/task1/subtask1/case10.in diff --git a/tests/convert/diff/task1/task2.out b/tests/convert/diff/task1/subtask1/case10.out similarity index 100% rename from tests/convert/diff/task1/task2.out rename to tests/convert/diff/task1/subtask1/case10.out diff --git a/tests/convert/diff/task2/task3.in b/tests/convert/diff/task1/subtask1/case11.in similarity index 100% rename from tests/convert/diff/task2/task3.in rename to tests/convert/diff/task1/subtask1/case11.in diff --git a/tests/convert/diff/task2/task3.out b/tests/convert/diff/task1/subtask1/case11.out similarity index 100% rename from tests/convert/diff/task2/task3.out rename to tests/convert/diff/task1/subtask1/case11.out diff --git a/tests/convert/diff/task2/task4.in b/tests/convert/diff/task2/case6.in similarity index 100% rename from tests/convert/diff/task2/task4.in rename to tests/convert/diff/task2/case6.in diff --git a/tests/convert/diff/task2/task4.out b/tests/convert/diff/task2/case6.out similarity index 100% rename from tests/convert/diff/task2/task4.out rename to tests/convert/diff/task2/case6.out diff --git a/tests/convert/diff/task2/case7.in b/tests/convert/diff/task2/case7.in new file mode 100644 index 0000000..e69de29 diff --git a/tests/convert/diff/task2/case8.out b/tests/convert/diff/task2/case8.out new file mode 100644 index 0000000..e69de29