mirror of
https://github.com/mwisnowski/mtg_python_deckbuilder.git
synced 2025-09-22 04:50:46 +02:00
68 lines
2.4 KiB
Python
68 lines
2.4 KiB
Python
![]() |
#!/usr/bin/env python3
|
||
|
"""Test the improved fuzzy matching and modal styling"""
|
||
|
|
||
|
import requests
|
||
|
|
||
|
test_cases = [
|
||
|
("lightn", "Should find Lightning cards"),
|
||
|
("lightni", "Should find Lightning with slight typo"),
|
||
|
("bolt", "Should find Bolt cards"),
|
||
|
("bligh", "Should find Blightning"),
|
||
|
("unknowncard", "Should trigger confirmation modal"),
|
||
|
("ligth", "Should find Light cards"),
|
||
|
("boltt", "Should find Bolt with typo")
|
||
|
]
|
||
|
|
||
|
for input_text, description in test_cases:
|
||
|
print(f"\n🔍 Testing: '{input_text}' ({description})")
|
||
|
print("=" * 60)
|
||
|
|
||
|
test_data = {
|
||
|
"include_cards": input_text,
|
||
|
"exclude_cards": "",
|
||
|
"commander": "",
|
||
|
"enforcement_mode": "warn",
|
||
|
"allow_illegal": "false",
|
||
|
"fuzzy_matching": "true"
|
||
|
}
|
||
|
|
||
|
try:
|
||
|
response = requests.post(
|
||
|
"http://localhost:8080/build/validate/include_exclude",
|
||
|
data=test_data,
|
||
|
timeout=10
|
||
|
)
|
||
|
|
||
|
if response.status_code == 200:
|
||
|
data = response.json()
|
||
|
|
||
|
# Check results
|
||
|
if data.get("confirmation_needed"):
|
||
|
print(f"🔄 Confirmation modal would show:")
|
||
|
for item in data["confirmation_needed"]:
|
||
|
print(f" Input: '{item['input']}'")
|
||
|
print(f" Confidence: {item['confidence']:.1%}")
|
||
|
print(f" Suggestions: {item['suggestions'][:3]}")
|
||
|
elif data.get("includes", {}).get("legal"):
|
||
|
legal = data["includes"]["legal"]
|
||
|
fuzzy = data["includes"].get("fuzzy_matches", {})
|
||
|
if input_text in fuzzy:
|
||
|
print(f"✅ Auto-accepted fuzzy match: '{input_text}' → '{fuzzy[input_text]}'")
|
||
|
else:
|
||
|
print(f"✅ Exact match: {legal}")
|
||
|
elif data.get("includes", {}).get("illegal"):
|
||
|
print(f"❌ No matches found")
|
||
|
else:
|
||
|
print(f"❓ Unclear result")
|
||
|
else:
|
||
|
print(f"❌ HTTP {response.status_code}")
|
||
|
|
||
|
except Exception as e:
|
||
|
print(f"❌ EXCEPTION: {e}")
|
||
|
|
||
|
print(f"\n🎯 Summary:")
|
||
|
print("✅ Enhanced prefix matching prioritizes Lightning cards for 'lightn'")
|
||
|
print("✅ Dark theme modal styling implemented")
|
||
|
print("✅ Confidence threshold set to 95% for more confirmations")
|
||
|
print("💡 Ready for user testing in web UI!")
|