45 lines
1.4 KiB
Python
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()
|