mirror of https://github.com/01-edu/public.git
46 lines
1.2 KiB
JavaScript
46 lines
1.2 KiB
JavaScript
Array.prototype.some = Array.prototype.every = undefined
|
|
// /*/ // ⚡
|
|
export const tests = []
|
|
const t = (f) => tests.push(f)
|
|
|
|
const greaterEq10 = (n) => n >= 10
|
|
|
|
t(({ eq, ctx }) => eq(some(ctx.small, greaterEq10), false))
|
|
t(({ eq, ctx }) => eq(some(ctx.mixed, greaterEq10), true))
|
|
t(({ eq, ctx }) => eq(some(ctx.big, greaterEq10), true))
|
|
|
|
t(({ eq, ctx }) => eq(every(ctx.small, greaterEq10), false))
|
|
t(({ eq, ctx }) => eq(every(ctx.mixed, greaterEq10), false))
|
|
t(({ eq, ctx }) => eq(every(ctx.big, greaterEq10), true))
|
|
|
|
t(({ eq, ctx }) => eq(none(ctx.small, greaterEq10), true))
|
|
t(({ eq, ctx }) => eq(none(ctx.mixed, greaterEq10), false))
|
|
t(({ eq, ctx }) => eq(none(ctx.big, greaterEq10), false))
|
|
|
|
// the function should not be called more than needed
|
|
t(({ eq, ctx }) => {
|
|
let count = 0
|
|
some(ctx.big, () => ++count > 2)
|
|
return eq(count, 3)
|
|
})
|
|
|
|
t(({ eq, ctx }) => {
|
|
let count = 0
|
|
every(ctx.big, () => ++count < 3)
|
|
return eq(count, 3)
|
|
})
|
|
|
|
t(({ eq, ctx }) => {
|
|
let count = 0
|
|
none(ctx.big, () => ++count > 2)
|
|
return eq(count, 3)
|
|
})
|
|
|
|
Object.freeze(tests)
|
|
|
|
export const setup = () => ({
|
|
small: [3, 6, 1, 7, 2],
|
|
mixed: [23, 4, 10, 25, 6],
|
|
big: [43, 30, 16, 57, 10],
|
|
})
|