diff --git a/app/src/androidTest/java/net/pokeranalytics/android/unitTests/StatsInstrumentedUnitTest.kt b/app/src/androidTest/java/net/pokeranalytics/android/unitTests/StatsInstrumentedUnitTest.kt index 19369996..cbbacfc8 100644 --- a/app/src/androidTest/java/net/pokeranalytics/android/unitTests/StatsInstrumentedUnitTest.kt +++ b/app/src/androidTest/java/net/pokeranalytics/android/unitTests/StatsInstrumentedUnitTest.kt @@ -26,7 +26,7 @@ import java.util.* class StatsInstrumentedUnitTest : RealmInstrumentedUnitTest() { // convenience extension - fun Session.Companion.testInstance( + private fun Session.Companion.testInstance( netResult: Double = 0.0, isTournament: Boolean = false, startDate: Date = Date(), @@ -64,20 +64,19 @@ class StatsInstrumentedUnitTest : RealmInstrumentedUnitTest() { for (index in 0..100) { Session.testInstance((-2000..2000).random().toDouble()) - println("*** creating ${index}") + println("*** creating $index") } realm.commitTransaction() - var d1 = Date() - var result = realm.where(Result::class.java).sum("netResult") - var d2 = Date() + val d1 = Date() + realm.where(Result::class.java).sum("netResult") + + val d2 = Date() val duration = (d2.time - d1.time) - println("*** ended in ${duration} milliseconds") + println("*** ended in $duration milliseconds") } - - @Test fun testSessionStats() { @@ -664,4 +663,66 @@ class StatsInstrumentedUnitTest : RealmInstrumentedUnitTest() { Assert.assertEquals(250.0, netResult?.value) } + @Test + fun testUpdateRatedNetResultSessions() { + + val realm = this.mockRealm + realm.beginTransaction() + + val s1 = newSessionInstance(realm) + val s2 = newSessionInstance(realm) + + val b1 = realm.createObject(Bankroll::class.java, "1") + val b2 = realm.createObject(Bankroll::class.java, "2") + + val c1 = realm.createObject(Currency::class.java, "1") + val c2 = realm.createObject(Currency::class.java, "2") + + c1.rate = 0.5 + c2.rate = 1.0 + b1.currency = c1 + b2.currency = c2 + s1.bankroll = b1 + s2.bankroll = b2 + s1.result?.netResult = 100.0 + s2.result?.netResult = 200.0 + + realm.insert(s1) + realm.insert(s2) + + realm.copyToRealmOrUpdate(s1) + realm.copyToRealmOrUpdate(s2) + + realm.commitTransaction() + + val computableResults = realm.where(ComputableResult::class.java).findAll() + val sets = realm.where(SessionSet::class.java).findAll() + val stats: List = listOf(Stat.NETRESULT) + val group = ComputableGroup("test", computableResults, sets, stats) + val options = Calculator.Options() + val results: ComputedResults = Calculator.compute(group, options) + + val netResult = results.computedStat(Stat.NETRESULT) + Assert.assertEquals(250.0, netResult?.value) + + println("currency set rate real test starts here") + + val updatedC2 = realm.where(Currency::class.java).equalTo("id", "2").findFirst() + updatedC2?.let {currency -> + val newC2 = realm.copyFromRealm(currency) + newC2.rate = 3.0 + realm.executeTransaction { + it.copyToRealmOrUpdate(newC2) + } + } + + val updatedComputableResults = realm.where(ComputableResult::class.java).findAll() + val updatedSets = realm.where(SessionSet::class.java).findAll() + val updatedGroup = ComputableGroup("test", updatedComputableResults, updatedSets, stats) + val updatedResults: ComputedResults = Calculator.compute(updatedGroup, options) + val updatedNetResult = updatedResults.computedStat(Stat.NETRESULT) + Assert.assertEquals(650.0, updatedNetResult?.value) + + } + } \ No newline at end of file