Skip to content

Commit 73df456

Browse files
committed
fix median calculation for missing data in examples
1 parent 5a1c3e7 commit 73df456

File tree

5 files changed

+24
-14
lines changed

5 files changed

+24
-14
lines changed

book/src/libs/wasp/benchspy/loki_std.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -90,11 +90,13 @@ var compareMedian = func(metricName string) {
9090
previousMedian := benchspy.CalculatePercentile(previousFloatSlice, 0.5)
9191

9292
var diffPercentage float64
93-
if previousMedian != 0 {
94-
diffPercentage = (currentMedian - previousMedian) / previousMedian * 100
95-
} else {
96-
diffPercentage = 100
97-
}
93+
if previousMedian != 0.0 && currentMedian != 0.0 {
94+
diffPrecentage = (currentMedian - previousMedian) / previousMedian * 100
95+
} else if previousMedian == 0.0 && currentMedian == 0.0 {
96+
diffPrecentage = 0.0
97+
} else {
98+
diffPrecentage = 100.0
99+
}
98100
assert.LessOrEqual(t, math.Abs(diffPercentage), 1.0, "%s medians are more than 1% different", metricName, fmt.Sprintf("%.4f", diffPercentage))
99101
}
100102

book/src/libs/wasp/benchspy/simplest_metrics.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,12 @@ var compareValues = func(
3636
previousMetric := previousAsFloat64[metricName]
3737

3838
var diffPercentage float64
39-
if previousMetric != 0.0 {
40-
diffPercentage = (currentMetric - previousMetric) / previousMetric * 100
39+
if previousMetric != 0.0 && currentMetric != 0.0 {
40+
diffPrecentage = (currentMetric - previousMetric) / previousMetric * 100
41+
} else if previousMetric == 0.0 && currentMetric == 0.0 {
42+
diffPrecentage = 0.0
4143
} else {
42-
diffPercentage = 100.0
44+
diffPrecentage = 100.0
4345
}
4446
assert.LessOrEqual(t, math.Abs(diffPercentage), maxDiffPercentage, "%s medians are more than 1% different", metricName, fmt.Sprintf("%.4f", diffPercentage))
4547
}

wasp/examples/benchspy/direct_query_executor/direct_query_executor_test.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,12 +88,14 @@ func TestBenchSpy_Standard_Direct_Metrics(t *testing.T) {
8888
previousMetric := previousAsloat64[metricName]
8989

9090
var diffPrecentage float64
91-
if previousMetric != 0.0 {
91+
if previousMetric != 0.0 && currentMetric != 0.0 {
9292
diffPrecentage = (currentMetric - previousMetric) / previousMetric * 100
93+
} else if previousMetric == 0.0 && currentMetric == 0.0 {
94+
diffPrecentage = 0.0
9395
} else {
9496
diffPrecentage = 100.0
9597
}
96-
assert.LessOrEqual(t, math.Abs(diffPrecentage), maxDiffPercentage, "%s medians are more than 1% different", metricName, fmt.Sprintf("%.4f", diffPrecentage))
98+
assert.LessOrEqual(t, math.Abs(diffPrecentage), maxDiffPercentage, "%s medians are more than %f different", metricName, fmt.Sprintf("%.4f", diffPrecentage))
9799
}
98100

99101
compareValues(string(benchspy.MedianLatency), 1.0)

wasp/examples/benchspy/loki_query_executor/loki_query_executor_test.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -182,10 +182,12 @@ var compareMedian = func(t *testing.T, metricName string, currentAsStringSlice,
182182
previousMedian := benchspy.CalculatePercentile(previousFloatSlice, 0.5)
183183

184184
var diffPrecentage float64
185-
if previousMedian != 0 {
185+
if previousMedian != 0.0 && currentMedian != 0.0 {
186186
diffPrecentage = (currentMedian - previousMedian) / previousMedian * 100
187+
} else if previousMedian == 0.0 && currentMedian == 0.0 {
188+
diffPrecentage = 0.0
187189
} else {
188-
diffPrecentage = 100
190+
diffPrecentage = 100.0
189191
}
190192
assert.LessOrEqual(t, math.Abs(diffPrecentage), 1.0, "%s medians are more than 1% different", metricName, fmt.Sprintf("%.4f", diffPrecentage))
191193
}

wasp/examples/benchspy/two_query_executors/two_query_executors_test.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -124,10 +124,12 @@ var compareMedian = func(t *testing.T, metricName string, currentAsStringSlice,
124124
previousMedian := benchspy.CalculatePercentile(previousFloatSlice, 0.5)
125125

126126
var diffPrecentage float64
127-
if previousMedian != 0 {
127+
if previousMedian != 0.0 && currentMedian != 0.0 {
128128
diffPrecentage = (currentMedian - previousMedian) / previousMedian * 100
129+
} else if previousMedian == 0.0 && currentMedian == 0.0 {
130+
diffPrecentage = 0.0
129131
} else {
130-
diffPrecentage = currentMedian * 100
132+
diffPrecentage = 100.0
131133
}
132134
assert.LessOrEqual(t, math.Abs(diffPrecentage), 1.0, "%s medians are more than 1% different", metricName, fmt.Sprintf("%.4f", diffPrecentage))
133135
}

0 commit comments

Comments
 (0)