Managing hands estimation per hour + tests

feature/top10
Laurent 7 years ago
parent 17b234a428
commit f3351e2e36
  1. 12
      app/src/androidTest/java/net/pokeranalytics/android/StatsInstrumentedUnitTest.kt
  2. 3
      app/src/main/java/net/pokeranalytics/android/model/interfaces/Timed.kt
  3. 34
      app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt
  4. 3
      app/src/main/java/net/pokeranalytics/android/model/realm/SessionSet.kt

@ -51,6 +51,8 @@ class StatsInstrumentedUnitTest : RealmInstrumentedUnitTest() {
s1.cgBigBlind = 0.5 // bb net result = -200bb
s2.cgBigBlind = 2.0 // bb net result = 150bb
s2.tableSize = 5
realm.insert(s1)
realm.insert(s2)
realm.commitTransaction()
@ -58,9 +60,9 @@ class StatsInstrumentedUnitTest : RealmInstrumentedUnitTest() {
val sdf = SimpleDateFormat("dd/M/yyyy hh:mm")
val sd1 = sdf.parse("01/1/2019 10:00")
val ed1 = sdf.parse("01/1/2019 11:00")
val ed1 = sdf.parse("01/1/2019 11:00") // 1 hour
val sd2 = sdf.parse("02/1/2019 08:00")
val ed2 = sdf.parse("02/1/2019 11:00")
val ed2 = sdf.parse("02/1/2019 11:00") // 3 hours
realm.beginTransaction()
@ -112,7 +114,7 @@ class StatsInstrumentedUnitTest : RealmInstrumentedUnitTest() {
}
val handsPlayed = results.computedStat(Stat.HANDS_PLAYED)
if (handsPlayed != null) {
assertEquals(100.0, handsPlayed.value, delta)
assertEquals(177.77, handsPlayed.value, delta)
} else {
Assert.fail("No hands played stat")
}
@ -161,7 +163,7 @@ class StatsInstrumentedUnitTest : RealmInstrumentedUnitTest() {
}
val netbbPer100Hands = results.computedStat(Stat.NET_BB_PER_100_HANDS)
if (netbbPer100Hands != null) {
assertEquals(-50.0, netbbPer100Hands.value, delta)
assertEquals(-28.12, netbbPer100Hands.value, delta)
} else {
Assert.fail("No netbbPer100Hands stat")
}
@ -182,7 +184,7 @@ class StatsInstrumentedUnitTest : RealmInstrumentedUnitTest() {
val std100 = results.computedStat(Stat.STANDARD_DEVIATION_BB_PER_100_HANDS)
if (std100 != null) {
assertEquals(559.01, std100.value, delta)
assertEquals(497.54, std100.value, delta)
} else {
Assert.fail("No std100 stat")
}

@ -26,8 +26,7 @@ interface Timed {
}
}
var hourlyDuration: Double
val hourlyDuration: Double
get() = this.netDuration / 3600000.0
set(value) = TODO()
}

@ -221,8 +221,40 @@ open class Session : RealmObject(), SessionInterface, Savable, StaticRowRepresen
return this.result?.net ?: 0.0
}
/*
public var numberOfHandsPerHour: Double {
var playersHandsPerHour: Int = Session.livePlayersHandsPerHour // default is live
if let bankroll = self.bankroll {
playersHandsPerHour = bankroll.isLive() ? Session.livePlayersHandsPerHour : Session.onlinePlayersHandsPerHour
}
var numberOfPlayers: Int = 9 // default is 9 players
if let playersAtTable = self.tableSize?.intValue {
numberOfPlayers = playersAtTable
}
return Double(playersHandsPerHour) / Double(numberOfPlayers)
}
*/
@Ignore
val ONLINE_PLAYER_HANDS_PER_HOUR = 400.0
@Ignore
val LIVE_PLAYER_HANDS_PER_HOUR = 250.0
/**
* Approximates the number of hands played per hour at the table
*/
val numberOfHandsPerHour: Double
get() {
val tableSize = this.tableSize ?: 9
val isLive = this.bankroll?.live ?: true
val playerHandsPerHour = if (isLive) LIVE_PLAYER_HANDS_PER_HOUR else ONLINE_PLAYER_HANDS_PER_HOUR
return playerHandsPerHour / tableSize.toDouble()
}
@Ignore
override var estimatedHands: Double = 25.0 * this.hourlyDuration
override var estimatedHands: Double = this.numberOfHandsPerHour * this.hourlyDuration
@Ignore
override var bbNetResult: Double = 0.0

@ -51,7 +51,6 @@ open class SessionSet : RealmObject(), Timed {
fun newInstance(realm: Realm) : SessionSet {
val sessionSet: SessionSet = realm.createObject(SessionSet::class.java)
// sessionSet.timeFrame = realm.createObject(TimeFrame::class.java)
return realm.copyToRealm(sessionSet)
}
@ -75,7 +74,7 @@ open class SessionSet : RealmObject(), Timed {
val hourlyRate: Double = this.ratedNet / this.hourlyDuration
@Ignore
val estimatedHands: Double = 25.0 * this.hourlyDuration
val estimatedHands: Double = this.sessions?.sumByDouble { it.estimatedHands } ?: 0.0
@Ignore
var bbNetResult: Double = this.sessions?.sumByDouble { it.bbNetResult } ?: 0.0

Loading…
Cancel
Save