# MidStream Integration Test Guide ## Overview This guide describes the comprehensive integration test suite for the MidStream system, covering end-to-end workflows across all published crates. ## Test Files ### 1. `/tests/integration_tests.rs` - Native Integration Tests Comprehensive integration tests for native (non-WASM) environments covering: #### Test 1: Scheduler + Temporal Compare Integration - **Purpose**: Pattern-based task prioritization - **Scenario**: - Historical execution patterns are analyzed using temporal comparison - Tasks are scheduled with priority based on pattern similarity - Verification of correct priority assignment and task retrieval - **Coverage**: Cross-crate integration between `nanosecond-scheduler` and `temporal-compare` #### Test 2: Scheduler + Attractor Analysis Integration - **Purpose**: Dynamics-aware scheduling - **Scenario**: - System behavior is tracked during task scheduling - Attractor analysis detects stability patterns - Scheduling adapts based on behavioral dynamics - **Coverage**: Integration of `nanosecond-scheduler` with `temporal-attractor-studio` #### Test 3: Attractor + Neural Solver Integration - **Purpose**: Behavioral verification - **Scenario**: - Detect limit cycle behavior in system dynamics - Verify temporal properties (boundedness, periodicity) - Ensure attractor classification matches temporal invariants - **Coverage**: Deep integration between `temporal-attractor-studio` and `temporal-neural-solver` #### Test 4: Temporal Compare + Neural Solver Integration - **Purpose**: Pattern property verification - **Scenario**: - Pattern matching identifies sequence similarities - Temporal logic verifies safety properties - Correlation between pattern similarity and verification confidence - **Coverage**: Integration of `temporal-compare` with `temporal-neural-solver` #### Test 5: Full System with Strange Loop - **Purpose**: Meta-learning from complete workflows - **Scenario**: - Multi-level meta-learning (Level 0, 1, 2) - Integration of all crates in hierarchical analysis - Behavioral dynamics analysis and verification - **Coverage**: Complete system integration including `strange-loop` #### Test 6: Error Propagation - **Purpose**: Robust error handling - **Scenarios**: - Dimension mismatch in attractor analysis - Insufficient data for analysis - Empty trace in temporal solver - Queue overflow in scheduler - Max depth exceeded in strange loop - Sequence length validation - **Coverage**: Error handling across all crates #### Test 7: Performance and Scalability - **Purpose**: Performance validation - **Metrics**: - Scheduler: 1000 tasks, <100ms total - Temporal Compare: Cache effectiveness - Attractor: 1000 points analysis - **Coverage**: Performance characteristics of all crates #### Test 8: Pattern Detection Pipeline - **Purpose**: Real-world pattern detection - **Scenario**: - Time series pattern matching - Repeating pattern detection - Pattern similarity scoring - **Coverage**: `temporal-compare` advanced features #### Test 9: State Management and Recovery - **Purpose**: State lifecycle management - **Scenarios**: - Clear operations for all components - Reset functionality - Memory leak prevention - **Coverage**: State management across all crates #### Test 10: Deadline and Priority Handling - **Purpose**: Real-time scheduling validation - **Scenarios**: - Multi-priority task scheduling - Execution order verification - Deadline miss detection - Scheduler lifecycle management - **Coverage**: `nanosecond-scheduler` advanced features ### 2. `/tests/wasm_integration_test.rs` - WASM Integration Tests WASM-specific integration tests for browser and WASM environments: #### Test 1: WASM Temporal Comparison - Basic temporal pattern matching in WASM environment - Browser console logging #### Test 2: WASM Scheduler - Async task scheduling in WASM - Statistics verification #### Test 3: WASM Attractor Analysis - Phase space analysis in browser - Confidence scoring #### Test 4: WASM Temporal Verification - Temporal logic verification in WASM - Safety property checking #### Test 5: WASM Meta-Learning - Strange loop operation in browser environment - Pattern learning verification #### Test 6: WASM Memory Limits - Memory-constrained operation - Limited allocation testing #### Test 7: WASM Performance - Browser performance API integration - Timing validation (<5s for 500-element comparison) #### Test 8: WASM Concurrent Operations - Browser-based concurrency - spawn_local integration - Atomic counter verification #### Test 9: WASM Error Handling - Error propagation in WASM - Browser-compatible error handling #### Test 10: WASM Integration Workflow - Complete workflow in browser - Pattern detection → scheduling → verification ## Running Tests ### Native Tests ```bash # Run all integration tests cargo test --test integration_tests # Run specific test cargo test --test integration_tests test_scheduler_temporal_integration # Run with output cargo test --test integration_tests -- --nocapture # Run with parallel execution disabled cargo test --test integration_tests -- --test-threads=1 ``` ### WASM Tests ```bash # Install wasm-pack if not already installed cargo install wasm-pack # Run WASM tests in headless browser wasm-pack test --headless --chrome tests/wasm_integration_test.rs # Run in Firefox wasm-pack test --headless --firefox tests/wasm_integration_test.rs # Run in actual browser (opens browser window) wasm-pack test --chrome tests/wasm_integration_test.rs ``` ## Test Coverage ### Cross-Crate Integration - ✅ Scheduler + Temporal Compare - ✅ Scheduler + Attractor Studio - ✅ Attractor Studio + Neural Solver - ✅ Temporal Compare + Neural Solver - ✅ Full system with Strange Loop ### Functional Areas - ✅ Pattern detection and matching - ✅ Real-time scheduling - ✅ Behavioral dynamics analysis - ✅ Temporal logic verification - ✅ Meta-learning and self-reference - ✅ Error handling and propagation - ✅ State management - ✅ Performance validation ### Scenarios - ✅ End-to-end workflows - ✅ Error conditions - ✅ Performance under load - ✅ Concurrent operations - ✅ State recovery - ✅ WASM compatibility ## Expected Results All tests should pass with the following characteristics: ### Performance Metrics - **Scheduler**: <100ms for 1000 tasks - **Temporal Compare**: Cache hit rate >50% on repeated comparisons - **Attractor Analysis**: <1s for 1000 points - **WASM Operations**: <5s for 500-element comparisons ### Quality Metrics - **Code Coverage**: >80% across all crates - **Error Detection**: 100% of invalid inputs rejected - **Memory Safety**: Zero memory leaks - **Thread Safety**: Safe concurrent access ## CI/CD Integration ### GitHub Actions Workflow ```yaml name: Integration Tests on: [push, pull_request] jobs: test-native: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: toolchain: stable - run: cargo test --test integration_tests test-wasm: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: toolchain: stable target: wasm32-unknown-unknown - run: cargo install wasm-pack - run: wasm-pack test --headless --chrome tests/wasm_integration_test.rs ``` ## Troubleshooting ### Common Issues #### Test Timeout ```bash # Increase timeout for slow tests cargo test --test integration_tests -- --test-threads=1 --timeout 300 ``` #### WASM Browser Not Found ```bash # Install Chrome/Firefox drivers # Ubuntu/Debian: sudo apt-get install chromium-chromedriver firefox-geckodriver # macOS: brew install chromedriver geckodriver ``` #### Cache Issues ```bash # Clear cargo cache cargo clean # Rebuild tests cargo test --test integration_tests --no-fail-fast ``` ## Extending Tests ### Adding New Integration Tests 1. **Identify integration points** between crates 2. **Create test scenario** covering real-world use case 3. **Add test function** to appropriate file 4. **Document test** in this guide 5. **Update CI/CD** configuration if needed ### Test Template ```rust /// Test N: [Test Name] /// /// Scenario: /// - [What this test does] /// - [Integration points] /// - [Expected outcomes] #[test] fn test_new_integration() { println!("\n=== Test N: [Test Name] ==="); // Setup let component1 = Component1::new(); let component2 = Component2::new(); // Execute let result = component1.interact_with(&component2); // Verify assert!(result.is_ok()); println!(" ✓ Integration verified"); println!("=== Test N PASSED ===\n"); } ``` ## Performance Benchmarking Integration tests also serve as performance benchmarks. Key metrics: ```rust use std::time::Instant; let start = Instant::now(); // ... test code ... let duration = start.elapsed(); assert!(duration.as_millis() < expected_ms, "Performance regression"); ``` ## Test Data Tests use synthetic data representative of real-world scenarios: - **Temporal sequences**: Workflow steps, state transitions - **Phase space points**: System dynamics, behavioral patterns - **Temporal traces**: State evolution, property verification - **Meta-patterns**: Learning hierarchies, self-reference ## Reporting Test results are formatted for easy reading: ``` ╔═══════════════════════════════════════════════════════════════╗ ║ MidStream Integration Test Suite ║ ╠═══════════════════════════════════════════════════════════════╣ ║ ║ ║ ✓ Test 1: Scheduler + Temporal Compare ║ ║ ✓ Test 2: Scheduler + Attractor Analysis ║ ... ╚═══════════════════════════════════════════════════════════════╝ ``` ## Contributing When adding new integration tests: 1. Follow existing patterns and naming conventions 2. Add comprehensive documentation 3. Include performance assertions 4. Update this guide 5. Ensure WASM compatibility where applicable 6. Add to CI/CD pipeline ## License Same as MidStream project (MIT OR Apache-2.0)