Skip to content

Commit d769e4e

Browse files
committed
separate keys for outlier boudns
1 parent cdf1490 commit d769e4e

File tree

2 files changed

+20
-9
lines changed

2 files changed

+20
-9
lines changed

lib/statistex.ex

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ defmodule Statistex do
2727
:mode,
2828
:minimum,
2929
:maximum,
30-
:outlier_bounds,
30+
:lower_outlier_bound,
31+
:upper_outlier_bound,
3132
:outliers,
3233
sample_size: 0
3334
]
@@ -49,7 +50,8 @@ defmodule Statistex do
4950
mode: mode,
5051
minimum: number,
5152
maximum: number,
52-
outlier_bounds: {number, number},
53+
lower_outlier_bound: number,
54+
upper_outlier_bound: number,
5355
outliers: [number],
5456
sample_size: non_neg_integer
5557
}
@@ -130,7 +132,8 @@ defmodule Statistex do
130132
sample_size: 9,
131133
total: 4500,
132134
outliers: [],
133-
outlier_bounds: {100.0, 900.0}
135+
lower_outlier_bound: 100.0,
136+
upper_outlier_bound: 900.0
134137
}
135138
136139
iex> Statistex.statistics([])
@@ -151,7 +154,8 @@ defmodule Statistex do
151154
sample_size: 4,
152155
total: 0,
153156
outliers: [],
154-
outlier_bounds: {0.0, 0.0}
157+
lower_outlier_bound: 0.0,
158+
upper_outlier_bound: 0.0,
155159
}
156160
157161
"""
@@ -215,6 +219,8 @@ defmodule Statistex do
215219
standard_deviation_ratio =
216220
standard_deviation_ratio(samples, standard_deviation: standard_deviation)
217221

222+
{lower_outlier_bound, upper_outlier_bound} = outlier_bounds
223+
218224
%__MODULE__{
219225
total: total,
220226
average: average,
@@ -227,7 +233,8 @@ defmodule Statistex do
227233
mode: mode(samples, frequency_distribution: frequency_distribution),
228234
minimum: minimum,
229235
maximum: maximum,
230-
outlier_bounds: outlier_bounds,
236+
lower_outlier_bound: lower_outlier_bound,
237+
upper_outlier_bound: upper_outlier_bound,
231238
outliers: outliers,
232239
sample_size: sample_size
233240
}

test/statistex_test.exs

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,8 @@ defmodule Statistex.StatistexTest do
4040
mode: [500, 400],
4141
minimum: 200,
4242
maximum: 900,
43-
outlier_bounds: {100.0, 900.0},
43+
lower_outlier_bound: 100.0,
44+
upper_outlier_bound: 900.0,
4445
outliers: [],
4546
sample_size: 9
4647
}
@@ -60,7 +61,8 @@ defmodule Statistex.StatistexTest do
6061
mode: [500, 450],
6162
minimum: 50,
6263
maximum: 900,
63-
outlier_bounds: {87.5, 787.5},
64+
lower_outlier_bound: 87.5,
65+
upper_outlier_bound: 787.5,
6466
outliers: [50, 50, 900],
6567
sample_size: 10
6668
}
@@ -85,7 +87,8 @@ defmodule Statistex.StatistexTest do
8587
percentiles: %{25 => 9.25, 50 => 10.0, 75 => 11.75},
8688
minimum: 9,
8789
maximum: 36,
88-
outlier_bounds: {5.5, 15.5},
90+
lower_outlier_bound: 5.5,
91+
upper_outlier_bound: 15.5,
8992
outliers: [36]
9093
} = Statistex.statistics([9, 9, 10, 10, 10, 11, 12, 36], exclude_outliers: false)
9194
end
@@ -123,7 +126,8 @@ defmodule Statistex.StatistexTest do
123126
median: 70.0,
124127
percentiles: %{25 => 66.0, 50 => 70.0, 75 => 75.0},
125128
# report interquantile range?
126-
outlier_bounds: {52.5, 88.5},
129+
lower_outlier_bound: 52.5,
130+
upper_outlier_bound: 88.5,
127131
outliers: [52, 89]
128132
} = Statistex.statistics(data, exclude_outliers: false)
129133
end

0 commit comments

Comments
 (0)