#!/bin/bash # Скрипт для запуска всех тестовых карт # Цвета для красивого вывода GREEN='\033[0;32m' BLUE='\033[0;34m' YELLOW='\033[1;33m' NC='\033[0m' # No Color echo "╔════════════════════════════════════════════════════╗" echo "║ Автоматическое тестирование всех карт ║" echo "╚════════════════════════════════════════════════════╝" echo "" # Компиляция проекта echo -e "${BLUE}[1/8] Компиляция проекта...${NC}" dotnet build racing-astar.csproj --nologo --verbosity quiet if [ $? -ne 0 ]; then echo -e "${YELLOW}⚠️ Ошибка компиляции${NC}" exit 1 fi echo -e "${GREEN}✅ Проект скомпилирован${NC}" echo "" # Счетчики total=0 passed=0 failed=0 # Функция для запуска теста run_test() { local map_file=$1 local map_name=$(basename "$map_file") total=$((total + 1)) echo "════════════════════════════════════════════════════" echo -e "${BLUE}[$((total + 1))/8] Тестирование: ${map_name}${NC}" echo "════════════════════════════════════════════════════" timeout 30 ./bin/Debug/net8.0/racing-astar "$map_file" if [ $? -eq 0 ]; then passed=$((passed + 1)) echo -e "${GREEN}✅ Тест пройден: ${map_name}${NC}" else failed=$((failed + 1)) echo -e "${YELLOW}❌ Тест провален: ${map_name}${NC}" fi echo "" } # Запуск тестовых карт echo -e "${BLUE}Запуск тестовых карт...${NC}" echo "" run_test "maps/test-obstacles.json" run_test "maps/test-snow.json" run_test "maps/test-ice.json" run_test "maps/test-combined.json" # Запуск карт из проекта echo "" echo -e "${BLUE}Запуск карт проекта...${NC}" echo "" run_test "maps/simple-test.json" run_test "maps/easy-test.json" run_test "maps/open-field.json" # Итоговая статистика echo "════════════════════════════════════════════════════" echo -e "${BLUE} ИТОГОВАЯ СТАТИСТИКА${NC}" echo "════════════════════════════════════════════════════" echo -e "Всего тестов: ${total}" echo -e "${GREEN}Успешно пройдено: ${passed}${NC}" if [ $failed -gt 0 ]; then echo -e "${YELLOW}Провалено: ${failed}${NC}" fi echo "" # Процент успеха success_rate=$((passed * 100 / total)) echo -e "Успешность: ${success_rate}%" if [ $failed -eq 0 ]; then echo "" echo -e "${GREEN}╔════════════════════════════════════════════════════╗${NC}" echo -e "${GREEN}║ 🎉 ВСЕ ТЕСТЫ УСПЕШНО ПРОЙДЕНЫ! 🎉 ║${NC}" echo -e "${GREEN}╚════════════════════════════════════════════════════╝${NC}" exit 0 else echo "" echo -e "${YELLOW}╔════════════════════════════════════════════════════╗${NC}" echo -e "${YELLOW}║ ⚠️ НЕКОТОРЫЕ ТЕСТЫ ПРОВАЛЕНЫ ║${NC}" echo -e "${YELLOW}╚════════════════════════════════════════════════════╝${NC}" exit 1 fi