feat: update diff

This commit is contained in:
张泊明518370910136 2024-09-11 07:02:32 -04:00
parent fc77411879
commit ac7a2fc912
GPG Key ID: CA088E6D9284F870
5 changed files with 43 additions and 121 deletions

4
1.md
View File

@ -1,4 +0,0 @@
```diff
-
```

View File

@ -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"

View File

@ -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
View 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}]

View File

@ -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
}
]