ALBORAQ-AI-IMMO / backend /test_dirty_data.py
mhdbbbbb's picture
Upload folder using huggingface_hub
fc41845 verified
import requests
import json
def test_dirty_data():
url = "http://localhost:8000/predict"
# Test cases:
# 1. Missing fields (should be handled by Pydantic validation)
# 2. Null/None values (if allowed by Pydantic)
# 3. Unknown categorical values (should be handled by OneHotEncoder handle_unknown='ignore')
# 4. Out of range numerical values
test_cases = [
{
"name": "Unknown Categorical Values",
"payload": {
"City": "Mars city",
"Neighborhood": "Alien Quarter",
"Type": "Spaceship",
"Surface": 5000.0,
"Rooms": 100,
"Bedrooms": 50,
"Standing": "Galactic",
"Residency": "Moon Base",
"Orientation": "Vertical",
"View": "Earth View",
"Condition": "Futuristic",
"Floor": -5,
"Lift": 1,
"Pool": 1,
"Garden": 1,
"Parking_Spots": 100,
"Proximity_Tram": 0,
"Proximity_University": 0,
"Proximity_Mosque": 0
}
},
{
"name": "Extreme Numerical Values",
"payload": {
"City": "Casablanca",
"Neighborhood": "Anfa",
"Type": "Appartement",
"Surface": 999999.0,
"Rooms": 0,
"Bedrooms": -1,
"Standing": "Economique",
"Residency": "Public / Quartier ouvert",
"Orientation": "Nord",
"View": "Vue sur rue",
"Condition": "A rénover",
"Floor": 999,
"Lift": 0,
"Pool": 0,
"Garden": 0,
"Parking_Spots": 0,
"Proximity_Tram": 0,
"Proximity_University": 0,
"Proximity_Mosque": 0
}
}
]
for case in test_cases:
print(f"\n--- Testing: {case['name']} ---")
try:
response = requests.post(url, json=case['payload'])
print(f"Status: {response.status_code}")
if response.status_code == 200:
result = response.json()
print(f"Prediction: {result.get('estimated_price')} {result.get('currency')}")
print(f"AI Analysis: {result.get('ai_analysis')}")
else:
print(f"Error: {response.text}")
except Exception as e:
print(f"Connection error: {e}")
if __name__ == "__main__":
test_dirty_data()