Auto commit Sat Mar 21 11:01:02 PM CDT 2026
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package com.mindmachine.mvp
|
||||
|
||||
import com.mindmachine.mvp.domain.RuntimeState
|
||||
import com.mindmachine.mvp.session.sessionProgressFraction
|
||||
import com.mindmachine.mvp.session.shouldRevealSystemBarsOnTap
|
||||
import com.mindmachine.mvp.session.shouldShowActiveControlsByDefault
|
||||
import com.mindmachine.mvp.session.shouldUseImmersiveFullscreen
|
||||
@@ -36,12 +37,20 @@ class ActiveSessionUiTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
fun tap_to_reveal_system_bars_is_only_enabled_during_active_visual_stimulation() {
|
||||
assertTrue(shouldRevealSystemBarsOnTap(isVisualMode = true, runtimeState = RuntimeState.COUNTDOWN))
|
||||
assertTrue(shouldRevealSystemBarsOnTap(isVisualMode = true, runtimeState = RuntimeState.RUNNING))
|
||||
|
||||
fun tap_to_reveal_system_bars_is_disabled() {
|
||||
assertFalse(shouldRevealSystemBarsOnTap(isVisualMode = true, runtimeState = RuntimeState.COUNTDOWN))
|
||||
assertFalse(shouldRevealSystemBarsOnTap(isVisualMode = true, runtimeState = RuntimeState.RUNNING))
|
||||
assertFalse(shouldRevealSystemBarsOnTap(isVisualMode = false, runtimeState = RuntimeState.RUNNING))
|
||||
assertFalse(shouldRevealSystemBarsOnTap(isVisualMode = true, runtimeState = RuntimeState.PAUSED))
|
||||
assertFalse(shouldRevealSystemBarsOnTap(isVisualMode = true, runtimeState = RuntimeState.COMPLETED))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun session_progress_fraction_tracks_elapsed_time_and_clamps() {
|
||||
assertTrue(sessionProgressFraction(durationSec = 600, remainingSec = 600) == 0f)
|
||||
assertTrue(sessionProgressFraction(durationSec = 600, remainingSec = 300) == 0.5f)
|
||||
assertTrue(sessionProgressFraction(durationSec = 600, remainingSec = 0) == 1f)
|
||||
assertTrue(sessionProgressFraction(durationSec = 600, remainingSec = 800) == 0f)
|
||||
assertTrue(sessionProgressFraction(durationSec = 600, remainingSec = -10) == 1f)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,22 +7,47 @@ import org.junit.Test
|
||||
|
||||
class PresetDefaultsTest {
|
||||
@Test
|
||||
fun mvp_has_exactly_three_presets_with_spec_defaults() {
|
||||
assertEquals(3, Presets.builtIn.size)
|
||||
val relax = Presets.builtIn.first { it.id == "relax" }
|
||||
val focus = Presets.builtIn.first { it.id == "focus" }
|
||||
val sleep = Presets.builtIn.first { it.id == "sleep" }
|
||||
fun mvp_has_eight_preset_programs_with_expected_defaults() {
|
||||
assertEquals(8, Presets.builtIn.size)
|
||||
val deepRelease = Presets.builtIn.first { it.id == "deep_release" }
|
||||
val laserFocus = Presets.builtIn.first { it.id == "laser_focus" }
|
||||
val creativeDrift = Presets.builtIn.first { it.id == "creative_drift" }
|
||||
val resetBreath = Presets.builtIn.first { it.id == "reset_breath" }
|
||||
val nightRampdown = Presets.builtIn.first { it.id == "night_rampdown" }
|
||||
val powerWarmup = Presets.builtIn.first { it.id == "power_warmup" }
|
||||
val bodyScan = Presets.builtIn.first { it.id == "body_scan" }
|
||||
val stormToStill = Presets.builtIn.first { it.id == "storm_to_still" }
|
||||
|
||||
assertEquals(10 * 60, relax.defaultDurationSec)
|
||||
assertEquals(VisualPattern.PULSE, relax.visualPatternType)
|
||||
assertEquals(167, relax.flashIntervalMs)
|
||||
assertEquals(18 * 60, deepRelease.defaultDurationSec)
|
||||
assertEquals(VisualPattern.PULSE, deepRelease.visualPatternType)
|
||||
assertEquals(260, deepRelease.flashIntervalMs)
|
||||
|
||||
assertEquals(15 * 60, focus.defaultDurationSec)
|
||||
assertEquals(VisualPattern.FLASH, focus.visualPatternType)
|
||||
assertEquals(100, focus.flashIntervalMs)
|
||||
assertEquals(16 * 60, laserFocus.defaultDurationSec)
|
||||
assertEquals(VisualPattern.FLASH, laserFocus.visualPatternType)
|
||||
assertEquals(120, laserFocus.flashIntervalMs)
|
||||
|
||||
assertEquals(20 * 60, sleep.defaultDurationSec)
|
||||
assertEquals(VisualPattern.PULSE, sleep.visualPatternType)
|
||||
assertEquals(333, sleep.flashIntervalMs)
|
||||
assertEquals(22 * 60, creativeDrift.defaultDurationSec)
|
||||
assertEquals(VisualPattern.PULSE, creativeDrift.visualPatternType)
|
||||
assertEquals(190, creativeDrift.flashIntervalMs)
|
||||
|
||||
assertEquals(12 * 60, resetBreath.defaultDurationSec)
|
||||
assertEquals(VisualPattern.PULSE, resetBreath.visualPatternType)
|
||||
assertEquals(300, resetBreath.flashIntervalMs)
|
||||
|
||||
assertEquals(28 * 60, nightRampdown.defaultDurationSec)
|
||||
assertEquals(VisualPattern.PULSE, nightRampdown.visualPatternType)
|
||||
assertEquals(360, nightRampdown.flashIntervalMs)
|
||||
|
||||
assertEquals(9 * 60, powerWarmup.defaultDurationSec)
|
||||
assertEquals(VisualPattern.FLASH, powerWarmup.visualPatternType)
|
||||
assertEquals(95, powerWarmup.flashIntervalMs)
|
||||
|
||||
assertEquals(20 * 60, bodyScan.defaultDurationSec)
|
||||
assertEquals(VisualPattern.PULSE, bodyScan.visualPatternType)
|
||||
assertEquals(210, bodyScan.flashIntervalMs)
|
||||
|
||||
assertEquals(24 * 60, stormToStill.defaultDurationSec)
|
||||
assertEquals(VisualPattern.FLASH, stormToStill.visualPatternType)
|
||||
assertEquals(150, stormToStill.flashIntervalMs)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user