feat: update diff
This commit is contained in:
parent
fc77411879
commit
ac7a2fc912
56
conf.toml
56
conf.toml
|
@ -101,50 +101,78 @@ name = "diff"
|
|||
|
||||
# empty
|
||||
[[stages.parser.with.cases]]
|
||||
[[stages.parser.with.cases.outputs]]
|
||||
score = 100
|
||||
stdoutPath = "./cases/empty.out"
|
||||
fileName = "stdout"
|
||||
answerPath = "./cases/empty.out"
|
||||
[[stages.parser.with.cases]]
|
||||
[[stages.parser.with.cases.outputs]]
|
||||
score = 100
|
||||
stdoutPath = "./cases/one-line.out"
|
||||
fileName = "stdout"
|
||||
answerPath = "./cases/one-line.out"
|
||||
[[stages.parser.with.cases]]
|
||||
[[stages.parser.with.cases.outputs]]
|
||||
score = 100
|
||||
stdoutPath = "./cases/multi-line-err1.out"
|
||||
fileName = "stdout"
|
||||
answerPath = "./cases/multi-line-err1.out"
|
||||
|
||||
|
||||
# one-line
|
||||
[[stages.parser.with.cases]]
|
||||
[[stages.parser.with.cases.outputs]]
|
||||
score = 100
|
||||
stdoutPath = "./cases/empty.out"
|
||||
fileName = "stdout"
|
||||
answerPath = "./cases/empty.out"
|
||||
[[stages.parser.with.cases]]
|
||||
[[stages.parser.with.cases.outputs]]
|
||||
score = 100
|
||||
stdoutPath = "./cases/one-line.out"
|
||||
fileName = "stdout"
|
||||
answerPath = "./cases/one-line.out"
|
||||
[[stages.parser.with.cases]]
|
||||
[[stages.parser.with.cases.outputs]]
|
||||
score = 100
|
||||
stdoutPath = "./cases/multi-line-err1.out"
|
||||
fileName = "stdout"
|
||||
answerPath = "./cases/multi-line-err1.out"
|
||||
[[stages.parser.with.cases]]
|
||||
[[stages.parser.with.cases.outputs]]
|
||||
score = 100
|
||||
stdoutPath = "./cases/multi-line-err2.out"
|
||||
fileName = "stdout"
|
||||
answerPath = "./cases/multi-line-err2.out"
|
||||
[[stages.parser.with.cases]]
|
||||
[[stages.parser.with.cases.outputs]]
|
||||
score = 100
|
||||
stdoutPath = "./cases/multi-line-err3.out"
|
||||
fileName = "stdout"
|
||||
answerPath = "./cases/multi-line-err3.out"
|
||||
|
||||
|
||||
# multi-line
|
||||
[[stages.parser.with.cases]]
|
||||
[[stages.parser.with.cases.outputs]]
|
||||
score = 100
|
||||
stdoutPath = "./cases/empty.out"
|
||||
fileName = "stdout"
|
||||
answerPath = "./cases/empty.out"
|
||||
[[stages.parser.with.cases]]
|
||||
[[stages.parser.with.cases.outputs]]
|
||||
score = 100
|
||||
stdoutPath = "./cases/one-line.out"
|
||||
fileName = "stdout"
|
||||
answerPath = "./cases/one-line.out"
|
||||
[[stages.parser.with.cases]]
|
||||
[[stages.parser.with.cases.outputs]]
|
||||
score = 100
|
||||
stdoutPath = "./cases/multi-line-correct.out"
|
||||
fileName = "stdout"
|
||||
answerPath = "./cases/multi-line-correct.out"
|
||||
[[stages.parser.with.cases]]
|
||||
[[stages.parser.with.cases.outputs]]
|
||||
score = 100
|
||||
stdoutPath = "./cases/multi-line-err1.out"
|
||||
fileName = "stdout"
|
||||
answerPath = "./cases/multi-line-err1.out"
|
||||
[[stages.parser.with.cases]]
|
||||
[[stages.parser.with.cases.outputs]]
|
||||
score = 100
|
||||
stdoutPath = "./cases/multi-line-err2.out"
|
||||
fileName = "stdout"
|
||||
answerPath = "./cases/multi-line-err2.out"
|
||||
[[stages.parser.with.cases]]
|
||||
[[stages.parser.with.cases.outputs]]
|
||||
score = 100
|
||||
stdoutPath = "./cases/multi-line-err3.out"
|
||||
fileName = "stdout"
|
||||
answerPath = "./cases/multi-line-err3.out"
|
||||
|
|
29
convert.py
29
convert.py
|
@ -1,29 +0,0 @@
|
|||
import json
|
||||
import re
|
||||
|
||||
# 读取 joj3_result.json 文件内容
|
||||
with open("joj3_result.json", "r", encoding="utf-8") as file:
|
||||
json_data = file.read()
|
||||
|
||||
# 解析 JSON 数据
|
||||
data = json.loads(json_data)
|
||||
|
||||
# 定义正则表达式以提取 diff 代码块
|
||||
diff_pattern = re.compile(r"```diff\n(.*?)\n```", re.DOTALL)
|
||||
|
||||
# 遍历 "run" 的 results
|
||||
for run in data:
|
||||
if run["name"] == "run":
|
||||
results = run["results"]
|
||||
for result_index, result in enumerate(results):
|
||||
comment = result.get("comment", "")
|
||||
matches = diff_pattern.findall(comment)
|
||||
|
||||
if matches:
|
||||
print(f"Result {result_index + 1} diff blocks:")
|
||||
for i, diff in enumerate(matches):
|
||||
# 将 \n 替换为实际换行符
|
||||
formatted_diff = diff.replace("\\n", "\n")
|
||||
print(f"```diff\n{formatted_diff}\n```\n")
|
||||
else:
|
||||
print(f"Result {result_index + 1}: the same\n")
|
1
expected.json
Normal file
1
expected.json
Normal file
|
@ -0,0 +1 @@
|
|||
[{"name":"compile","results":[{"score":0,"comment":""}],"force_quit":false},{"name":"run","results":[{"score":100,"comment":""},{"score":0,"comment":"difference found in stdout:\n```diff\n- 1024 2048\n \n```\n"},{"score":0,"comment":"difference found in stdout:\n```diff\n- asdfljsdfklasdfjklasdfjjkl\n- 1024 2048\n- asdfjksdfjkl\n \n```\n"},{"score":0,"comment":"difference found in stdout:\n```diff\n+ 1024 2048\n \n```\n"},{"score":100,"comment":""},{"score":0,"comment":"difference found in stdout:\n```diff\n- asdfljsdfklasdfjklasdfjjkl\n 1024 2048\n- asdfjksdfjkl\n \n```\n"},{"score":0,"comment":"difference found in stdout:\n```diff\n 1024 2048\n- asdfjksdfjkl\n- asdfljsdfklasdfjklasdfjjkl\n \n```\n"},{"score":0,"comment":"difference found in stdout:\n```diff\n 1024 2048\n- asdfjksdfjkl\n- asdfljsdfklasdfjklasdfjjkl\n \n```\n"},{"score":0,"comment":"difference found in stdout:\n```diff\n+ jklasdfklasdfjklf asdfhklasdfjl cvsdlfkdjsfklv \n+ 1024 2048\n+ asdfjkl asdfkljdaslasdfjkl asdfjkl\n+ 1024 2048\n+ psdfklj\n \n```\n"},{"score":0,"comment":"difference found in stdout:\n```diff\n+ jklasdfklasdfjklf asdfhklasdfjl cvsdlfkdjsfklv \n 1024 2048\n+ asdfjkl asdfkljdaslasdfjkl asdfjkl\n+ 1024 2048\n+ psdfklj\n \n```\n"},{"score":100,"comment":""},{"score":0,"comment":"difference found in stdout:\n```diff\n- asdfljsdfklasdfjklasdfjjkl\n+ jklasdfklasdfjklf asdfhklasdfjl cvsdlfkdjsfklv \n 1024 2048\n- asdfjksdfjkl\n+ asdfjkl asdfkljdaslasdfjkl asdfjkl\n+ 1024 2048\n+ psdfklj\n \n```\n"},{"score":0,"comment":"difference found in stdout:\n```diff\n+ jklasdfklasdfjklf asdfhklasdfjl cvsdlfkdjsfklv \n 1024 2048\n- asdfjksdfjkl\n- asdfljsdfklasdfjklasdfjjkl\n+ asdfjkl asdfkljdaslasdfjkl asdfjkl\n+ 1024 2048\n+ psdfklj\n \n```\n"},{"score":0,"comment":"difference found in stdout:\n```diff\n+ jklasdfklasdfjklf asdfhklasdfjl cvsdlfkdjsfklv \n 1024 2048\n- asdfjksdfjkl\n- asdfljsdfklasdfjklasdfjjkl\n+ asdfjkl asdfkljdaslasdfjkl asdfjkl\n+ 1024 2048\n+ psdfklj\n \n```\n"}],"force_quit":false}]
|
|
@ -1,74 +0,0 @@
|
|||
[
|
||||
{
|
||||
"name": "compile",
|
||||
"results": [
|
||||
{
|
||||
"score": 0,
|
||||
"comment": ""
|
||||
}
|
||||
],
|
||||
"force_quit": false
|
||||
},
|
||||
{
|
||||
"name": "run",
|
||||
"results": [
|
||||
{
|
||||
"score": 100,
|
||||
"comment": "executor status: run time: \\d+ ns, memory: \\d+ bytes\n"
|
||||
},
|
||||
{
|
||||
"score": 0,
|
||||
"comment": "executor status: run time: \\d+ ns, memory: \\d+ bytes\ndifference found:\n```diff\n\\- 1024 2048\n \n```"
|
||||
},
|
||||
{
|
||||
"score": 0,
|
||||
"comment": "executor status: run time: \\d+ ns, memory: \\d+ bytes\ndifference found:\n```diff\n\\- asdfljsdfklasdfjklasdfjjkl\n\\- 1024 2048\n\\- asdfjksdfjkl\n \n```"
|
||||
},
|
||||
{
|
||||
"score": 0,
|
||||
"comment": "executor status: run time: \\d+ ns, memory: \\d+ bytes\ndifference found:\n```diff\n\\+ 1024 2048\n \n```"
|
||||
},
|
||||
{
|
||||
"score": 100,
|
||||
"comment": "executor status: run time: \\d+ ns, memory: \\d+ bytes\n"
|
||||
},
|
||||
{
|
||||
"score": 0,
|
||||
"comment": "executor status: run time: \\d+ ns, memory: \\d+ bytes\ndifference found:\n```diff\n\\- asdfljsdfklasdfjklasdfjjkl\n 1024 2048\n\\- asdfjksdfjkl\n \n```"
|
||||
},
|
||||
{
|
||||
"score": 0,
|
||||
"comment": "executor status: run time: \\d+ ns, memory: \\d+ bytes\ndifference found:\n```diff\n 1024 2048\n\\- asdfjksdfjkl\n\\- asdfljsdfklasdfjklasdfjjkl\n \n```"
|
||||
},
|
||||
{
|
||||
"score": 0,
|
||||
"comment": "executor status: run time: \\d+ ns, memory: \\d+ bytes\ndifference found:\n```diff\n 1024 2048\n\\- asdfjksdfjkl\n\\- asdfljsdfklasdfjklasdfjjkl\n \n```"
|
||||
},
|
||||
{
|
||||
"score": 0,
|
||||
"comment": "executor status: run time: \\d+ ns, memory: \\d+ bytes\ndifference found:\n```diff\n\\+ jklasdfklasdfjklf asdfhklasdfjl cvsdlfkdjsfklv \n\\+ 1024 2048\n\\+ asdfjkl asdfkljdaslasdfjkl asdfjkl\n\\+ 1024 2048\n\\+ psdfklj\n \n```"
|
||||
},
|
||||
{
|
||||
"score": 0,
|
||||
"comment": "executor status: run time: \\d+ ns, memory: \\d+ bytes\ndifference found:\n```diff\n\\+ jklasdfklasdfjklf asdfhklasdfjl cvsdlfkdjsfklv \n 1024 2048\n\\+ asdfjkl asdfkljdaslasdfjkl asdfjkl\n\\+ 1024 2048\n\\+ psdfklj\n \n```"
|
||||
},
|
||||
{
|
||||
"score": 100,
|
||||
"comment": "executor status: run time: \\d+ ns, memory: \\d+ bytes\n"
|
||||
},
|
||||
{
|
||||
"score": 0,
|
||||
"comment": "executor status: run time: \\d+ ns, memory: \\d+ bytes\ndifference found:\n```diff\n\\- asdfljsdfklasdfjklasdfjjkl\n\\+ jklasdfklasdfjklf asdfhklasdfjl cvsdlfkdjsfklv \n 1024 2048\n\\- asdfjksdfjkl\n\\+ asdfjkl asdfkljdaslasdfjkl asdfjkl\n\\+ 1024 2048\n\\+ psdfklj\n \n```"
|
||||
},
|
||||
{
|
||||
"score": 0,
|
||||
"comment": "executor status: run time: \\d+ ns, memory: \\d+ bytes\ndifference found:\n```diff\n\\+ jklasdfklasdfjklf asdfhklasdfjl cvsdlfkdjsfklv \n 1024 2048\n\\- asdfjksdfjkl\n\\- asdfljsdfklasdfjklasdfjjkl\n\\+ asdfjkl asdfkljdaslasdfjkl asdfjkl\n\\+ 1024 2048\n\\+ psdfklj\n \n```"
|
||||
},
|
||||
{
|
||||
"score": 0,
|
||||
"comment": "executor status: run time: \\d+ ns, memory: \\d+ bytes\ndifference found:\n```diff\n\\+ jklasdfklasdfjklf asdfhklasdfjl cvsdlfkdjsfklv \n 1024 2048\n\\- asdfjksdfjkl\n\\- asdfljsdfklasdfjklasdfjjkl\n\\+ asdfjkl asdfkljdaslasdfjkl asdfjkl\n\\+ 1024 2048\n\\+ psdfklj\n \n```"
|
||||
}
|
||||
],
|
||||
"force_quit": false
|
||||
}
|
||||
]
|
Loading…
Reference in New Issue
Block a user