92 lines
No EOL
2.8 KiB
Python
92 lines
No EOL
2.8 KiB
Python
import logging
|
|
import sys
|
|
import os
|
|
|
|
# Configuration du logging
|
|
logging.basicConfig(
|
|
level=logging.INFO,
|
|
format='%(asctime)s - %(levelname)s - %(message)s'
|
|
)
|
|
|
|
# Ajouter le dossier utils au path
|
|
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
|
|
|
|
from utils.content_based import get_recommendations
|
|
from utils.data_loader import get_available_users, check_data_files, load_embeddings
|
|
|
|
def test_data_loading():
|
|
"""Test du chargement des données."""
|
|
print("🔄 Test du chargement des données...")
|
|
|
|
if not check_data_files():
|
|
print("❌ Fichiers de données manquants")
|
|
return False
|
|
|
|
try:
|
|
# Test chargement embeddings
|
|
embeddings = load_embeddings()
|
|
print(f"✅ Embeddings chargés: {embeddings.shape}")
|
|
|
|
# Test chargement utilisateurs
|
|
users = get_available_users()
|
|
print(f"✅ Utilisateurs chargés: {len(users)} utilisateurs")
|
|
print(f" Premiers utilisateurs: {users[:5]}")
|
|
|
|
return True
|
|
except Exception as e:
|
|
print(f"❌ Erreur lors du chargement: {e}")
|
|
return False
|
|
|
|
def test_recommendations():
|
|
"""Test des recommandations."""
|
|
print("\n🔄 Test des recommandations...")
|
|
|
|
users = get_available_users()
|
|
test_users = users[:3] if len(users) >= 3 else users
|
|
|
|
for user_id in test_users:
|
|
print(f"\n👤 Test pour utilisateur {user_id}:")
|
|
|
|
try:
|
|
recommendations = get_recommendations(user_id, n_recommendations=5)
|
|
|
|
if recommendations:
|
|
print(f"✅ {len(recommendations)} recommandations générées")
|
|
print(f" Articles recommandés: {recommendations}")
|
|
else:
|
|
print("⚠️ Aucune recommandation générée")
|
|
|
|
except Exception as e:
|
|
print(f"❌ Erreur pour utilisateur {user_id}: {e}")
|
|
|
|
def test_edge_cases():
|
|
"""Test des cas limites."""
|
|
print("\n🔄 Test des cas limites...")
|
|
|
|
# Test utilisateur inexistant
|
|
print("Test utilisateur inexistant (ID: 99999):")
|
|
result = get_recommendations(99999)
|
|
if result is None:
|
|
print("✅ Utilisateur inexistant géré correctement")
|
|
else:
|
|
print(f"⚠️ Résultat inattendu: {result}")
|
|
|
|
def main():
|
|
"""Fonction principale de test."""
|
|
print("🚀 Démarrage des tests locaux\n")
|
|
|
|
# Test 1: Chargement des données
|
|
if not test_data_loading():
|
|
print("\n❌ Tests interrompus - problème de chargement")
|
|
return
|
|
|
|
# Test 2: Recommandations
|
|
test_recommendations()
|
|
|
|
# Test 3: Cas limites
|
|
test_edge_cases()
|
|
|
|
print("\n✨ Tests terminés")
|
|
|
|
if __name__ == "__main__":
|
|
main() |