diff --git a/app/src/androidTest/java/net/pokeranalytics/android/StatsInstrumentedUnitTest.kt b/app/src/androidTest/java/net/pokeranalytics/android/StatsInstrumentedUnitTest.kt index fdd5a18f..e6322b62 100644 --- a/app/src/androidTest/java/net/pokeranalytics/android/StatsInstrumentedUnitTest.kt +++ b/app/src/androidTest/java/net/pokeranalytics/android/StatsInstrumentedUnitTest.kt @@ -1,18 +1,24 @@ package net.pokeranalytics.android import androidx.test.ext.junit.runners.AndroidJUnit4 +import io.realm.Realm +import io.realm.RealmList import io.realm.RealmResults +import io.realm.kotlin.where import net.pokeranalytics.android.calculus.Calculator import net.pokeranalytics.android.calculus.ComputedResults import net.pokeranalytics.android.calculus.SessionGroup import net.pokeranalytics.android.calculus.Stat -import net.pokeranalytics.android.model.realm.Session -import net.pokeranalytics.android.model.realm.SessionSet +import net.pokeranalytics.android.model.Limit +import net.pokeranalytics.android.model.realm.* import org.junit.Assert import org.junit.Assert.assertEquals import org.junit.Test import org.junit.runner.RunWith +import timber.log.Timber import java.text.SimpleDateFormat +import java.time.LocalDate +import java.time.Period import java.util.* /** @@ -24,14 +30,58 @@ import java.util.* class StatsInstrumentedUnitTest : RealmInstrumentedUnitTest() { // convenience extension - fun Session.Companion.testInstance(netResult: Double, startDate: Date, endDate: Date?): Session { - val session: Session = Session.newInstance(super.mockRealm, false) + fun Session.Companion.testInstance( + 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 = 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.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 } + @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 fun testSessionStats() {