#!/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_clarification_logic():
    """Тестирование логики уточнения"""
    print("🧪 Тестирование логики уточнения...")
    
    try:
        from telegram_bot import get_popular_food_variants, create_food_variants_keyboard
        
        # Тестовые случаи
        test_cases = [
            ("кофе", True, "Должен показать варианты кофе"),
            ("печенье", True, "Должен показать варианты печенья"),
            ("овсянка", False, "Не должен показывать варианты"),
            ("вода", False, "Не должен показывать варианты"),
            ("йогурт", True, "Должен показать варианты йогурта"),
            ("сыр", True, "Должен показать варианты сыра")
        ]
        
        for text, should_show_variants, description in test_cases:
            print(f"\n📝 Тестируем: '{text}' - {description}")
            
            # Проверяем, есть ли варианты
            variants = get_popular_food_variants(text)
            has_variants = len(variants) > 0
            
            # Проверяем создание клавиатуры
            keyboard = create_food_variants_keyboard(text)
            has_keyboard = keyboard is not None
            
            print(f"   🔍 Варианты: {variants}")
            print(f"   📊 Количество вариантов: {len(variants)}")
            print(f"   ⌨️ Клавиатура создана: {has_keyboard}")
            
            # Проверяем логику
            if should_show_variants:
                if has_variants and has_keyboard:
                    print(f"   ✅ Логика работает правильно - покажет варианты")
                else:
                    print(f"   ❌ Логика не работает - не покажет варианты")
            else:
                if not has_variants and not has_keyboard:
                    print(f"   ✅ Логика работает правильно - не покажет варианты")
                else:
                    print(f"   ❌ Логика не работает - покажет варианты")
        
        return True
        
    except Exception as e:
        print(f"❌ Ошибка при тестировании: {e}")
        return False

def main():
    """Основная функция тестирования"""
    print("🧪 Запуск тестов логики уточнения\n")
    
    success = test_clarification_logic()
    
    if success:
        print("\n🎉 Тестирование завершено!")
        print("\n💡 Исправленная логика:")
        print("1. Даже если GPT успешно обработал 'кофе' как 0 ккал")
        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)
