Add duration test

dev_raz_wip
Laurent 7 years ago
parent b33693488d
commit 6643d33480
  1. 6
      app/build.gradle
  2. 11
      app/src/main/java/net/pokeranalytics/android/calculus/Calculator.kt
  3. 7
      app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt
  4. 43
      app/src/test/java/net/pokeranalytics/android/ExampleUnitTest.kt
  5. 22
      app/src/test/java/net/pokeranalytics/android/RealmUnitTest.kt

@ -62,8 +62,10 @@ dependencies {
// Test
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.1.0-alpha4'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha4'
androidTestImplementation 'androidx.test:core:1.1.0'
androidTestImplementation 'androidx.test:runner:1.1.0'
androidTestImplementation 'androidx.test:rules:1.1.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0'
}
apply plugin: 'com.google.gms.google-services'

@ -28,8 +28,9 @@ class Calculator {
fun shouldComputeStandardDeviation() : Boolean {
this.displayedStats.forEach { stat ->
when (stat) {
STANDARD_DEVIATION, STANDARD_DEVIATION_HOURLY, STANDARD_DEVIATION_BB_PER_100_HANDS -> return true
return when (stat) {
STANDARD_DEVIATION, STANDARD_DEVIATION_HOURLY, STANDARD_DEVIATION_BB_PER_100_HANDS -> true
else -> false
}
}
return false
@ -72,7 +73,8 @@ class Calculator {
fun compute(sessionGroup: SessionGroup, options: Options) : ComputedResults {
val sessions: List<SessionInterface> = sessionGroup.sessions
val sessionSets: Set<SessionSet> = setOf() // @todo get unique list of serie
var sessionSets = sessionGroup.sessions.mapNotNull { it.sessionSet }.toHashSet()
var results: ComputedResults = ComputedResults()
var sum: Double = 0.0
@ -98,7 +100,6 @@ class Calculator {
if (options.evolutionValues == Options.EvolutionValues.STANDARD) {
results.addEvolutionValue(sum, NETRESULT)
results.addEvolutionValue(sum / index, AVERAGE)
results.addEvolutionValue(index.toDouble(), NUMBER_OF_GAMES)
@ -138,7 +139,7 @@ class Calculator {
}
}
val average: Double = sum / sessions.size
val average: Double = sum / sessions.size.toDouble()
// Create stats
results.addStats(setOf(

@ -91,12 +91,6 @@ open class Session : RealmObject(), SessionInterface, DynamicRowDelegate, Displa
return session
}
fun testInstance(netResult: Double): Session {
var session: Session = Session.newInstance()
session.result?.netResult = netResult
return session
}
}
@Ignore // SessionInterface value
@ -141,7 +135,6 @@ open class Session : RealmObject(), SessionInterface, DynamicRowDelegate, Displa
}
override fun boolForRow(row: DynamicRowInterface): Boolean {
return false
}

@ -5,6 +5,7 @@ import net.pokeranalytics.android.model.realm.Session
import net.pokeranalytics.android.model.realm.SessionSet
import org.junit.Assert.fail
import org.junit.Test
import java.util.*
/**
* Example local unit test, which will execute on the development machine (host).
@ -12,7 +13,7 @@ import org.junit.Test
* See [testing documentation](http://d.android.com/tools/testing).
*/
class ExampleUnitTest {
class ExampleUnitTest : RealmUnitTest() {
class Grade(someValue: Double) : SessionInterface {
@ -26,7 +27,7 @@ class ExampleUnitTest {
}
@Test
// @Test
fun testStats() {
val grades: List<Grade> = listOf(Grade(10.0), Grade(20.0))
@ -50,24 +51,56 @@ class ExampleUnitTest {
}
// convenience extension
fun Session.Companion.testInstance(netResult: Double, startDate: Date, endDate: Date?): Session {
var session: Session = Session.newInstance()
session.result?.netResult = netResult
session.timeFrame?.setDate(startDate, endDate)
return session
}
@Test
fun testSessionStats() {
val sessions: List<Session> = listOf(Session.testInstance(-10.0), Session.testInstance(20.0))
val realm = RealmUnitTest.realmInstance()
realm.beginTransaction()
Calendar.getInstance().set(2019,1,1,10,0)
val sd1 = Calendar.getInstance().time
Calendar.getInstance().set(2019,1,1,11,0)
val ed1 = Calendar.getInstance().time
val s1 = Session.testInstance(-100.0, sd1, ed1)
Calendar.getInstance().set(2019,1,2,8,0)
val sd2 = Calendar.getInstance().time
Calendar.getInstance().set(2019,1,2,11,0)
val ed2 = Calendar.getInstance().time
val s2 = Session.testInstance(300.0, sd2, ed2)
val sessions: List<Session> = listOf(s1, s2)
val group = SessionGroup(name = "test", sessions = sessions)
realm.commitTransaction()
val results: ComputedResults = Calculator.compute(group, Calculator.Options())
val sum = results.computedStat(Stat.NETRESULT)
if (sum != null) {
assert(sum.value == 10.0) { "sum is ${sum.value}" }
assert(sum.value == 200.0) { "sum is ${sum.value}" }
} else {
fail("No Net result stat")
}
val average = results.computedStat(Stat.AVERAGE)
if (average != null) {
assert(average.value == 5.0) { "average is ${average.value}" }
assert(average.value == 100.0) { "average is ${average.value}" }
} else {
fail("No AVERAGE stat")
}
val duration = results.computedStat(Stat.DURATION)
if (duration != null) {
assert(duration.value == 4.0) { "duration is ${duration.value}" }
} else {
fail("No AVERAGE stat")
}

@ -0,0 +1,22 @@
package net.pokeranalytics.android
//import androidx.test.core.app.ApplicationProvider
import io.realm.Realm
import io.realm.RealmConfiguration
open class RealmUnitTest {
companion object {
fun realmInstance() : Realm {
// Application
// Realm.init(ApplicationProvider.getApplicationContext<PokerAnalyticsApplication>())
val testConfig = RealmConfiguration.Builder().inMemory().name("test-realm").build()
return Realm.getInstance(testConfig)
}
}
}
Loading…
Cancel
Save