#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Тестирование умной логики уточнения для AI-КАЛОРИЯ бота
"""

import os
import sys
from pathlib import Path

# Добавляем текущую директорию в путь
sys.path.insert(0, str(Path(__file__).parent))

def test_smart_clarification():
    """Тестирование умной логики уточнения"""
    print("🧪 Тестирование умной логики уточнения...")
    
    try:
        from telegram_bot import should_ask_for_clarification
        
        # Тестовые случаи
        test_cases = [
            ("кофе", {"calories": 0}, True, "Кофе с 0 ккал должен требовать уточнения"),
            ("печенье", {"calories": 150}, True, "Печенье должно требовать уточнения"),
            ("каша", {"calories": 140}, True, "Каша должна требовать уточнения"),
            ("овсянка", {"calories": 150}, False, "Овсянка не должна требовать уточнения"),
            ("вода", {"calories": 0}, False, "Вода не должна требовать уточнения"),
            ("яблоко", {"calories": 80}, False, "Яблоко не должно требовать уточнения"),
            ("гречка с молоком", {"calories": 200}, False, "Гречка с молоком не должна требовать уточнения"),
            ("суп", {"calories": 100}, True, "Суп должен требовать уточнения"),
            ("салат", {"calories": 50}, True, "Салат должен требовать уточнения"),
            ("мясо", {"calories": 200}, True, "Мясо должно требовать уточнения")
        ]
        
        for text, food_info, expected, description in test_cases:
            print(f"\n📝 Тестируем: '{text}' - {description}")
            print(f"   🔍 Калории: {food_info['calories']}")
            print(f"   🎯 Ожидается: {'Да' if expected else 'Нет'}")
            
            try:
                result = should_ask_for_clarification(text, food_info)
                print(f"   ✅ Результат: {'Да' if result else 'Нет'}")
                
                if result == expected:
                    print(f"   ✅ Логика работает правильно!")
                else:
                    print(f"   ❌ Логика работает неправильно!")
                    
            except Exception as e:
                print(f"   ❌ Ошибка: {e}")
        
        return True
        
    except Exception as e:
        print(f"❌ Ошибка при тестировании: {e}")
        return False

def main():
    """Основная функция тестирования"""
    print("🧪 Запуск тестов умной логики уточнения\n")
    
    success = test_smart_clarification()
    
    if success:
        print("\n🎉 Тестирование завершено!")
        print("\n💡 Умная логика уточнения:")
        print("1. GPT сам решает, нужны ли варианты уточнения")
        print("2. Учитывает контекст и калории продукта")
        print("3. Не полагается на жесткий список")
        print("4. Адаптируется к новым продуктам")
    else:
        print("\n⚠️ Тестирование завершено с ошибками")
    
    return 0 if success else 1

if __name__ == '__main__':
    exit_code = main()
    sys.exit(exit_code)
