# Resilience Test Scenarios ## RT-AUG-01: Augmentation handles corrupted image gracefully - **Input**: 1 valid image + 1 corrupted image file (truncated JPEG) in data/ dir - **Action**: Run `augment_annotations()` - **Expected**: Valid image produces 8 outputs; corrupted image skipped without crashing pipeline; total output: 8 files - **Traces**: Restriction: Augmentation exception handling per-image ## RT-AUG-02: Augmentation handles missing label file - **Input**: 1 image with no matching label file - **Action**: Run `augment_annotation()` on the image - **Expected**: Exception caught per-thread; does not crash pipeline - **Traces**: Restriction: Augmentation exception handling ## RT-AUG-03: Augmentation transform failure produces fewer variants - **Input**: 1 image + label that causes some transforms to fail (extremely narrow bbox) - **Action**: Run `augment_inner()` - **Expected**: Returns 1-8 ImageLabel objects (original always present; failed variants skipped); no crash - **Traces**: Restriction: Transform failure handling ## RT-DSF-01: Dataset formation with empty processed directory - **Input**: Empty processed images dir - **Action**: Run `form_dataset()` - **Expected**: Creates empty train/valid/test directories; no crash - **Traces**: Restriction: Edge case handling ## RT-ENC-01: Decrypt with corrupted ciphertext - **Input**: Randomly modified ciphertext bytes - **Action**: `Security.decrypt_to(corrupted_bytes, key)` - **Expected**: Either raises exception or returns garbage bytes (not original) - **Traces**: AC: Encryption integrity ## RT-AQM-01: Malformed msgpack message - **Input**: Random bytes that aren't valid msgpack - **Action**: Pass to message handler - **Expected**: Exception caught; handler doesn't crash - **Traces**: AC: Error handling for malformed messages