Count, Sum, Minimum, Maximum, and Range
Install and import#
npm install fintech-algorithmsimport { countSumMinimumMaximumAndRange } from "fintech-algorithms/foundations/location-ranking-and-exploratory-summaries/count-sum-minimum-maximum-and-range";Signature#
countSumMinimumMaximumAndRange(input)Reduces one numeric series to the five headline aggregates: how many observations there are, their total, the smallest and largest value, and the distance between those extremes.
Parameters#
| Name | Type | Notes |
|---|---|---|
input | { values: number[] } | The observations to summarise, under the key values. Entries are coerced with Number before use, so numeric strings are accepted and anything that coerces to NaN or an infinity is rejected. |
Returns#
{ count: number; sum: number; minimum: number; maximum: number; range: number }
count is the number of observations, sum their total, minimum and maximum the extremes, and range is maximum - minimum.
Errors#
- When
inputis null, an array, or not an object — throws TypeError - When
valuesis missing, is not an array, or is empty — throws RangeError - When any entry of
valuesdoes not coerce to a finite number — throws RangeError
Complexity: time O(n log n),
space O(n).
Worked example#
verified This is the worked example published in the article, replayed by the test suite on every run. The output cannot drift.
Input#
{
"values": [1, 2, 2, 4, 9],
"weights": [1, 1, 2, 1, 1],
"trimProportion": 0.2,
"bins": 4
}Call#
countSumMinimumMaximumAndRange(input)Returns#
object with 2 fields: count, sum
{
"count": 5,
"sum": 18
}Diagrams#
How it works#
This page states the contract — how to call it correctly. The article explains the concept: why it works, and where it breaks.
References#
- Measures of Location
- Location, Scale, and Shape
- Historical-example decision