From 526e50f8e45ca3242a9413fead318c53780d47de Mon Sep 17 00:00:00 2001 From: Laurent Date: Wed, 14 Dec 2022 10:45:25 +0100 Subject: [PATCH] Replace foreach by for loop --- .../android/calculus/Calculator.kt | 34 ++++++++++++++----- 1 file changed, 26 insertions(+), 8 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 98d83abb..85c57c47 100644 --- a/app/src/main/java/net/pokeranalytics/android/calculus/Calculator.kt +++ b/app/src/main/java/net/pokeranalytics/android/calculus/Calculator.kt @@ -11,6 +11,7 @@ import net.pokeranalytics.android.model.filter.Query import net.pokeranalytics.android.model.filter.filter import net.pokeranalytics.android.model.realm.* import net.pokeranalytics.android.util.extensions.startOfDay +import timber.log.Timber import java.util.* import kotlin.math.max import kotlin.math.min @@ -200,7 +201,7 @@ class Calculator { fun computeGroups(realm: Realm, groups: List, options: Options = Options()): Report { val report = Report(options) - groups.forEach { group -> + for (group in groups) { // Clean existing computables / sessionSets if group is reused group.cleanup() @@ -251,6 +252,8 @@ class Calculator { // Timber.d("$$$ buyin = ${it.ratedBuyin} $$$ net result = ${it.ratedNet}") // } + val d1 = Date() + var ratedNet = computables.sum(ComputableResult.Field.RATED_NET.identifier).toDouble() if (options.includedTransactions.isNotEmpty()) { for (transactionType in options.includedTransactions) { @@ -331,6 +334,7 @@ class Calculator { averageBB = bbSum / bbSessionCount results.addStat(AVERAGE_NET_BB, averageBB) } + val d2 = Date() val shouldIterateOverComputables = (options.progressValues == Options.ProgressValues.STANDARD || options.computeLongestStreak) @@ -350,7 +354,7 @@ class Calculator { var currentStreak = 0 var tITMCount = 0 - computables.forEach { computable -> + for (computable in computables) { index++ tSum += computable.ratedNet tBBSum += computable.bbNet @@ -415,6 +419,8 @@ class Calculator { } + val d3 = Date() + val sessionSets = computableGroup.sessionSets(realm, options.shouldSortValues) results.addStat(NUMBER_OF_SETS, sessionSets.size.toDouble()) @@ -449,7 +455,7 @@ class Calculator { val daysSet = mutableSetOf() var tMaxDuration = 0.0 - sessionSets.forEach { sessionSet -> + for (sessionSet in sessionSets) { tIndex++ val setStats = SSStats(sessionSet, computableGroup.query) @@ -529,6 +535,8 @@ class Calculator { } + val d4 = Date() + var hourlyRate = 0.0 if (gHourlyDuration != null) { @@ -561,10 +569,10 @@ class Calculator { var stdSum = 0.0 var stdBBSum = 0.0 var stdBBper100HandsSum = 0.0 - computables.forEach { session -> - stdSum += (session.ratedNet - average).pow(2.0) - stdBBSum += (session.bbNet - averageBB).pow(2.0) - stdBBper100HandsSum += (session.bbPer100Hands - bbPer100Hands).pow(2.0) + for (computable in computables) { + stdSum += (computable.ratedNet - average).pow(2.0) + stdBBSum += (computable.bbNet - averageBB).pow(2.0) + stdBBper100HandsSum += (computable.bbPer100Hands - bbPer100Hands).pow(2.0) } val standardDeviation = sqrt(stdSum / computables.size) val standardDeviationBB = sqrt(stdBBSum / computables.size) @@ -577,7 +585,7 @@ class Calculator { // Session Set if (gHourlyDuration != null) { var hourlyStdSum = 0.0 - sessionSets.forEach { set -> + for (set in sessionSets) { val ssStats = SSStats(set, computableGroup.query) val sHourlyRate = ssStats.hourlyRate hourlyStdSum += (sHourlyRate - hourlyRate).pow(2.0) @@ -588,6 +596,16 @@ class Calculator { } } + val d5 = Date() + + val s1 = d2.time - d1.time + val s2 = d3.time - d2.time + val s3 = d4.time - d3.time + val s4 = d5.time - d4.time + Timber.d("Section 1 = $s1") + Timber.d("Section 2 = $s2") + Timber.d("Section 3 = $s3") + Timber.d("Section 4 = $s4") return results }