autonomie / test_hf.py
l0d0v1c's picture
Upload 9 files
ab792dc verified
#!/usr/bin/env python3
"""
Test script pour vérifier que l'application HF fonctionne correctement
"""
from bayesian_network_interface import AutonomyBayesianNetwork
def test_hf_deployment():
"""Test complet de l'application HF"""
print("🧪 Testing HuggingFace deployment...")
# Test 1: Chargement du réseau
print("1. Loading network...")
bn = AutonomyBayesianNetwork()
assert bn.pgmpy_model is not None, "Network failed to load"
print(f" ✅ Network loaded with {len(list(bn.pgmpy_model.nodes()))} variables")
# Test 2: Structure du réseau
print("2. Testing network structure...")
structure = bn.get_network_structure()
assert len(structure['nodes']) == 12, f"Expected 12 nodes, got {len(structure['nodes'])}"
assert len(structure['edges']) == 22, f"Expected 22 edges, got {len(structure['edges'])}"
print(f" ✅ Structure: {len(structure['nodes'])} nodes, {len(structure['edges'])} edges")
# Test 3: Inférence
print("3. Testing inference...")
result = bn.perform_inference_pgmpy({'Age': 'age_70_79', 'Sex': 'female'}, ['Global_Autonomy'])
assert not result.empty, "Inference failed"
assert len(result) == 4, f"Expected 4 states, got {len(result)}"
print(f" ✅ Inference working: {len(result)} probability states")
# Test 4: Facteurs influents
print("4. Testing influential factors...")
factors = bn.get_most_influential_factors()
assert len(factors) > 0, "No influential factors found"
print(f" ✅ Found {len(factors)} influential factors")
# Test 5: Recommandations
print("5. Testing recommendations...")
profile = {'Age': 'age_80_89', 'Sex': 'male', 'Education_Level': 'primary_or_below'}
recommendations = bn.generate_recommendations(profile)
assert len(recommendations) >= 0, "Recommendations failed"
print(f" ✅ Generated {len(recommendations)} recommendations")
print("\n🎉 All tests passed! HuggingFace deployment is ready.")
print("\n📊 Sample results:")
print(f" - Autonomy probability for 70-79 female: {result.iloc[0]['Probability']:.1%}")
print(f" - Most influential factor: {factors[0][0]} ({factors[0][1]:.1%} impact)")
if recommendations:
print(f" - Top recommendation: {recommendations[0]['recommendation'][:50]}...")
if __name__ == "__main__":
test_hf_deployment()