From 4f2c57a0eec8dc8f05b629924370b02cf757f538 Mon Sep 17 00:00:00 2001 From: zzjc1234 <2359047351@qq.com> Date: Tue, 10 Sep 2024 17:21:31 +0800 Subject: [PATCH] feat: test cases --- 1.md | 4 ++ a.cc | 10 ++-- cases/1.in | 1 - cases/1.out | 1 - cases/2.out | 7 --- cases/3.out | 1 - cases/4.in | 1 - cases/4.out | 1 - cases/5.in | 1 - cases/5.out | 1 - cases/empty.in | 1 + cases/empty.out | 1 + cases/multi-line-correct.out | 5 ++ cases/multi-line-err1.out | 3 ++ cases/multi-line-err2.out | 3 ++ cases/multi-line-err3.out | 3 ++ cases/multi-line.in | 5 ++ cases/one-line-whitespace.out | 1 + cases/{2.in => one-line.in} | 0 cases/{3.in => one-line.out} | 0 conf.toml | 95 ++++++++++++++++++++++++++++++----- convert.py | 28 +++++++++++ 22 files changed, 142 insertions(+), 31 deletions(-) create mode 100644 1.md delete mode 100644 cases/1.in delete mode 100644 cases/1.out delete mode 100644 cases/2.out delete mode 100644 cases/3.out delete mode 100644 cases/4.in delete mode 100644 cases/4.out delete mode 100644 cases/5.in delete mode 100644 cases/5.out create mode 100644 cases/empty.in create mode 100644 cases/empty.out create mode 100644 cases/multi-line-correct.out create mode 100644 cases/multi-line-err1.out create mode 100644 cases/multi-line-err2.out create mode 100644 cases/multi-line-err3.out create mode 100644 cases/multi-line.in create mode 100644 cases/one-line-whitespace.out rename cases/{2.in => one-line.in} (100%) rename cases/{3.in => one-line.out} (100%) create mode 100644 convert.py diff --git a/1.md b/1.md new file mode 100644 index 0000000..293a19c --- /dev/null +++ b/1.md @@ -0,0 +1,4 @@ +```diff + +- +``` diff --git a/a.cc b/a.cc index 2c7ca74..da9006d 100644 --- a/a.cc +++ b/a.cc @@ -1,6 +1,8 @@ #include -int main() { - int a, b; - std::cin >> a >> b; - std::cout << a + b << '\n'; + +int main(int argc, char *argv[]) { + std::string str; + std::cin >> str; + std::cout << str; + return 0; } diff --git a/cases/1.in b/cases/1.in deleted file mode 100644 index 2fb73a0..0000000 --- a/cases/1.in +++ /dev/null @@ -1 +0,0 @@ -1 1 diff --git a/cases/1.out b/cases/1.out deleted file mode 100644 index 0cfbf08..0000000 --- a/cases/1.out +++ /dev/null @@ -1 +0,0 @@ -2 diff --git a/cases/2.out b/cases/2.out deleted file mode 100644 index 0f674ca..0000000 --- a/cases/2.out +++ /dev/null @@ -1,7 +0,0 @@ -3072 -234890234 -342342 -1234234 -300072 -43234 -1243 diff --git a/cases/3.out b/cases/3.out deleted file mode 100644 index 8480c1a..0000000 --- a/cases/3.out +++ /dev/null @@ -1 +0,0 @@ -3072 diff --git a/cases/4.in b/cases/4.in deleted file mode 100644 index b5f1e36..0000000 --- a/cases/4.in +++ /dev/null @@ -1 +0,0 @@ -1024 2048 diff --git a/cases/4.out b/cases/4.out deleted file mode 100644 index 8480c1a..0000000 --- a/cases/4.out +++ /dev/null @@ -1 +0,0 @@ -3072 diff --git a/cases/5.in b/cases/5.in deleted file mode 100644 index b5f1e36..0000000 --- a/cases/5.in +++ /dev/null @@ -1 +0,0 @@ -1024 2048 diff --git a/cases/5.out b/cases/5.out deleted file mode 100644 index 071a429..0000000 --- a/cases/5.out +++ /dev/null @@ -1 +0,0 @@ -37200 diff --git a/cases/empty.in b/cases/empty.in new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/cases/empty.in @@ -0,0 +1 @@ + diff --git a/cases/empty.out b/cases/empty.out new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/cases/empty.out @@ -0,0 +1 @@ + diff --git a/cases/multi-line-correct.out b/cases/multi-line-correct.out new file mode 100644 index 0000000..41632d8 --- /dev/null +++ b/cases/multi-line-correct.out @@ -0,0 +1,5 @@ +jklasdfklasdfjklf asdfhklasdfjl cvsdlfkdjsfklv +1024 2048 +asdfjkl asdfkljdaslasdfjkl asdfjkl +1024 2048 +psdfklj diff --git a/cases/multi-line-err1.out b/cases/multi-line-err1.out new file mode 100644 index 0000000..4eb43ed --- /dev/null +++ b/cases/multi-line-err1.out @@ -0,0 +1,3 @@ +asdfljsdfklasdfjklasdfjjkl +1024 2048 +asdfjksdfjkl diff --git a/cases/multi-line-err2.out b/cases/multi-line-err2.out new file mode 100644 index 0000000..f73cb0c --- /dev/null +++ b/cases/multi-line-err2.out @@ -0,0 +1,3 @@ +1024 2048 +asdfjksdfjkl +asdfljsdfklasdfjklasdfjjkl diff --git a/cases/multi-line-err3.out b/cases/multi-line-err3.out new file mode 100644 index 0000000..f73cb0c --- /dev/null +++ b/cases/multi-line-err3.out @@ -0,0 +1,3 @@ +1024 2048 +asdfjksdfjkl +asdfljsdfklasdfjklasdfjjkl diff --git a/cases/multi-line.in b/cases/multi-line.in new file mode 100644 index 0000000..41632d8 --- /dev/null +++ b/cases/multi-line.in @@ -0,0 +1,5 @@ +jklasdfklasdfjklf asdfhklasdfjl cvsdlfkdjsfklv +1024 2048 +asdfjkl asdfkljdaslasdfjkl asdfjkl +1024 2048 +psdfklj diff --git a/cases/one-line-whitespace.out b/cases/one-line-whitespace.out new file mode 100644 index 0000000..a72f0ce --- /dev/null +++ b/cases/one-line-whitespace.out @@ -0,0 +1 @@ + 1024 2048 diff --git a/cases/2.in b/cases/one-line.in similarity index 100% rename from cases/2.in rename to cases/one-line.in diff --git a/cases/3.in b/cases/one-line.out similarity index 100% rename from cases/3.in rename to cases/one-line.out diff --git a/conf.toml b/conf.toml index 5c45a8a..fcd1650 100644 --- a/conf.toml +++ b/conf.toml @@ -44,38 +44,107 @@ name = "stderr" max = 4_096 [stages.executor.with.default.copyInCached] a = "a" + + +# empty [[stages.executor.with.cases]] [stages.executor.with.cases.stdin] -src = "./cases/1.in" +src = "./cases/empty.in" [[stages.executor.with.cases]] [stages.executor.with.cases.stdin] -src = "./cases/2.in" +src = "./cases/empty.in" [[stages.executor.with.cases]] [stages.executor.with.cases.stdin] -src = "./cases/3.in" +src = "./cases/empty.in" + + +# one-line [[stages.executor.with.cases]] [stages.executor.with.cases.stdin] -src = "./cases/4.in" +src = "./cases/one-line.in" [[stages.executor.with.cases]] [stages.executor.with.cases.stdin] -src = "./cases/5.in" +src = "./cases/one-line.in" +[[stages.executor.with.cases]] +[stages.executor.with.cases.stdin] +src = "./cases/one-line.in" +[[stages.executor.with.cases]] +[stages.executor.with.cases.stdin] +src = "./cases/one-line.in" +[[stages.executor.with.cases]] +[stages.executor.with.cases.stdin] +src = "./cases/one-line.in" + + +# one-line +[[stages.executor.with.cases]] +[stages.executor.with.cases.stdin] +src = "./cases/multi-line.in" +[[stages.executor.with.cases]] +[stages.executor.with.cases.stdin] +src = "./cases/multi-line.in" +[[stages.executor.with.cases]] +[stages.executor.with.cases.stdin] +src = "./cases/multi-line.in" +[[stages.executor.with.cases]] +[stages.executor.with.cases.stdin] +src = "./cases/multi-line.in" +[[stages.executor.with.cases]] +[stages.executor.with.cases.stdin] +src = "./cases/multi-line.in" +[[stages.executor.with.cases]] +[stages.executor.with.cases.stdin] +src = "./cases/multi-line.in" [stages.parser] name = "diff" + + +# empty [[stages.parser.with.cases]] score = 100 -stdoutPath = "./cases/1.out" +stdoutPath = "./cases/empty.out" [[stages.parser.with.cases]] score = 100 -stdoutPath = "./cases/2.out" +stdoutPath = "./cases/one-line.out" [[stages.parser.with.cases]] score = 100 -stdoutPath = "./cases/3.out" -ignoreWhitespace=true +stdoutPath = "./cases/multi-line-err1.out" + + +# one-line [[stages.parser.with.cases]] score = 100 -stdoutPath = "./cases/4.out" -ignoreWhitespace=true +stdoutPath = "./cases/empty.out" [[stages.parser.with.cases]] score = 100 -stdoutPath = "./cases/5.out" -ignoreWhitespace=false +stdoutPath = "./cases/one-line.out" +[[stages.parser.with.cases]] +score = 100 +stdoutPath = "./cases/multi-line-err1.out" +[[stages.parser.with.cases]] +score = 100 +stdoutPath = "./cases/multi-line-err2.out" +[[stages.parser.with.cases]] +score = 100 +stdoutPath = "./cases/multi-line-err3.out" + + +# multi-line +[[stages.parser.with.cases]] +score = 100 +stdoutPath = "./cases/empty.out" +[[stages.parser.with.cases]] +score = 100 +stdoutPath = "./cases/one-line.out" +[[stages.parser.with.cases]] +score = 100 +stdoutPath = "./cases/multi-line-correct.out" +[[stages.parser.with.cases]] +score = 100 +stdoutPath = "./cases/multi-line-err1.out" +[[stages.parser.with.cases]] +score = 100 +stdoutPath = "./cases/multi-line-err2.out" +[[stages.parser.with.cases]] +score = 100 +stdoutPath = "./cases/multi-line-err3.out" diff --git a/convert.py b/convert.py new file mode 100644 index 0000000..f7831b9 --- /dev/null +++ b/convert.py @@ -0,0 +1,28 @@ +import json +import re + +# 读取 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) + +# 提取所有 diff 代码块 +diff_blocks = [] + +for item in data: + if "results" in item: + for result in item["results"]: + comment = result.get("comment", "") + matches = diff_pattern.findall(comment) + diff_blocks.extend(matches) + +# 处理 \n 符号并打印 diff 代码块 +for i, diff in enumerate(diff_blocks): + # 将 \n 替换为实际换行符 + formatted_diff = diff.replace("\\n", "\n") + print(f"Diff block {i+1}:\n{formatted_diff}\n")