parent
c70dcfbc8f
commit
aecf621aee
@ -0,0 +1,82 @@ |
||||
package net.pokeranalytics.android |
||||
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4 |
||||
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.Bankroll |
||||
import net.pokeranalytics.android.model.realm.Currency |
||||
import net.pokeranalytics.android.model.realm.Session |
||||
import org.junit.Assert |
||||
import org.junit.Test |
||||
import org.junit.runner.RunWith |
||||
import java.util.* |
||||
|
||||
@RunWith(AndroidJUnit4::class) |
||||
class BankrollInstrumentedUnitTest : RealmInstrumentedUnitTest() { |
||||
|
||||
// convenience extension |
||||
fun Session.Companion.testInstance(netResult: Double, startDate: Date, endDate: Date?): Session { |
||||
val session: Session = Session.newInstance(super.mockRealm, false) |
||||
session.result?.netResult = netResult |
||||
session.startDate = startDate |
||||
session.endDate = endDate |
||||
return session |
||||
} |
||||
|
||||
@Test |
||||
fun testSessionStats() { |
||||
|
||||
val realm = this.mockRealm |
||||
realm.beginTransaction() |
||||
|
||||
val s1 = realm.createObject(Session::class.java, "1") |
||||
val s2 = realm.createObject(Session::class.java, "2") |
||||
|
||||
val br1 = realm.createObject(Bankroll::class.java, "1") |
||||
val br2 = 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.1 |
||||
c2.rate = 2.0 |
||||
br1.currency = c1 |
||||
br2.currency = c2 |
||||
|
||||
s1.bankroll = br1 |
||||
s2.bankroll = br2 |
||||
|
||||
s1.result = realm.createObject(net.pokeranalytics.android.model.realm.Result::class.java) |
||||
s2.result = realm.createObject(net.pokeranalytics.android.model.realm.Result::class.java) |
||||
|
||||
s1.result?.netResult = 100.0 |
||||
s2.result?.netResult = 200.0 |
||||
|
||||
realm.commitTransaction() |
||||
|
||||
val sessions = realm.where(Session::class.java).findAll() |
||||
val group = SessionGroup(name = "test", sessions = sessions) |
||||
|
||||
val options = Calculator.Options() |
||||
|
||||
val results: ComputedResults = Calculator.compute(group, options) |
||||
val delta = 0.01 |
||||
|
||||
val sum = results.computedStat(Stat.NETRESULT) |
||||
if (sum != null) { |
||||
Assert.assertEquals(410.0, sum.value, delta) |
||||
} else { |
||||
Assert.fail("No Net result stat") |
||||
} |
||||
|
||||
val average = results.computedStat(Stat.AVERAGE) |
||||
if (average != null) { |
||||
Assert.assertEquals(205.0, average.value, delta) |
||||
} else { |
||||
Assert.fail("No AVERAGE stat") |
||||
} |
||||
|
||||
} |
||||
|
||||
} |
||||
Loading…
Reference in new issue