( valueExtractor: (value: T) => number = (v) => v as unknown as number, )
| 149 | * Creates a sum aggregate function |
| 150 | */ |
| 151 | export function sum<T>( |
| 152 | valueExtractor: (value: T) => number = (v) => v as unknown as number, |
| 153 | ): AggregateFunction<T, number, number> { |
| 154 | return { |
| 155 | preMap: (data: T) => valueExtractor(data), |
| 156 | reduce: (values: Array<[number, number]>) => { |
| 157 | let total = 0 |
| 158 | for (const [value, multiplicity] of values) { |
| 159 | total += value * multiplicity |
| 160 | } |
| 161 | return total |
| 162 | }, |
| 163 | } |
| 164 | } |
| 165 | |
| 166 | /** |
| 167 | * Creates a count aggregate function |
no test coverage detected