|
|
|
|
@ -2,6 +2,7 @@ package net.pokeranalytics.android.calculus |
|
|
|
|
|
|
|
|
|
import net.pokeranalytics.android.calculus.Stat.* |
|
|
|
|
import net.pokeranalytics.android.model.realm.ComputableResult |
|
|
|
|
import net.pokeranalytics.android.model.realm.Filter |
|
|
|
|
import net.pokeranalytics.android.model.realm.SessionSet |
|
|
|
|
import timber.log.Timber |
|
|
|
|
import java.util.* |
|
|
|
|
@ -58,10 +59,19 @@ class Calculator { |
|
|
|
|
|
|
|
|
|
companion object { |
|
|
|
|
|
|
|
|
|
// fun computePreAggregation(sets: List<SessionSet>, options: Options): List<ComputedResults> { |
|
|
|
|
// Timber.d("sets = ${sets.size}") |
|
|
|
|
// return listOf() |
|
|
|
|
// } |
|
|
|
|
fun computeStatsWithFilters(filters: List<Filter>, options: Options): List<ComputedResults> { |
|
|
|
|
|
|
|
|
|
var computableGroups: MutableList<ComputableGroup> = mutableListOf() |
|
|
|
|
filters.forEach { filter -> |
|
|
|
|
|
|
|
|
|
val results = filter.realm.where(ComputableResult::class.java).findAll() |
|
|
|
|
val sets = filter.realm.where(SessionSet::class.java).findAll() |
|
|
|
|
val group = ComputableGroup(filter.name, results, sets) |
|
|
|
|
computableGroups.add(group) |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
return Calculator.computeGroups(computableGroups, options) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Computes all stats for list of Session sessionGroup |
|
|
|
|
@ -176,7 +186,8 @@ class Calculator { |
|
|
|
|
val sessionSets = computableGroup.sets |
|
|
|
|
|
|
|
|
|
// Compute for each serie |
|
|
|
|
val gHourlyDuration = sessionSets.sum(SessionSet.Field.NET_DURATION.identifier).toDouble() / 3600000 // (milliseconds to hours) |
|
|
|
|
val gHourlyDuration = |
|
|
|
|
sessionSets.sum(SessionSet.Field.NET_DURATION.identifier).toDouble() / 3600000 // (milliseconds to hours) |
|
|
|
|
val gSum = sessionSets.sum(SessionSet.Field.RATED_NET.identifier).toDouble() |
|
|
|
|
val gTotalHands = sessionSets.sum(SessionSet.Field.ESTIMATED_HANDS.identifier).toDouble() |
|
|
|
|
val gBBSum = sessionSets.sum(SessionSet.Field.BB_NET.identifier).toDouble() |
|
|
|
|
|