# Testing the Speed Optimizations ## Quick Test 1. **Start the app:** ```bash python app.py ``` 2. **Load the sample invalid RDF** (click "Load Invalid Sample") 3. **Click "Validate RDF"** with default settings 4. **Expected behavior:** - ⏱️ Should complete in **< 5 seconds** (was 2 minutes) - 📝 Steps will show: "Attempting rapid fix..." → "✅ Rapid fix successful!" - ✅ Corrected RDF should pass validation - 🔍 Should add missing: language, content, adminMetadata ## Detailed Testing Scenarios ### Test 1: Simple Missing Properties (Rapid Fix) **Input:** Work with missing title, language, content **Expected:** < 5 seconds, rapid fix success **Check:** Steps show "✅ Rapid fix successful!" ### Test 2: Complex Errors (Minimal AI) **Input:** Work with structural issues, wrong data types **Expected:** 15-25 seconds, minimal AI correction **Check:** Steps show "Attempting minimal AI correction..." ### Test 3: Very Complex (Full AI) **Input:** Multiple nested errors, invalid URIs, missing relationships **Expected:** 30-45 seconds, full AI correction **Check:** Steps show progression through all tiers ### Test 4: Repeated Errors (Cache Hit) **Input:** Same invalid RDF tested twice **Expected:** Second run < 1 second **Check:** Steps show "Using cached correction for repeated validation errors" ## Performance Benchmarks Record times for each test: | Test Case | Expected | Actual | Status | |-----------|----------|--------|--------| | Simple (Rapid) | < 5s | ___s | [ ] | | Complex (Minimal AI) | 15-25s | ___s | [ ] | | Very Complex (Full AI) | 30-45s | ___s | [ ] | | Cached Repeat | < 1s | ___s | [ ] | ## Verification Checklist - [ ] Sample invalid RDF fixes in < 5 seconds - [ ] Steps logging shows rapid fix attempt - [ ] Re-validation occurs after correction - [ ] Cache stores successful corrections - [ ] Max attempts defaults to 2 (not 5) - [ ] Timeout prevents hanging (45s max) - [ ] All corrections maintain re-validation - [ ] UI shows updated max attempts (1-3 range) ## Troubleshooting ### If rapid fix fails: - Check console for: "Attempting rapid fix..." - Verify pattern matching in `rapid_fix_missing_properties()` - Ensure VALIDATOR_AVAILABLE is True ### If still slow (> 45s): - Check HF_API_KEY is set (for AI fallback) - Verify timeouts are applied (20s per call, 45s total) - Look for network issues in API calls ### If cache not working: - Check: "Using cached correction..." in steps - Verify `_make_fix_cache_key()` generates consistent keys - Ensure OrderedDict import is present ## Debug Mode Enable step-by-step logging: 1. Check "Show steps" in UI 2. Watch console output 3. Verify tier progression: Rapid → Minimal → Full ## Success Criteria ✅ Sample invalid RDF: **< 5 seconds** ✅ Complex errors: **< 30 seconds** ✅ No hangs: **45 second timeout enforced** ✅ Cache hits: **< 1 second** ✅ Re-validation: **Always occurs** ## Rollback If issues occur, revert these functions to original: - `rapid_fix_missing_properties()` - `get_ai_correction_minimal()` - `get_ai_correction_targeted()` - Configuration: MAX_CORRECTION_ATTEMPTS, timeouts