Temporal_Exploration / tests /test_rhythma_regression.py
ciaochris's picture
Render Rhythma sessions as layered ambient audio
c901b5f
import numpy as np
from rhythma import RhythmaModulationEngine, RhythmaSymphAICore
def test_analyze_input_maps_stressed_text_to_relaxed_pattern():
core = RhythmaSymphAICore(use_groq=False, use_embeddings=False)
result = core.analyze_input("feeling stressed about work")
assert result["emotional_state"] == "stressed"
assert result["rhythm_pattern"] == "relaxed"
assert result["transcription"] == ""
assert result["error"] is None
def test_analyze_input_defaults_to_neutral_when_no_text_is_provided():
core = RhythmaSymphAICore(use_groq=False, use_embeddings=False)
result = core.analyze_input("")
assert result["emotional_state"] == "neutral"
assert result["rhythm_pattern"] == "calm"
assert result["transcription"] == ""
assert result["error"] is None
def test_render_session_has_expected_length_and_headroom():
engine = RhythmaModulationEngine(emotional_state="stressed", rhythm_pattern="calm")
profile = {
"tone_center": engine.base_freq,
"pattern": "calm",
"modulation_type": "sine",
"brightness": 0.2,
"density": 0.4,
"shimmer": 0.1,
"breath_rate": 0.08,
}
wave = engine.render_session(profile, 0.1)
assert len(wave) == 4410
assert np.max(np.abs(wave)) <= 0.9 + 1e-9
assert engine.get_symbolic_interpretation().startswith("Resonating in the Circle")