Squashed 'vendor/ruvector/' content from commit b64c2172
git-subtree-dir: vendor/ruvector git-subtree-split: b64c21726f2bb37286d9ee36a7869fef60cc6900
This commit is contained in:
169
examples/scipix/tests/SUMMARY.md
Normal file
169
examples/scipix/tests/SUMMARY.md
Normal file
@@ -0,0 +1,169 @@
|
||||
# Integration Tests Summary
|
||||
|
||||
## Created Files
|
||||
|
||||
### Integration Tests (7 files)
|
||||
- `integration/mod.rs` - Test module organization
|
||||
- `integration/pipeline_tests.rs` - Full pipeline tests (9.1KB)
|
||||
- `integration/api_tests.rs` - API server tests (2.1KB)
|
||||
- `integration/cli_tests.rs` - CLI command tests (6.1KB)
|
||||
- `integration/cache_tests.rs` - Cache behavior tests (11KB)
|
||||
- `integration/accuracy_tests.rs` - Accuracy validation (12KB)
|
||||
- `integration/performance_tests.rs` - Performance validation (11KB)
|
||||
|
||||
### Common Utilities (5 files)
|
||||
- `common/mod.rs` - Utility module organization
|
||||
- `common/server.rs` - Test server setup/teardown (6.7KB)
|
||||
- `common/images.rs` - Image generation utilities (4.0KB)
|
||||
- `common/latex.rs` - LaTeX comparison utilities (5.9KB)
|
||||
- `common/metrics.rs` - Metric calculation (CER, WER, BLEU) (6.0KB)
|
||||
|
||||
### Test Infrastructure (2 files)
|
||||
- `lib.rs` - Test library root
|
||||
- `README.md` - Comprehensive test documentation
|
||||
|
||||
## Test Coverage
|
||||
|
||||
### Pipeline Tests
|
||||
✅ PNG → LaTeX pipeline
|
||||
✅ JPEG → MathML pipeline
|
||||
✅ WebP → HTML pipeline
|
||||
✅ Error propagation
|
||||
✅ Timeout handling
|
||||
✅ Batch processing
|
||||
✅ Preprocessing pipeline
|
||||
✅ Multi-format output
|
||||
✅ Caching integration
|
||||
|
||||
### API Tests
|
||||
✅ POST /v3/text with file upload
|
||||
✅ POST /v3/text with base64
|
||||
✅ POST /v3/text with URL
|
||||
✅ Rate limiting (5 req/min)
|
||||
✅ Authentication validation
|
||||
✅ Error responses
|
||||
✅ Concurrent requests (10 parallel)
|
||||
✅ Health check endpoint
|
||||
✅ Options processing
|
||||
|
||||
### CLI Tests
|
||||
✅ `ocr` command with file
|
||||
✅ `ocr` with output formats
|
||||
✅ `batch` command
|
||||
✅ `serve` command startup
|
||||
✅ `config` command (show/set)
|
||||
✅ Invalid file handling
|
||||
✅ Exit codes
|
||||
✅ Verbose output
|
||||
✅ JSON output
|
||||
✅ Help and version commands
|
||||
|
||||
### Cache Tests
|
||||
✅ Cache hit/miss behavior
|
||||
✅ Similarity-based lookup
|
||||
✅ Cache eviction (LRU)
|
||||
✅ Persistence across restarts
|
||||
✅ Cache invalidation
|
||||
✅ Hit ratio calculation
|
||||
✅ TTL expiration
|
||||
✅ Concurrent cache access
|
||||
|
||||
### Accuracy Tests
|
||||
✅ Simple expressions (CER < 0.05)
|
||||
✅ Im2latex-100k subset (50 samples)
|
||||
✅ Fractions (85%+ accuracy)
|
||||
✅ Special symbols (80%+ accuracy)
|
||||
✅ Regression detection
|
||||
✅ Confidence calibration
|
||||
|
||||
### Performance Tests
|
||||
✅ Latency within bounds (<100ms)
|
||||
✅ Memory usage limits (<100MB growth)
|
||||
✅ Memory leak detection (<1KB/iter)
|
||||
✅ Throughput (>5 img/sec)
|
||||
✅ Concurrent throughput (>10 req/sec)
|
||||
✅ Latency percentiles (P50/P95/P99)
|
||||
✅ Batch efficiency
|
||||
✅ Cold start warmup
|
||||
|
||||
## Key Features
|
||||
|
||||
### Test Utilities
|
||||
- **TestServer**: Mock server with configurable options
|
||||
- **Image Generation**: Programmatic equation rendering
|
||||
- **LaTeX Comparison**: Normalization and similarity
|
||||
- **Metrics**: CER, WER, BLEU calculation
|
||||
- **Cache Stats**: Hit/miss tracking
|
||||
|
||||
### Quality Metrics
|
||||
- Character Error Rate (CER)
|
||||
- Word Error Rate (WER)
|
||||
- BLEU score
|
||||
- Precision/Recall/F1
|
||||
- Confidence scores
|
||||
- Processing time
|
||||
|
||||
### Performance Targets
|
||||
- Latency: <100ms (simple equations)
|
||||
- Throughput: >5 images/second
|
||||
- Memory: <100MB increase
|
||||
- No memory leaks
|
||||
- P50: <100ms, P95: <200ms, P99: <500ms
|
||||
|
||||
## Total Statistics
|
||||
|
||||
- **Total Files**: 14
|
||||
- **Total Lines**: 2,473+
|
||||
- **Test Count**: 50+
|
||||
- **Coverage Target**: 80%+
|
||||
|
||||
## Dependencies Required
|
||||
|
||||
```toml
|
||||
[dev-dependencies]
|
||||
tokio = { version = "1", features = ["full"] }
|
||||
tokio-test = "0.4"
|
||||
reqwest = { version = "0.11", features = ["json", "multipart"] }
|
||||
assert_cmd = "2.0"
|
||||
predicates = "3.0"
|
||||
serde_json = "1.0"
|
||||
image = "0.24"
|
||||
imageproc = "0.23"
|
||||
rusttype = "0.9"
|
||||
rand = "0.8"
|
||||
futures = "0.3"
|
||||
base64 = "0.21"
|
||||
env_logger = "0.10"
|
||||
```
|
||||
|
||||
## Running Tests
|
||||
|
||||
```bash
|
||||
# All integration tests
|
||||
cargo test --test '*' --all-features
|
||||
|
||||
# Specific test suite
|
||||
cargo test --test integration::pipeline_tests
|
||||
|
||||
# With logging
|
||||
RUST_LOG=debug cargo test --test '*' -- --nocapture
|
||||
|
||||
# Single test
|
||||
cargo test test_pipeline_png_to_latex
|
||||
```
|
||||
|
||||
## Next Steps
|
||||
|
||||
1. ✅ Integration tests created
|
||||
2. ⏳ Add test data (Im2latex subset)
|
||||
3. ⏳ Implement actual OCR engine
|
||||
4. ⏳ Implement API server
|
||||
5. ⏳ Implement CLI
|
||||
6. ⏳ Add CI/CD pipeline
|
||||
7. ⏳ Run tests and fix failures
|
||||
|
||||
---
|
||||
|
||||
Created: 2025-11-28
|
||||
Author: Testing Agent
|
||||
Status: Complete
|
||||
Reference in New Issue
Block a user