96 lines
2.4 KiB
Bash
96 lines
2.4 KiB
Bash
#!/bin/bash
|
|
# 测试客观题评分脚本
|
|
|
|
set -e
|
|
|
|
echo "=== 测试客观题评分脚本 ==="
|
|
|
|
cd "$(dirname "$0")/.."
|
|
|
|
# 测试 1: 使用 JSON 格式答案
|
|
echo ""
|
|
echo "测试 1: JSON 格式答案(全对)"
|
|
python3 ./.autograde/objective_grade.py \
|
|
--answers objective_questions/standard_answers.json \
|
|
--standard objective_questions/standard_answers.json \
|
|
--questions objective_questions/question_texts.json \
|
|
--out test_grade1.json \
|
|
--summary test_summary1.md \
|
|
--type both
|
|
|
|
echo "分数:"
|
|
python3 -c "import json; data=json.load(open('test_grade1.json')); print(f\"{data['score']}/{data['max_score']}\")"
|
|
|
|
echo ""
|
|
echo "摘要:"
|
|
cat test_summary1.md
|
|
|
|
# 测试 2: 使用部分错误的答案
|
|
echo ""
|
|
echo "测试 2: 部分错误答案"
|
|
cat > test_answers2.json << 'EOF'
|
|
{
|
|
"MC1": "A",
|
|
"MC2": "A",
|
|
"MC3": "C",
|
|
"MC4": "B",
|
|
"MC5": "C",
|
|
"TF1": true,
|
|
"TF2": false,
|
|
"TF3": true,
|
|
"TF4": true,
|
|
"TF5": false
|
|
}
|
|
EOF
|
|
|
|
python3 ./.autograde/objective_grade.py \
|
|
--answers test_answers2.json \
|
|
--standard objective_questions/standard_answers.json \
|
|
--questions objective_questions/question_texts.json \
|
|
--out test_grade2.json \
|
|
--summary test_summary2.md \
|
|
--type both
|
|
|
|
echo "分数:"
|
|
python3 -c "import json; data=json.load(open('test_grade2.json')); print(f\"{data['score']}/{data['max_score']}\")"
|
|
|
|
echo ""
|
|
echo "摘要:"
|
|
cat test_summary2.md
|
|
|
|
# 测试 3: 只评选择题
|
|
echo ""
|
|
echo "测试 3: 只评选择题"
|
|
python3 ./.autograde/objective_grade.py \
|
|
--answers objective_questions/standard_answers.json \
|
|
--standard objective_questions/standard_answers.json \
|
|
--questions objective_questions/question_texts.json \
|
|
--out test_grade3.json \
|
|
--summary test_summary3.md \
|
|
--type mc
|
|
|
|
echo "分数:"
|
|
python3 -c "import json; data=json.load(open('test_grade3.json')); print(f\"{data['score']}/{data['max_score']}\")"
|
|
|
|
# 测试 4: 只评判断题
|
|
echo ""
|
|
echo "测试 4: 只评判断题"
|
|
python3 ./.autograde/objective_grade.py \
|
|
--answers objective_questions/standard_answers.json \
|
|
--standard objective_questions/standard_answers.json \
|
|
--questions objective_questions/question_texts.json \
|
|
--out test_grade4.json \
|
|
--summary test_summary4.md \
|
|
--type tf
|
|
|
|
echo "分数:"
|
|
python3 -c "import json; data=json.load(open('test_grade4.json')); print(f\"{data['score']}/{data['max_score']}\")"
|
|
|
|
# 清理测试文件
|
|
rm -f test_grade*.json test_summary*.md test_answers*.json
|
|
|
|
echo ""
|
|
echo "✅ 所有测试通过!"
|
|
|
|
|