From 5a81184dbf8d2e9a9bca6124905ed7d44aab1cc9 Mon Sep 17 00:00:00 2001 From: Laurent Date: Mon, 8 Apr 2019 10:25:04 +0200 Subject: [PATCH] add stat computation with filters method draft --- .../android/calculus/Calculator.kt | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/net/pokeranalytics/android/calculus/Calculator.kt b/app/src/main/java/net/pokeranalytics/android/calculus/Calculator.kt index e72bf3a7..734fd022 100644 --- a/app/src/main/java/net/pokeranalytics/android/calculus/Calculator.kt +++ b/app/src/main/java/net/pokeranalytics/android/calculus/Calculator.kt @@ -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, options: Options): List { -// Timber.d("sets = ${sets.size}") -// return listOf() -// } + fun computeStatsWithFilters(filters: List, options: Options): List { + + var computableGroups: MutableList = 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()