add number of rebuy query condition

feature/top10
Razmig Sarkissian 7 years ago
parent 728e86d465
commit 867abbb859
  1. 32
      app/src/androidTest/java/net/pokeranalytics/android/unitTests/filter/SessionFilterInstrumentedUnitTest.kt
  2. 2
      app/src/main/java/net/pokeranalytics/android/PokerAnalyticsApplication.kt
  3. 12
      app/src/main/java/net/pokeranalytics/android/model/filter/QueryCondition.kt
  4. 2
      app/src/main/java/net/pokeranalytics/android/model/realm/Result.kt
  5. 10
      app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt
  6. 3
      app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/FilterCategoryRow.kt
  7. 10
      app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/FilterSectionRow.kt

@ -541,4 +541,36 @@ class SessionFilterInstrumentedUnitTest : BaseFilterInstrumentedUnitTest() {
Assert.assertTrue(result.contains((it as Session).id))
}
}
@Test
fun testNumberOfRebuys() {
val realm = this.mockRealm
realm.beginTransaction()
val s1 = Session.testInstance(netResult = 200.0, isTournament = true)
s1.result!!.buyin = 50.0
s1.tournamentEntryFee = 10.0
val s2 = Session.testInstance(netResult = 50.0, isTournament = true)
s2.result!!.buyin = 10.0
s2.tournamentEntryFee = 10.0
val s3 = Session.testInstance(netResult = 500.0)
s3.cgBigBlind = 2.0
s3.result!!.buyin = 1000.0
val s4 = Session.testInstance(netResult = 570.0)
s4.cgBigBlind = 5.0
s4.result!!.buyin = 200.0
realm.commitTransaction()
val filterMore = QueryCondition.NumberOfRebuy(QueryCondition.Operator.MORE, 5.0)
val sessions = Filter.queryOn<Session>(realm, arrayListOf(filterMore))
Assert.assertEquals(2, sessions.size)
val result = arrayListOf(s1.id, s3.id)
sessions.forEach {
Assert.assertTrue(result.contains((it as Session).id))
}
}
}

