add a perf stat test

feature/top10
Razmig Sarkissian 7 years ago
parent 9a9bc21386
commit c253b71650
  1. 60
      app/src/androidTest/java/net/pokeranalytics/android/StatsInstrumentedUnitTest.kt

@ -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.SessionGroup
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() {

Loading…
Cancel
Save