diff --git a/src/main/kotlin/de/fraunhofer/iem/dataprovider/kpi/strategy/RatioKPICalculationStrategy.kt b/src/main/kotlin/de/fraunhofer/iem/dataprovider/kpi/strategy/RatioKPICalculationStrategy.kt index 1f258d8ad9b6e42664d81b6d848287c8e2c80baa..ec398d3e3e8373a765184d555772f313a073eb13 100644 --- a/src/main/kotlin/de/fraunhofer/iem/dataprovider/kpi/strategy/RatioKPICalculationStrategy.kt +++ b/src/main/kotlin/de/fraunhofer/iem/dataprovider/kpi/strategy/RatioKPICalculationStrategy.kt @@ -8,11 +8,13 @@ class RatioKPICalculationStrategy : KPICalculationStrategy { if (children.size != 2) { throw Exception("Requires exactly two children") } + // TODO: this is a dirty workaround to fix a copy by reference bug + val copiedChildren = children.toList() val firstValue = children[0].to.getValue() val secondValue = children[1].to.getValue() if (firstValue >= secondValue) { - return Pair(((secondValue.toDouble() / firstValue.toDouble()) * 100).toInt(), children) + return Pair(((secondValue.toDouble() / firstValue.toDouble()) * 100).toInt(), copiedChildren) } - return Pair(((firstValue.toDouble() / secondValue.toDouble()) * 100).toInt(), children) + return Pair(((firstValue.toDouble() / secondValue.toDouble()) * 100).toInt(), copiedChildren) } }