X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=tests%2Fpools%2Fabstract-pool.test.mjs;h=ecb1c5670e095a4f89678f8a511a99721084d3ea;hb=5993cfc5a031fd2d64f644505db125bc1d28b05b;hp=fc346a642acef84a82404c19142fdf18e2a886e3;hpb=2155d8bb7f995ee1dda7eb10bd594039b1fa76f3;p=poolifier.git diff --git a/tests/pools/abstract-pool.test.mjs b/tests/pools/abstract-pool.test.mjs index fc346a64..ecb1c567 100644 --- a/tests/pools/abstract-pool.test.mjs +++ b/tests/pools/abstract-pool.test.mjs @@ -1708,13 +1708,24 @@ describe('Abstract pool test suite', () => { 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, @@ -1722,7 +1733,16 @@ describe('Abstract pool test suite', () => { 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() })