GoogleLuma-Backend / scripts /test_route.py
DeployBot
Deploy to HF with LFS
1dc52fb
"""
Test: Chandigarh Airport → PEC (same test as Google Maps comparison).
Google Maps shows: 36 min, 18.3 km, 3 different routes.
"""
import httpx
import time
import json
# Same coordinates user tested with
SRC_LAT, SRC_LON = 30.6741923, 76.7909851
DEST_LAT, DEST_LON = 30.7664869, 76.7850788
print("=" * 60)
print("Google Luma V3 Route Test")
print(f"Origin: ({SRC_LAT}, {SRC_LON})")
print(f"Destination: ({DEST_LAT}, {DEST_LON})")
print("=" * 60)
start = time.time()
r = httpx.get(
"http://localhost:8000/api/v1/routing/routes/compare",
params={
"src_lat": SRC_LAT,
"src_lon": SRC_LON,
"dest_lat": DEST_LAT,
"dest_lon": DEST_LON,
},
timeout=30,
)
elapsed = time.time() - start
if r.status_code != 200:
print(f"\nERROR {r.status_code}: {r.text}")
else:
data = r.json()
print(f"\nResponse time: {elapsed:.2f}s\n")
print(f"{'Mode':<12} {'Safety':>8} {'Time':>10} {'Distance':>10} {'Points':>8}")
print("-" * 52)
for route in data["routes"]:
mode = route["mode"]
safety = route["average_safety_score"]
time_s = route["estimated_time_seconds"]
# Approximate distance from geometry points
pts = len(route["route_geometry"])
time_min = time_s / 60
# Calculate actual distance from geometry
total_dist = 0
geom = route["route_geometry"]
for i in range(1, len(geom)):
import math
R = 6371
dlat = math.radians(geom[i]["lat"] - geom[i-1]["lat"])
dlon = math.radians(geom[i]["lon"] - geom[i-1]["lon"])
a = math.sin(dlat/2)**2 + math.cos(math.radians(geom[i-1]["lat"])) * math.cos(math.radians(geom[i]["lat"])) * math.sin(dlon/2)**2
total_dist += R * 2 * math.atan2(math.sqrt(a), math.sqrt(1-a))
print(
f"{mode:<12} {safety:>7.3f} "
f"{time_min:>8.1f}min "
f"{total_dist:>8.1f}km "
f"{pts:>7}"
)
print(f"\nRankings: {json.dumps(data['rankings'])}")
print(f"\nTradeoffs:")
for mode, metrics in data["tradeoff_metrics"].items():
print(f" {mode}: time_diff={metrics['time_penalty_seconds']:.0f}s, safety_diff={metrics['safety_gain_absolute']:+.4f}")