"""
Teste do sistema de logging do Push-Up Counter
Simula uma sessão sem usar a câmera
"""

import time
from pushup_logger import PushUpLogger, create_landmarks_dict

# Mock landmarks para teste
def create_mock_landmarks(position="up"):
    """Cria landmarks simulados para teste"""
    if position == "down":
        return {
            "shoulder_left_y": 0.60,
            "shoulder_right_y": 0.61,
            "elbow_left_y": 0.50,
            "elbow_right_y": 0.51,
            "shoulder_left_x": 0.40,
            "shoulder_right_x": 0.60,
            "elbow_left_x": 0.35,
            "elbow_right_x": 0.65
        }
    else:  # up
        return {
            "shoulder_left_y": 0.40,
            "shoulder_right_y": 0.41,
            "elbow_left_y": 0.50,
            "elbow_right_y": 0.51,
            "shoulder_left_x": 0.40,
            "shoulder_right_x": 0.60,
            "elbow_left_x": 0.35,
            "elbow_right_x": 0.65
        }


def test_logger():
    """Testa o sistema de logging"""
    print("🧪 Testando Push-Up Logger...")
    print()

    # Criar logger
    logger = PushUpLogger()

    # Iniciar sessão
    logger.start_session()
    time.sleep(0.5)

    # Simular 5 flexões
    print("🏋️ Simulando 5 flexões...")
    for i in range(5):
        # Posição baixa
        landmarks_down = create_mock_landmarks("down")
        logger.log_frame(landmarks_down, "down", fps=28.5)
        time.sleep(0.2)

        # Posição alta
        landmarks_up = create_mock_landmarks("up")
        logger.log_frame(landmarks_up, "up", fps=29.0)

        # Logar flexão
        logger.log_pushup(i + 1, landmarks_down, landmarks_up)

        time.sleep(0.5)

    # Simular mais alguns frames
    for _ in range(10):
        landmarks = create_mock_landmarks("up")
        logger.log_frame(landmarks, "up", fps=30.0)
        time.sleep(0.1)

    # Finalizar sessão
    print("\n💾 Finalizando sessão...")
    session_id = logger.end_session()

    print("\n✅ Teste concluído!")
    print(f"\n📊 Verifique os arquivos em pushup_logs/")
    print(f"   - session_{session_id}.json")
    print(f"   - session_{session_id}.csv")
    print(f"   - summary.json")

    return session_id


if __name__ == "__main__":
    test_logger()
