UX: seconds flash interval UI, hidden active controls, back-to-setup flow
This commit is contained in:
24
app/src/test/java/com/mindmachine/mvp/ActiveSessionUiTest.kt
Normal file
24
app/src/test/java/com/mindmachine/mvp/ActiveSessionUiTest.kt
Normal file
@@ -0,0 +1,24 @@
|
||||
package com.mindmachine.mvp
|
||||
|
||||
import com.mindmachine.mvp.domain.RuntimeState
|
||||
import com.mindmachine.mvp.session.shouldShowActiveControlsByDefault
|
||||
import org.junit.Assert.assertFalse
|
||||
import org.junit.Assert.assertTrue
|
||||
import org.junit.Test
|
||||
|
||||
class ActiveSessionUiTest {
|
||||
@Test
|
||||
fun controls_are_hidden_by_default_while_counting_down_or_running() {
|
||||
assertFalse(shouldShowActiveControlsByDefault(RuntimeState.COUNTDOWN))
|
||||
assertFalse(shouldShowActiveControlsByDefault(RuntimeState.RUNNING))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun controls_are_visible_by_default_when_not_actively_stimulating() {
|
||||
assertTrue(shouldShowActiveControlsByDefault(RuntimeState.IDLE))
|
||||
assertTrue(shouldShowActiveControlsByDefault(RuntimeState.PAUSED))
|
||||
assertTrue(shouldShowActiveControlsByDefault(RuntimeState.INTERRUPTED))
|
||||
assertTrue(shouldShowActiveControlsByDefault(RuntimeState.COMPLETED))
|
||||
assertTrue(shouldShowActiveControlsByDefault(RuntimeState.STOPPED))
|
||||
}
|
||||
}
|
||||
22
app/src/test/java/com/mindmachine/mvp/FlashIntervalUiTest.kt
Normal file
22
app/src/test/java/com/mindmachine/mvp/FlashIntervalUiTest.kt
Normal file
@@ -0,0 +1,22 @@
|
||||
package com.mindmachine.mvp
|
||||
|
||||
import com.mindmachine.mvp.session.flashIntervalMsToSeconds
|
||||
import com.mindmachine.mvp.session.flashIntervalSecondsToMs
|
||||
import org.junit.Assert.assertEquals
|
||||
import org.junit.Test
|
||||
|
||||
class FlashIntervalUiTest {
|
||||
@Test
|
||||
fun ms_to_seconds_conversion_is_correct() {
|
||||
assertEquals(0.05f, flashIntervalMsToSeconds(50), 0.0001f)
|
||||
assertEquals(0.167f, flashIntervalMsToSeconds(167), 0.0001f)
|
||||
assertEquals(2.0f, flashIntervalMsToSeconds(2000), 0.0001f)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun seconds_to_ms_conversion_rounds_to_nearest_int() {
|
||||
assertEquals(50, flashIntervalSecondsToMs(0.05f))
|
||||
assertEquals(167, flashIntervalSecondsToMs(0.167f))
|
||||
assertEquals(2000, flashIntervalSecondsToMs(2.0f))
|
||||
}
|
||||
}
|
||||
@@ -39,7 +39,7 @@ class SessionValidatorTest {
|
||||
@Test
|
||||
fun out_of_range_values_are_blocked() {
|
||||
assertEquals("Duration must be 1 to 30 minutes.", SessionValidator.validate(valid.copy(durationSec = 59), true))
|
||||
assertEquals("Flash interval must be 50 to 2000 ms.", SessionValidator.validate(valid.copy(flashIntervalMs = 49), true))
|
||||
assertEquals("Flash interval must be 0.05 to 2.00 seconds.", SessionValidator.validate(valid.copy(flashIntervalMs = 49), true))
|
||||
assertEquals("Carrier frequency must be 80 to 400 Hz.", SessionValidator.validate(valid.copy(carrierFrequencyHz = 79f), true))
|
||||
assertEquals("Binaural difference must be 0.5 to 20 Hz.", SessionValidator.validate(valid.copy(binauralDifferenceHz = 0.1f), true))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user