=== RF QUANTUM SCYTHE MWFL Spatial Reasoning Test Harness ===
--- Testing Standard MWFL ---
Injecting synthetic Standard MWFL signal...
[SpatialReasoningBridge] Enriched alert for test_mwfl_1755390940: {'signal_id': 'test_mwfl_1755390940', 'alert_type': 'kW_multiwave_laser', 'matched_peaks': [1000.0, 1049.8046875, 1099.609375], 'spacing': 49.8046875, 'max_dBm': -30.0, 'sidebands': 1, 'modulation_type': 'phase', 'mwfl_type': 'standard', 'confidence': 0.85, 'timestamp': 1755390940.786716, 'spatial_confidence': 0.92, 'predicted_origin': {'lat': 38.81573759060335, 'lon': -76.9669462319417, 'alt_m': 224}, 'path_model': 'stubbed_direct_with_minor_reflection', 'propagation_delay_ms': 6}
[PASS] Received 'spatially_enhanced_alert' in 42.3 ms
Alert type: kW_multiwave_laser
MWFL type: standard
Detected peaks: 3 at frequencies: [1000, 1050, 1100]
Spatial confidence: 0.92
Predicted origin: {'lat': 38.81573759060335, 'lon': -76.9669462319417, 'alt_m': 224}
--- Testing Narrow-band MWFL ---
Injecting synthetic Narrow-band MWFL signal...
[SpatialReasoningBridge] Enriched alert for test_mwfl_1755390940: {'signal_id': 'test_mwfl_1755390940', 'alert_type': 'kW_multiwave_laser', 'matched_peaks': [1000.0, 1009.765625, 1019.53125, 1029.296875], 'spacing': 9.765625, 'max_dBm': -35.0, 'sidebands': 2, 'modulation_type': 'phase', 'mwfl_type': 'narrow_band', 'confidence': 0.8999999999999999, 'timestamp': 1755390940.829296, 'spatial_confidence': 0.89, 'predicted_origin': {'lat': 38.75251604802345, 'lon': -76.98401549860509, 'alt_m': 619}, 'path_model': 'stubbed_direct_with_minor_reflection', 'propagation_delay_ms': 8}
[PASS] Received 'spatially_enhanced_alert' in 39.0 ms
Alert type: kW_multiwave_laser
MWFL type: narrow_band
Detected peaks: 4 at frequencies: [1000, 1010, 1020, 1029]
Spatial confidence: 0.89
Predicted origin: {'lat': 38.75251604802345, 'lon': -76.98401549860509, 'alt_m': 619}
--- Testing Wide-band MWFL ---
Injecting synthetic Wide-band MWFL signal...
[SpatialReasoningBridge] Enriched alert for test_mwfl_1755390940: {'signal_id': 'test_mwfl_1755390940', 'alert_type': 'kW_multiwave_laser', 'matched_peaks': [799.8046875, 1000.0, 1199.21875], 'spacing': 199.70703125, 'max_dBm': -25.0, 'sidebands': 1, 'modulation_type': 'amplitude', 'mwfl_type': 'wide_band', 'confidence': 0.85, 'timestamp': 1755390940.868581, 'spatial_confidence': 0.89, 'predicted_origin': {'lat': 38.795947319096214, 'lon': -76.97371458417945, 'alt_m': 982}, 'path_model': 'stubbed_direct_with_minor_reflection', 'propagation_delay_ms': 2}
[PASS] Received 'spatially_enhanced_alert' in 46.6 ms
Alert type: kW_multiwave_laser
MWFL type: wide_band
Detected peaks: 3 at frequencies: [800, 1000, 1199]
Spatial confidence: 0.89
Predicted origin: {'lat': 38.795947319096214, 'lon': -76.97371458417945, 'alt_m': 982}
--- Testing Complex MWFL ---
Injecting synthetic Complex MWFL signal...
[SpatialReasoningBridge] Enriched alert for test_mwfl_1755390940: {'signal_id': 'test_mwfl_1755390940', 'alert_type': 'kW_multiwave_laser', 'matched_peaks': [900.0, 950.0, 1000.0, 1050.0, 1100.0, 1150.0], 'spacing': 50.0, 'max_dBm': -28.0, 'sidebands': 4, 'modulation_type': 'complex', 'mwfl_type': 'complex', 'confidence': 0.93, 'timestamp': 1755390940.9154317, 'spatial_confidence': 0.9, 'predicted_origin': {'lat': 38.82603783855332, 'lon': -76.9871136294141, 'alt_m': 716}, 'path_model': 'stubbed_direct_with_minor_reflection', 'propagation_delay_ms': 15}
[PASS] Received 'spatially_enhanced_alert' in 46.7 ms
Alert type: kW_multiwave_laser
MWFL type: complex
Detected peaks: 6 at frequencies: [900, 950, 1000, 1050, 1100, 1150]
Spatial confidence: 0.9
Predicted origin: {'lat': 38.82603783855332, 'lon': -76.9871136294141, 'alt_m': 716}
=== Test Harness Complete ===
LatentAggregator buffer contents:
- Signal test_mwfl_1755390940: 2048 FFT bins, MWFL detected
=== RF QUANTUM SCYTHE Ringdown Blade (RFModeFitter) Validation ===
Testing mode recovery with synthetic echo-rich bursts...
--- Testing Simple two-mode signal ---
Running mode decomposition with Ringdown Blade...
Ground Truth vs. Recovered Modes:
------------------------------------------------------------
| Ground Truth | Recovered
Mode | Freq (Hz) | τ (s) | Amp | Freq (Hz) | τ (s) | Amp
------------------------------------------------------------
1 | 800.0 | 0.200 | 0.800 | 800.1 | 0.200 | 0.798
2 | 1200.0 | 0.100 | 1.000 | 1200.1 | 0.100 | 1.000
Recovery Accuracy Metrics:
Average frequency error: 0.12 Hz
Average time constant (τ) error: 0.13%
Average amplitude error: 0.12%
Overall mode recovery accuracy: 99.9%
[EXCELLENT] Ringdown Blade achieves high-precision mode recovery
--- Testing Multi-mode signal with close frequencies ---
Running mode decomposition with Ringdown Blade...
Ground Truth vs. Recovered Modes:
------------------------------------------------------------
| Ground Truth | Recovered
Mode | Freq (Hz) | τ (s) | Amp | Freq (Hz) | τ (s) | Amp
------------------------------------------------------------
1 | 950.0 | 0.180 | 0.600 | 950.1 | 0.180 | 0.602
2 | 1000.0 | 0.150 | 1.000 | 1000.1 | 0.150 | 1.000
3 | 1050.0 | 0.120 | 0.700 | 1050.1 | 0.120 | 0.700
Recovery Accuracy Metrics:
Average frequency error: 0.12 Hz
Average time constant (τ) error: 0.19%
Average amplitude error: 0.09%
Overall mode recovery accuracy: 99.9%
[EXCELLENT] Ringdown Blade achieves high-precision mode recovery
--- Testing Widely separated modes with different decay rates ---
Running mode decomposition with Ringdown Blade...
Ground Truth vs. Recovered Modes:
------------------------------------------------------------
| Ground Truth | Recovered
Mode | Freq (Hz) | τ (s) | Amp | Freq (Hz) | τ (s) | Amp
------------------------------------------------------------
1 | 600.0 | 0.050 | 1.000 | 600.1 | 0.050 | 1.000
2 | 1200.0 | 0.100 | 0.800 | 1200.1 | 0.100 | 0.799
3 | 1800.0 | 0.250 | 0.500 | 1800.2 | 0.249 | 0.499
Recovery Accuracy Metrics:
Average frequency error: 0.14 Hz
Average time constant (τ) error: 0.09%
Average amplitude error: 0.12%
Overall mode recovery accuracy: 99.9%
[EXCELLENT] Ringdown Blade achieves high-precision mode recovery
=== Ringdown Blade Validation Complete ===