From ca63a94238850af2346cd85d3500340de269d1bf Mon Sep 17 00:00:00 2001 From: jon-lee Date: Thu, 22 May 2025 14:28:35 +0800 Subject: [PATCH] feat: add default score for diff --- joj3_config_generator/models/const.py | 1 - joj3_config_generator/models/task.py | 1 + joj3_config_generator/transformers/task.py | 12 +++++++++++- tests/convert/diff/task.json | 12 ++++++------ tests/convert/diff/task.toml | 2 ++ 5 files changed, 20 insertions(+), 8 deletions(-) diff --git a/joj3_config_generator/models/const.py b/joj3_config_generator/models/const.py index 33de35b..95a6706 100644 --- a/joj3_config_generator/models/const.py +++ b/joj3_config_generator/models/const.py @@ -5,7 +5,6 @@ from joj3_config_generator.models.common import Memory, Time DEFAULT_CPU_LIMIT = Time("1s") DEFAULT_MEMORY_LIMIT = Memory("256m") DEFAULT_FILE_LIMIT = Memory("32m") -DEFAULT_CASE_SCORE = 5 JOJ3_CONFIG_ROOT = Path("/home/tt/.config/joj") TEAPOT_CONFIG_ROOT = Path("/home/tt/.config/teapot") diff --git a/joj3_config_generator/models/task.py b/joj3_config_generator/models/task.py index 4e99358..1a3d332 100644 --- a/joj3_config_generator/models/task.py +++ b/joj3_config_generator/models/task.py @@ -51,6 +51,7 @@ class Outputs(BaseModel): class ParserDiff(BaseModel): output: Outputs = Outputs() + default_score: int = 5 class Files(BaseModel): diff --git a/joj3_config_generator/transformers/task.py b/joj3_config_generator/transformers/task.py index 8f070cc..096d035 100644 --- a/joj3_config_generator/transformers/task.py +++ b/joj3_config_generator/transformers/task.py @@ -226,11 +226,21 @@ def fix_diff( cmd = result.OptionalCmd( stdin=result.LocalFile(src=str(base_dir / f"{case}.in")) ) + if cmd.args == executor.with_.default.args: + cmd.args = None + if cmd.cpu_limit == executor.with_.default.cpu_limit: + cmd.cpu_limit = None + if cmd.clock_limit == executor.with_.default.clock_limit: + cmd.clock_limit = None + if cmd.memory_limit == executor.with_.default.memory_limit: + cmd.memory_limit = None + if cmd.proc_limit == executor.with_.default.proc_limit: + cmd.proc_limit = None stage_cases.append(cmd) parser_case = result.DiffCasesConfig( outputs=[ result.DiffOutputConfig( - score=const.DEFAULT_CASE_SCORE, + score=task_stage.diff.default_score, file_name="stdout", answer_path=str(base_dir / f"{case}.out"), ) diff --git a/tests/convert/diff/task.json b/tests/convert/diff/task.json index 91ec29c..e463c02 100644 --- a/tests/convert/diff/task.json +++ b/tests/convert/diff/task.json @@ -219,7 +219,7 @@ { "outputs": [ { - "score": 5, + "score": 100, "fileName": "stdout", "answerPath": "/home/tt/.config/joj/diff/case2.out", "forceQuitOnDiff": false, @@ -231,7 +231,7 @@ { "outputs": [ { - "score": 5, + "score": 100, "fileName": "stdout", "answerPath": "/home/tt/.config/joj/diff/case3.out", "forceQuitOnDiff": false, @@ -243,7 +243,7 @@ { "outputs": [ { - "score": 5, + "score": 100, "fileName": "stdout", "answerPath": "/home/tt/.config/joj/diff/task1/case4.out", "forceQuitOnDiff": false, @@ -255,7 +255,7 @@ { "outputs": [ { - "score": 5, + "score": 100, "fileName": "stdout", "answerPath": "/home/tt/.config/joj/diff/task2/case6.out", "forceQuitOnDiff": false, @@ -267,7 +267,7 @@ { "outputs": [ { - "score": 5, + "score": 100, "fileName": "stdout", "answerPath": "/home/tt/.config/joj/diff/task2/case7.out", "forceQuitOnDiff": false, @@ -279,7 +279,7 @@ { "outputs": [ { - "score": 5, + "score": 100, "fileName": "stdout", "answerPath": "/home/tt/.config/joj/diff/task2/case8.out", "forceQuitOnDiff": false, diff --git a/tests/convert/diff/task.toml b/tests/convert/diff/task.toml index 4272f97..bb18497 100644 --- a/tests/convert/diff/task.toml +++ b/tests/convert/diff/task.toml @@ -14,6 +14,8 @@ parsers = [ "diff", "result-detail" ] result-detail.exitstatus = true result-detail.stderr = true +diff.default_score = 100 + # will be removed as long as the name is fixed case0.diff.output.score = 5 case0.limit.cpu = "1s"