@arrows/array
Version:
Functional tools for JS arrays
35 lines (26 loc) • 1.08 kB
text/typescript
import { reduce } from "./index"
describe("Array reduce", () => {
it("provides functional wrapper for Array.prototype.reduce", () => {
const arr = [1, 2, 3]
const reducingFn = (acc, value) => acc + value
const initialValue = 0
const result = reduce(reducingFn, initialValue, arr)
const result2 = reduce(reducingFn)(initialValue, arr)
const result3 = reduce(reducingFn, initialValue)(arr)
const result4 = reduce(reducingFn)(initialValue)(arr)
const expected = arr.reduce(reducingFn, initialValue)
expect(result).toEqual(result2)
expect(result).toEqual(result3)
expect(result).toEqual(result4)
expect(result).toEqual(expected)
})
it("provides functional wrapper for Array.prototype.reduce - no initial accumulator", () => {
const arr = [1, 2, 3]
const reducingFn = (acc, value) => acc + value
const result = reduce.first(reducingFn, arr)
const result2 = reduce.first(reducingFn)(arr)
const expected = arr.reduce(reducingFn)
expect(result).toEqual(result2)
expect(result).toEqual(expected)
})
})