maze_python/test_boss_cases.py

45 lines
1.4 KiB
Python

import os
import json
import glob
from boss_fight import boss_fight as boss_fight_main
def run_boss_case_tests():
case_dir = 'BOSS战样例'
json_files = glob.glob(os.path.join(case_dir, '*.json'))
all_passed = True
for file in json_files:
with open(file, 'r', encoding='utf-8') as f:
data = json.load(f)
b = data.get('B')
playerskills = data.get('PlayerSkills')
min_turns = data.get('min_turns')
if b is None or playerskills is None or min_turns is None:
print(f"[FAIL] {file}: 缺少必要字段")
all_passed = False
continue
# 假设boss_fight.py的main返回技能使用次数
try:
print(b,playerskills)
result = boss_fight_main(b, playerskills)
except Exception as e:
print(f"[FAIL] {file}: boss_fight_main运行出错: {e}")
all_passed = False
continue
# result应为技能数量
ans = 0
for i in result:
ans += len(i)
if ans == min_turns:
print(f"[PASS] {file}: 技能数量={ans}, min_turns={min_turns}")
else:
print(f"[FAIL] {file}: 技能数量={ans}, min_turns={min_turns}")
all_passed = False
if all_passed:
print("所有样例通过!")
else:
print("部分样例未通过。")
if __name__ == '__main__':
run_boss_case_tests()