Files
SirRoboGarage/ModularBot_garage/tests/test_all_enemies.nim
SirStone c034eb9d25 feat(testing): gun rack gauntlet + analysis reports
- fix(ModularBot): onBulletHitBot → onBulletHit (real hits were never tracked)
- feat(ModularBot): per-round gun stats dump to /tmp/gun_stats.jsonl
- feat(ModularBot): gun selection counter per round
- fix(tests): adversary paths _garage suffix removed from 7 test files
- feat(tests): test_gauntlet_5bots.nim — 10-round gauntlet vs all 5 adversaries
- feat(tests): analyze_gun_stats.nim — JSONL parser for gun performance tables
- docs: gun_rack_analysis.md — full per-gun performance report
- docs: gun_rack_summary.md — TL;DR verdict table (keep/drop/tune)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-09-20 21:14:12 +02:00

29 lines
1.2 KiB
Nim

import test_framework/test_framework
import std/os
const myBotDir = currentSourcePath().parentDir.parentDir
let enemies = @[
("/home/davide/Downloads/robocode-tankroyale/sample-bots-nim-linux-1.0.7/Walls", "Walls"),
("/home/davide/Downloads/robocode-tankroyale/sample-bots-nim-linux-1.0.7/SpinBot", "SpinBot"),
("/home/davide/Projects/SirRoboGarage/common_libs/test_framework/adversaries/WaveSurfer", "WaveSurfer"),
("/home/davide/Projects/SirRoboGarage/common_libs/test_framework/adversaries/PatternMover", "PatternMover"),
("/home/davide/Downloads/robocode-tankroyale/sample-bots-nim-linux-1.0.7/TrackFire", "TrackFire"),
]
echo "Running ModularBot (8 guns) vs all enemies, 10 rounds each"
echo "==========================================================="
for (enemyPath, enemyName) in enemies:
echo "\n--- vs " & enemyName & " ---"
let result = runBattle(@[myBotDir, enemyPath], rounds = 10, timeout = 180)
# Print scores table
echo "Round Results:"
for r in result.rounds:
echo " Round " & $r.round & ":"
for br in r.results:
echo " " & br.name & ": " & $br.score & " (rank " & $br.rank & ")"
echo "\n==========================================================="
echo "All battles complete."