Skip to content

Commit 53ac148

Browse files
(#2994) Handle the case where pre- and post- k coefficients are equal
1 parent 594ed5b commit 53ac148

File tree

1 file changed

+24
-12
lines changed

1 file changed

+24
-12
lines changed

WebApp/src/uk/ac/exeter/QuinCe/data/Dataset/DataReduction/ControsPco2Reducer.java

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -120,18 +120,30 @@ private void calcKSteps() {
120120
BigDecimal runtimePeriod = runTimePost.getBigDecimalValue()
121121
.subtract(runTimePrior.getBigDecimalValue());
122122

123-
BigDecimal k1Diff = k1Post.getBigDecimalValue()
124-
.subtract(k1Prior.getBigDecimalValue())
125-
.setScale(50, RoundingMode.HALF_UP);
126-
k1Step = k1Diff.divide(runtimePeriod, 50, RoundingMode.HALF_UP);
127-
128-
BigDecimal k2Diff = k2Post.getBigDecimalValue()
129-
.subtract(k2Prior.getBigDecimalValue());
130-
k2Step = k2Diff.divide(runtimePeriod, 50, RoundingMode.HALF_UP);
131-
132-
BigDecimal k3Diff = k3Post.getBigDecimalValue()
133-
.subtract(k3Prior.getBigDecimalValue());
134-
k3Step = k3Diff.divide(runtimePeriod, 50, RoundingMode.HALF_UP);
123+
if (k1Post.getBigDecimalValue().equals(k1Prior.getBigDecimalValue())) {
124+
k1Step = BigDecimal.ZERO;
125+
} else {
126+
BigDecimal k1Diff = k1Post.getBigDecimalValue()
127+
.subtract(k1Prior.getBigDecimalValue())
128+
.setScale(50, RoundingMode.HALF_UP);
129+
k1Step = k1Diff.divide(runtimePeriod, 50, RoundingMode.HALF_UP);
130+
}
131+
132+
if (k2Post.getBigDecimalValue().equals(k2Prior.getBigDecimalValue())) {
133+
k2Step = BigDecimal.ZERO;
134+
} else {
135+
BigDecimal k2Diff = k2Post.getBigDecimalValue()
136+
.subtract(k2Prior.getBigDecimalValue());
137+
k2Step = k2Diff.divide(runtimePeriod, 50, RoundingMode.HALF_UP);
138+
}
139+
140+
if (k3Post.getBigDecimalValue().equals(k3Prior.getBigDecimalValue())) {
141+
k3Step = BigDecimal.ZERO;
142+
} else {
143+
BigDecimal k3Diff = k3Post.getBigDecimalValue()
144+
.subtract(k3Prior.getBigDecimalValue());
145+
k3Step = k3Diff.divide(runtimePeriod, 50, RoundingMode.HALF_UP);
146+
}
135147
} else {
136148
k1Step = BigDecimal.ZERO;
137149
k2Step = BigDecimal.ZERO;

0 commit comments

Comments
 (0)