Coverage Summary for Class: TrainingValidState (com.vsevolodganin.clicktrack.training)
Class |
Method, %
|
Branch, %
|
Line, %
|
Instruction, %
|
TrainingValidState |
0%
(0/2)
|
0%
(0/2)
|
0%
(0/7)
|
0%
(0/136)
|
TrainingValidState$Companion |
0%
(0/1)
|
|
0%
(0/1)
|
0%
(0/2)
|
TrainingValidState$Ending |
|
TrainingValidState$Ending$ByTempo |
0%
(0/3)
|
0%
(0/2)
|
0%
(0/3)
|
0%
(0/31)
|
TrainingValidState$Ending$ByTempo$Companion |
0%
(0/1)
|
|
0%
(0/1)
|
0%
(0/2)
|
TrainingValidState$Ending$ByTime |
0%
(0/3)
|
0%
(0/2)
|
0%
(0/4)
|
0%
(0/49)
|
TrainingValidState$Ending$ByTime$Companion |
0%
(0/1)
|
|
0%
(0/1)
|
0%
(0/2)
|
TrainingValidState$Ending$Companion |
0%
(0/1)
|
|
0%
(0/1)
|
0%
(0/35)
|
Total |
0%
(0/12)
|
0%
(0/6)
|
0%
(0/18)
|
0%
(0/257)
|
package com.vsevolodganin.clicktrack.training
import com.vsevolodganin.clicktrack.model.BeatsPerMinute
import com.vsevolodganin.clicktrack.model.CueDuration
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlin.time.Duration
@Serializable
data class TrainingValidState(
val startingTempo: BeatsPerMinute,
val mode: TrainingEditState.TrainingMode,
val segmentLength: CueDuration,
val tempoChange: BeatsPerMinute,
val ending: Ending,
) {
@Serializable
sealed interface Ending {
val kind: TrainingEndingKind
@Serializable
@SerialName("com.vsevolodganin.clicktrack.state.redux.TrainingPersistableState.Ending.ByTempo") // For backward compatibility
class ByTempo(val endingTempo: BeatsPerMinute) : Ending {
override val kind: TrainingEndingKind
get() = TrainingEndingKind.BY_TEMPO
}
@Serializable
@SerialName("com.vsevolodganin.clicktrack.state.redux.TrainingPersistableState.Ending.ByTime") // For backward compatibility
class ByTime(
@Suppress("DEPRECATION") // Kept legacy serializer for backward compatibility
@Serializable(with = com.vsevolodganin.clicktrack.utils.time.LegacyDurationSerializer::class)
val duration: Duration,
) : Ending {
override val kind: TrainingEndingKind
get() = TrainingEndingKind.BY_TIME
}
}
}