mirror of https://github.com/01-edu/public.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
1012 B
37 lines
1012 B
Array.prototype.forEach = undefined |
|
Array.prototype.map = undefined |
|
// /*/ // ⚡ |
|
export const tests = [] |
|
const t = f => tests.push(f) |
|
|
|
export const setup = () => { |
|
const arr = [1, 2, 3, 4, 5, Math.random(), 7, 10, -10, 20, -95] |
|
Object.getPrototypeOf([]).proto = ' [avoid for..in] ' |
|
return { arr } |
|
} |
|
|
|
t(({ eq, ctx }) => { |
|
// callback is call with the item value |
|
const result = [] |
|
const returned = forEach(ctx.arr, value => result.push(value)) |
|
return eq([returned, result], [undefined, ctx.arr]) |
|
}) |
|
|
|
t(({ eq, ctx }) => { |
|
// callback second parameter is the index |
|
const result = [] |
|
const returned = forEach(ctx.arr, (_, index) => result.push(index)) |
|
return eq([returned, result], [undefined, [...ctx.arr.keys()]]) |
|
}) |
|
|
|
t(({ eq, ctx }) => { |
|
// callback third parameter is the array |
|
const result = [] |
|
const returned = forEach(ctx.arr, (_, __, arr) => result.push(arr)) |
|
return eq( |
|
[returned, result], |
|
[undefined, Array(ctx.arr.length).fill(ctx.arr)], |
|
) |
|
}) |
|
|
|
Object.freeze(tests)
|
|
|