@ -30,7 +30,7 @@ class PokerAnalyticsApplication : Application() {
Realm.init(this)
val realmConfiguration = RealmConfiguration.Builder()
.name(Realm.DEFAULT_REALM_NAME)
.schemaVersion(3)
.schemaVersion(4)
.migration(PokerAnalyticsMigration())
.initialData(Seed(this))
.build()

@ -330,8 +330,16 @@ sealed class QueryCondition : FilterElementRow {
class NumberOfTable: ListOfInt()
open class NetAmountWon: ListOfDouble()
class NetAmountLost: NetAmountWon() { override var sign: Int = -1 }
class NumberOfRebuy(): ListOfDouble() {
constructor(operator: Operator, numberOfRebuy: Double) : this() {
this.operator = operator
listOfValues = arrayListOf(numberOfRebuy)
}
}
open class NetAmount: ListOfDouble()
class NetAmountWon: NetAmount()
class NetAmountLost: NetAmount() { override var sign: Int = -1 }
class NumberOfPlayer: ListOfInt()

@ -127,7 +127,7 @@ open class Result : RealmObject(), Filterable {
if (it.isCashGame()) {
it.cgBigBlind?.let { bb ->
if (bb > 0.0) {
this.numberOfRebuy = (this.buyin ?: 0.0) / bb
this.numberOfRebuy = (this.buyin ?: 0.0) / (bb * 100.0)
} else {
this.numberOfRebuy = null
}

@ -77,8 +77,9 @@ open class Session : RealmObject(), Savable, Editable, StaticRowRepresentableDat
AnyTournamentType::class.java -> "tournamentType"
AnyBlind::class.java -> "blinds"
NumberOfTable::class.java -> "numberOfTable"
NetAmountWon::class.java -> "computableResults.ratedNet"
NumberOfPlayer::class.java -> "tournamentNumberOfPlayers"
NetAmount::class.java -> "computableResults.ratedNet"
NumberOfRebuy::class.java -> "result.numberOfRebuy"
NumberOfPlayer::class.java -> "result.tournamentNumberOfPlayers"
TournamentFee::class.java -> "tournamentEntryFee"
StartedFromDate::class.java, StartedToDate::class.java -> "startDate"
EndedFromDate::class.java, EndedToDate::class.java -> "endDate"
@ -222,6 +223,7 @@ open class Session : RealmObject(), Savable, Editable, StaticRowRepresentableDat
field = value
this.computeStats()
formatBlinds()
this.result?.computeNumberOfRebuy()
}
var blinds: String? = null
@ -231,6 +233,10 @@ open class Session : RealmObject(), Savable, Editable, StaticRowRepresentableDat
// The entry fee of the tournament
var tournamentEntryFee: Double? = null
set(value) {
field = value
this.result?.computeNumberOfRebuy()
}
// The total number of players who participated in the tournament
var tournamentNumberOfPlayers: Int? = null

@ -74,7 +74,8 @@ enum class FilterCategoryRow(override val resId: Int?, override val viewType: In
MULTI_PLAYER
)
RESULT -> arrayListOf(
VALUE
VALUE,
NUMBER_OF_REBUY
)
TRANSACTION_TYPES -> arrayListOf()

@ -33,12 +33,13 @@ enum class FilterSectionRow(override val resId: Int?) : RowRepresentable {
PLAYERS_COUNT(R.string.players_count),
TOURNAMENT_RE_BUY_COUNT(R.string.rebuy_count),
ENTRY_FEE(R.string.buyin),
MULTI_TABLING(R.string.multi_tabling),
MULTI_TABLING(R.string.number_of_tables),
VALUE(R.string.value),
LOCATION(R.string.locations),
BANKROLL(R.string.bankrolls),
NUMBER_OF_PLAYERS(R.string.number_of_players),
MULTI_PLAYER(R.string.multiplayer),
NUMBER_OF_REBUY(R.string.number_of_buyins)
;
private enum class SelectionType {
@ -89,14 +90,12 @@ enum class FilterSectionRow(override val resId: Int?) : RowRepresentable {
// Cash
BLIND -> Criteria.Blinds.queryConditions
// CASH_RE_BUY_COUNT -> QueryCondition.moreOrLess<QueryCondition.Rebuy>()
// Tournament
TOURNAMENT_TYPE -> Criteria.TournamentTypes.queryConditions
// COMPLETION_PERCENTAGE -> arrayListOf()
// PLACE -> QueryCondition.moreOrLess<QueryCondition.NumberOfPlayer>()
//PLACE -> QueryCondition.moreOrLess<QueryCondition.TournamentFinalPosition>()
PLAYERS_COUNT -> QueryCondition.moreOrLess<QueryCondition.NumberOfPlayer>()
// TOURNAMENT_RE_BUY_COUNT -> QueryCondition.moreOrLess<QueryCondition.BuyIn>()
ENTRY_FEE -> Criteria.TournamentFees.queryConditions
TOURNAMENT_NAME -> Criteria.TournamentNames.queryConditions
@ -104,7 +103,8 @@ enum class FilterSectionRow(override val resId: Int?) : RowRepresentable {
LOCATION -> Criteria.Locations.queryConditions
BANKROLL -> Criteria.Bankrolls.queryConditions
MULTI_TABLING -> QueryCondition.moreOrLess<QueryCondition.NumberOfTable>()
// NUMBER_OF_PLAYERS -> QueryCondition.moreOrLess<QueryCondition.NumberOfPlayer>()
NUMBER_OF_PLAYERS -> QueryCondition.moreOrLess<QueryCondition.NumberOfPlayer>()
NUMBER_OF_REBUY -> QueryCondition.moreOrLess<QueryCondition.NumberOfRebuy>()
// MULTI_PLAYER -> arrayListOf()
VALUE -> arrayListOf<QueryCondition>().apply {

Loading…
Cancel
Save