X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=tests%2Fpools%2Fabstract-pool.test.mjs;h=ecb1c5670e095a4f89678f8a511a99721084d3ea;hb=b1b20933105fb3c21f3d3825dc18a87501ad8275;hp=ec481d2ca918c33f42da25c17c9acc22806594ac;hpb=3a5027122ca6401ae1d755843b20f714c61e3240;p=poolifier.git diff --git a/tests/pools/abstract-pool.test.mjs b/tests/pools/abstract-pool.test.mjs index ec481d2c..ecb1c567 100644 --- a/tests/pools/abstract-pool.test.mjs +++ b/tests/pools/abstract-pool.test.mjs @@ -1708,6 +1708,44 @@ describe('Abstract pool test suite', () => { await pool.destroy() }) + it('Verify that mapExecute() is working', async () => { + const pool = new DynamicThreadPool( + Math.floor(numberOfWorkers / 2), + numberOfWorkers, + './tests/worker-files/thread/testMultipleTaskFunctionsWorker.mjs' + ) + 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, + 2.6525285981219103e+32, + 8.159152832478977e+47, + ]) + expect(pool.info.executingTasks).toBe(0) + 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() + }) + it('Verify that task function objects worker is working', async () => { const pool = new DynamicThreadPool( Math.floor(numberOfWorkers / 2),