await pool.destroy()
})
- it('Verify mapExecute() is working', async () => {
+ it('Verify that mapExecute() is working', async () => {
const pool = new DynamicThreadPool(
Math.floor(numberOfWorkers / 2),
numberOfWorkers,
'./tests/worker-files/thread/testMultipleTaskFunctionsWorker.mjs'
)
- const results = await pool.mapExecute([{ n: 10 }, { n: 20 }, { n: 30 }, { n: 40 }], 'factorial')
+ expect(() => pool.mapExecute()).toThrow(new TypeError('data argument must be a defined iterable'))
+ expect(() => pool.mapExecute(0)).toThrow(new TypeError('data argument must be an iterable'))
+ let results = await pool.mapExecute([{}, {}, {}, {}])
+ expect(results).toStrictEqual([
+ { ok: 1 },
+ { ok: 1 },
+ { ok: 1 },
+ { ok: 1 },
+ ])
+ expect(pool.info.executingTasks).toBe(0)
+ expect(pool.info.executedTasks).toBe(4)
+ results = await pool.mapExecute([{ n: 10 }, { n: 20 }, { n: 30 }, { n: 40 }], 'factorial')
expect(results).toStrictEqual([
3628800,
2432902008176640000,
8.159152832478977e+47,
])
expect(pool.info.executingTasks).toBe(0)
- expect(pool.info.executedTasks).toBe(4)
+ expect(pool.info.executedTasks).toBe(8)
+ results = await pool.mapExecute(new Set([{ n: 10 }, { n: 20 }, { n: 30 }, { n: 40 }]), 'factorial')
+ expect(results).toStrictEqual([
+ 3628800,
+ 2432902008176640000,
+ 2.6525285981219103e+32,
+ 8.159152832478977e+47,
+ ])
+ expect(pool.info.executingTasks).toBe(0)
+ expect(pool.info.executedTasks).toBe(12)
await pool.destroy()
})