Add session type to session + test changes

feature/top10
Laurent 7 years ago
parent 42d97a3672
commit b8b7392cec
  1. 15
      app/src/androidTest/java/net/pokeranalytics/android/ExampleInstrumentedUnitTest.kt
  2. 11
      app/src/androidTest/java/net/pokeranalytics/android/RealmInstrumentedUnitTest.kt
  3. 2
      app/src/main/java/net/pokeranalytics/android/calculus/Calculator.kt
  4. 5
      app/src/main/java/net/pokeranalytics/android/model/extensions/SessionExtensions.kt
  5. 5
      app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt
  6. 43
      app/src/main/java/net/pokeranalytics/android/ui/fragment/StatsFragment.kt

@ -1,6 +1,5 @@
package net.pokeranalytics.android
import android.os.Looper
import androidx.test.ext.junit.runners.AndroidJUnit4
import io.realm.RealmResults
import net.pokeranalytics.android.calculus.Calculator
@ -338,14 +337,12 @@ class ExampleInstrumentedUnitTest : RealmInstrumentedUnitTest() {
val realm = this.mockRealm
this.sessions = realm.where(Session::class.java).findAll() // monitor session deletions
Looper.prepare()
this.sessions?.addChangeListener { t, changeSet ->
val deletedSessions = realm.where(Session::class.java).`in`("id", changeSet.deletions.toTypedArray()).findAll()
deletedSessions.forEach { it.cleanup() }
}
Looper.loop()
realm.beginTransaction()
@ -399,12 +396,12 @@ class ExampleInstrumentedUnitTest : RealmInstrumentedUnitTest() {
Assert.fail("No duration stat")
}
realm.beginTransaction()
s1.deleteFromRealm()
realm.commitTransaction()
// realm.executeTransaction {
// s1.deleteFromRealm()
// }
// realm.beginTransaction()
// s1.deleteFromRealm()
// realm.commitTransaction()
realm.executeTransaction {
s1.deleteFromRealm()
}
val group2 = SessionGroup(name = "test", sessions = sessions)
val results2: ComputedResults = Calculator.compute(group2, options)

@ -1,10 +1,13 @@
package net.pokeranalytics.android
import android.os.Looper
import io.realm.Realm
import io.realm.RealmConfiguration
import org.junit.After
import org.junit.Before
open class RealmInstrumentedUnitTest {
lateinit var mockRealm: Realm
@ -12,15 +15,19 @@ open class RealmInstrumentedUnitTest {
@Before
fun setup() {
Looper.prepare()
val testConfig = RealmConfiguration.Builder().inMemory().name("test-realm").build()
Realm.setDefaultConfiguration(testConfig)
mockRealm = Realm.getDefaultInstance()
this.mockRealm = Realm.getDefaultInstance()
}
@After
@Throws(Exception::class)
public fun tearDown() {
mockRealm.close()
Looper.loop()
this.mockRealm.close()
}
}

@ -47,7 +47,7 @@ class Calculator {
else -> false
}
}
return false
return true
}
// var aggregation: Aggregation? = null

@ -3,6 +3,11 @@ package net.pokeranalytics.android.model.extensions
import net.pokeranalytics.android.model.realm.Session
import java.util.*
enum class SessionType {
CASHGAME,
TOURNAMENT
}
enum class SessionState {
PENDING,
STARTED,

@ -31,6 +31,11 @@ open class Session : RealmObject(), SessionInterface, Savable,
@PrimaryKey
var id = UUID.randomUUID().toString()
/**
* Indicates the type of session, cash game or tournament
*/
var type: Int = 0 // cash game = 0, tournament = 1
// The result of the main user
var result: Result? = null

@ -6,12 +6,19 @@ import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.LinearLayoutManager
import kotlinx.android.synthetic.main.fragment_settings.*
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
import net.pokeranalytics.android.R
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.extensions.SessionType
import net.pokeranalytics.android.model.realm.Session
import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter
import net.pokeranalytics.android.ui.adapter.RowRepresentableDataSource
import net.pokeranalytics.android.ui.view.RowRepresentable
import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment
import net.pokeranalytics.android.ui.view.RowRepresentable
class StatsFragment : PokerAnalyticsFragment(), RowRepresentableDataSource {
@ -30,8 +37,12 @@ class StatsFragment : PokerAnalyticsFragment(), RowRepresentableDataSource {
private lateinit var statsAdapterRow: RowRepresentableAdapter
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return inflater.inflate(R.layout.fragment_stats, container, false)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
@ -60,5 +71,35 @@ class StatsFragment : PokerAnalyticsFragment(), RowRepresentableDataSource {
layoutManager = viewManager
adapter = statsAdapterRow
}
// this.launchStatComputation()
}
private fun launchStatComputation() {
var results = listOf<ComputedResults>()
GlobalScope.launch {
val allSessions = getRealm().where(Session::class.java).findAll()
val cgSessions = mutableListOf<Session>()
val tSessions = mutableListOf<Session>()
allSessions.forEach { session ->
if (session.type == SessionType.CASHGAME.ordinal) {
cgSessions.add(session)
} else {
tSessions.add(session)
}
}
val allSessionGroup = SessionGroup(getString(R.string.all), allSessions)
val cgSessionGroup = SessionGroup(getString(R.string.cash_game), cgSessions)
val tSessionGroup = SessionGroup(getString(R.string.tournament), tSessions)
results = Calculator.computeGroups(listOf(allSessionGroup, cgSessionGroup, tSessionGroup), Calculator.Options())
}
}
}
Loading…
Cancel
Save