File size: 1,158 Bytes
77da5ce
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import pytest
from core.cascade_utils import animate_cascade
from core.life_state import LifeMetrics

def test_cascade_frame_count():
    """Ensure the cascade animation produces the standard 4 frames (Stable, Disruption, Cascade 1, Cascade 2)."""
    metrics = LifeMetrics()
    disruption = {"mental_wellbeing.stress_level": 30.0}
    
    frames = animate_cascade(disruption, metrics)
    
    assert len(frames) == 4
    assert frames[1]["status"]["mental_wellbeing.stress_level"] == "primary"
    assert "first" in frames[2]["status"].values()
    assert "second" in frames[3]["status"].values()

def test_cascade_value_propagation():
    """Verify that a disruption in stress propagates to sleep_quality via the dependency graph."""
    metrics = LifeMetrics()
    base_sleep = metrics.physical_health.sleep_quality
    
    # Stress (90) -> Sleep Quality (-0.4 weight in graph)
    disruption = {"mental_wellbeing.stress_level": 50.0}
    frames = animate_cascade(disruption, metrics)
    
    final_sleep = frames[-1]["flat"]["physical_health.sleep_quality"]
    assert final_sleep < base_sleep, "Cascade failed to propagate stress to sleep quality"