|
|
|
@ -1,18 +1,24 @@ |
|
|
|
package net.pokeranalytics.android |
|
|
|
package net.pokeranalytics.android |
|
|
|
|
|
|
|
|
|
|
|
import androidx.test.ext.junit.runners.AndroidJUnit4 |
|
|
|
import androidx.test.ext.junit.runners.AndroidJUnit4 |
|
|
|
|
|
|
|
import io.realm.Realm |
|
|
|
|
|
|
|
import io.realm.RealmList |
|
|
|
import io.realm.RealmResults |
|
|
|
import io.realm.RealmResults |
|
|
|
|
|
|
|
import io.realm.kotlin.where |
|
|
|
import net.pokeranalytics.android.calculus.Calculator |
|
|
|
import net.pokeranalytics.android.calculus.Calculator |
|
|
|
import net.pokeranalytics.android.calculus.ComputedResults |
|
|
|
import net.pokeranalytics.android.calculus.ComputedResults |
|
|
|
import net.pokeranalytics.android.calculus.SessionGroup |
|
|
|
import net.pokeranalytics.android.calculus.ComputableGroup |
|
|
|
import net.pokeranalytics.android.calculus.Stat |
|
|
|
import net.pokeranalytics.android.calculus.Stat |
|
|
|
import net.pokeranalytics.android.model.realm.Session |
|
|
|
import net.pokeranalytics.android.model.Limit |
|
|
|
import net.pokeranalytics.android.model.realm.SessionSet |
|
|
|
import net.pokeranalytics.android.model.realm.* |
|
|
|
import org.junit.Assert |
|
|
|
import org.junit.Assert |
|
|
|
import org.junit.Assert.assertEquals |
|
|
|
import org.junit.Assert.assertEquals |
|
|
|
import org.junit.Test |
|
|
|
import org.junit.Test |
|
|
|
import org.junit.runner.RunWith |
|
|
|
import org.junit.runner.RunWith |
|
|
|
|
|
|
|
import timber.log.Timber |
|
|
|
import java.text.SimpleDateFormat |
|
|
|
import java.text.SimpleDateFormat |
|
|
|
|
|
|
|
import java.time.LocalDate |
|
|
|
|
|
|
|
import java.time.Period |
|
|
|
import java.util.* |
|
|
|
import java.util.* |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
@ -24,14 +30,58 @@ import java.util.* |
|
|
|
class StatsInstrumentedUnitTest : RealmInstrumentedUnitTest() { |
|
|
|
class StatsInstrumentedUnitTest : RealmInstrumentedUnitTest() { |
|
|
|
|
|
|
|
|
|
|
|
// convenience extension |
|
|
|
// convenience extension |
|
|
|
fun Session.Companion.testInstance(netResult: Double, startDate: Date, endDate: Date?): Session { |
|
|
|
fun Session.Companion.testInstance( |
|
|
|
val session: Session = Session.newInstance(super.mockRealm, false) |
|
|
|
netResult: Double = 0.0, |
|
|
|
|
|
|
|
isTournament: Boolean = false, |
|
|
|
|
|
|
|
startDate: Date = Date(), |
|
|
|
|
|
|
|
endDate: Int = 1, |
|
|
|
|
|
|
|
bankroll: Bankroll? = null, |
|
|
|
|
|
|
|
game: Game? = null, |
|
|
|
|
|
|
|
location : Location? = null, |
|
|
|
|
|
|
|
tournamentName: TournamentName? = null, |
|
|
|
|
|
|
|
tournamentFeatures: RealmList<TournamentFeature> = RealmList(), |
|
|
|
|
|
|
|
numberOfTable: Int = 1, |
|
|
|
|
|
|
|
limit: Int? = null, |
|
|
|
|
|
|
|
tableSize: Int? = null |
|
|
|
|
|
|
|
): Session { |
|
|
|
|
|
|
|
val session: Session = Session.newInstance(super.mockRealm, isTournament, bankroll) |
|
|
|
|
|
|
|
session.game = game |
|
|
|
|
|
|
|
session.location = location |
|
|
|
|
|
|
|
session.tournamentFeatures = tournamentFeatures |
|
|
|
|
|
|
|
session.tournamentName = tournamentName |
|
|
|
|
|
|
|
session.limit = limit |
|
|
|
|
|
|
|
session.numberOfTables = numberOfTable |
|
|
|
|
|
|
|
session.tableSize = tableSize |
|
|
|
session.result?.netResult = netResult |
|
|
|
session.result?.netResult = netResult |
|
|
|
session.startDate = startDate |
|
|
|
session.startDate = startDate |
|
|
|
session.endDate = endDate |
|
|
|
val cal = Calendar.getInstance() // creates calendar |
|
|
|
|
|
|
|
cal.time = startDate // sets calendar time/date |
|
|
|
|
|
|
|
cal.add(Calendar.HOUR_OF_DAY, endDate) // adds one hour |
|
|
|
|
|
|
|
session.endDate = cal.time // returns new date object, one hour in the future |
|
|
|
return session |
|
|
|
return session |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
|
|
|
fun testSessionNetResultOnLoad() { |
|
|
|
|
|
|
|
val realm = mockRealm |
|
|
|
|
|
|
|
realm.beginTransaction() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (index in 0..100) { |
|
|
|
|
|
|
|
Session.testInstance((-2000..2000).random().toDouble()) |
|
|
|
|
|
|
|
println("*** creating ${index}") |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
realm.commitTransaction() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var d1 = Date() |
|
|
|
|
|
|
|
var result = realm.where(Result::class.java).sum("netResult") |
|
|
|
|
|
|
|
var d2 = Date() |
|
|
|
|
|
|
|
val duration = (d2.time - d1.time) |
|
|
|
|
|
|
|
println("*** ended in ${duration} milliseconds") |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
@Test |
|
|
|
fun testSessionStats() { |
|
|
|
fun testSessionStats() { |
|
|
|
|
|
|
|
|
|
|
|
@ -77,7 +127,7 @@ class StatsInstrumentedUnitTest : RealmInstrumentedUnitTest() { |
|
|
|
realm.commitTransaction() |
|
|
|
realm.commitTransaction() |
|
|
|
|
|
|
|
|
|
|
|
val sessions = realm.where(Session::class.java).findAll() |
|
|
|
val sessions = realm.where(Session::class.java).findAll() |
|
|
|
val group = SessionGroup(name = "test", sessions = sessions) |
|
|
|
val group = ComputableGroup(name = "test", computables = sessions) |
|
|
|
|
|
|
|
|
|
|
|
val options = Calculator.Options() |
|
|
|
val options = Calculator.Options() |
|
|
|
options.displayedStats = listOf(Stat.STANDARD_DEVIATION_BB_PER_100_HANDS, Stat.STANDARD_DEVIATION) |
|
|
|
options.displayedStats = listOf(Stat.STANDARD_DEVIATION_BB_PER_100_HANDS, Stat.STANDARD_DEVIATION) |
|
|
|
@ -227,7 +277,7 @@ class StatsInstrumentedUnitTest : RealmInstrumentedUnitTest() { |
|
|
|
realm.commitTransaction() |
|
|
|
realm.commitTransaction() |
|
|
|
|
|
|
|
|
|
|
|
val sessions = realm.where(Session::class.java).findAll() |
|
|
|
val sessions = realm.where(Session::class.java).findAll() |
|
|
|
val group = SessionGroup(name = "test", sessions = sessions) |
|
|
|
val group = ComputableGroup(name = "test", computables = sessions) |
|
|
|
|
|
|
|
|
|
|
|
val options = Calculator.Options() |
|
|
|
val options = Calculator.Options() |
|
|
|
options.displayedStats = listOf(Stat.STANDARD_DEVIATION_BB_PER_100_HANDS, Stat.STANDARD_DEVIATION) |
|
|
|
options.displayedStats = listOf(Stat.STANDARD_DEVIATION_BB_PER_100_HANDS, Stat.STANDARD_DEVIATION) |
|
|
|
@ -294,7 +344,7 @@ class StatsInstrumentedUnitTest : RealmInstrumentedUnitTest() { |
|
|
|
realm.commitTransaction() |
|
|
|
realm.commitTransaction() |
|
|
|
|
|
|
|
|
|
|
|
val sessions = realm.where(Session::class.java).findAll() |
|
|
|
val sessions = realm.where(Session::class.java).findAll() |
|
|
|
val group = SessionGroup(name = "test", sessions = sessions) |
|
|
|
val group = ComputableGroup(name = "test", computables = sessions) |
|
|
|
|
|
|
|
|
|
|
|
val options = Calculator.Options() |
|
|
|
val options = Calculator.Options() |
|
|
|
options.displayedStats = listOf(Stat.STANDARD_DEVIATION_BB_PER_100_HANDS, Stat.STANDARD_DEVIATION) |
|
|
|
options.displayedStats = listOf(Stat.STANDARD_DEVIATION_BB_PER_100_HANDS, Stat.STANDARD_DEVIATION) |
|
|
|
@ -377,7 +427,7 @@ class StatsInstrumentedUnitTest : RealmInstrumentedUnitTest() { |
|
|
|
realm.commitTransaction() |
|
|
|
realm.commitTransaction() |
|
|
|
|
|
|
|
|
|
|
|
val sessions = realm.where(Session::class.java).findAll() |
|
|
|
val sessions = realm.where(Session::class.java).findAll() |
|
|
|
val group = SessionGroup(name = "test", sessions = sessions) |
|
|
|
val group = ComputableGroup(name = "test", computables = sessions) |
|
|
|
|
|
|
|
|
|
|
|
val options = Calculator.Options() |
|
|
|
val options = Calculator.Options() |
|
|
|
options.displayedStats = listOf(Stat.STANDARD_DEVIATION_BB_PER_100_HANDS, Stat.STANDARD_DEVIATION) |
|
|
|
options.displayedStats = listOf(Stat.STANDARD_DEVIATION_BB_PER_100_HANDS, Stat.STANDARD_DEVIATION) |
|
|
|
@ -396,7 +446,7 @@ class StatsInstrumentedUnitTest : RealmInstrumentedUnitTest() { |
|
|
|
s1.deleteFromRealm() |
|
|
|
s1.deleteFromRealm() |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
val group2 = SessionGroup(name = "test", sessions = sessions) |
|
|
|
val group2 = ComputableGroup(name = "test", computables = sessions) |
|
|
|
val results2: ComputedResults = Calculator.compute(group2, options) |
|
|
|
val results2: ComputedResults = Calculator.compute(group2, options) |
|
|
|
|
|
|
|
|
|
|
|
val duration2 = results2.computedStat(Stat.DURATION) |
|
|
|
val duration2 = results2.computedStat(Stat.DURATION) |
|
|
|
@ -548,7 +598,7 @@ class StatsInstrumentedUnitTest : RealmInstrumentedUnitTest() { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
val sessions = realm.where(Session::class.java).findAll() |
|
|
|
val sessions = realm.where(Session::class.java).findAll() |
|
|
|
val group = SessionGroup(name = "test", sessions = sessions) |
|
|
|
val group = ComputableGroup(name = "test", computables = sessions) |
|
|
|
|
|
|
|
|
|
|
|
val options = Calculator.Options() |
|
|
|
val options = Calculator.Options() |
|
|
|
// options.displayedStats = listOf(Stat.STANDARD_DEVIATION_BB_PER_100_HANDS, Stat.STANDARD_DEVIATION) |
|
|
|
// options.displayedStats = listOf(Stat.STANDARD_DEVIATION_BB_PER_100_HANDS, Stat.STANDARD_DEVIATION) |
|
|
|
|