function testKernelMap(mode) { const gpu = new GPU({ mode }); function calc1(v1, v2) { return v2[this.thread.x] - v1; } function calc2(v1, v2) { return v1 * v2; } const kernelMap = gpu.createKernelMap({ calc1, calc2, }, function (outputs, targets) { const output = outputs[this.thread.x]; return calc2(calc1(output, targets), output); }, { output: [1], pipeline: true }); try { const result = kernelMap([1], [3]); assert.equal(result.calc1.toArray()[0], 2); assert.equal(result.calc2.toArray()[0], 2); assert.equal(result.result.toArray()[0], 2); } finally { gpu.destroy(); } }
for (let i = 0; i < 10; i++) { let lastResults = map; map = kernel(map.result, map.oneOffValue); lastResults.result.delete(); lastResults.oneOffValue.delete(); assert.deepEqual(map.result.toArray(), new Float32Array([11])); assert.deepEqual(map.oneOffValue.toArray(), new Float32Array([0])); assert.equal(newTextureSpy.callCount, 2);
it('can get trades', async (done) => { mock.get(REST_API_ROUTE + '/markets/kraken/btcusd/trades', () => ({ body: TRADES })); const response = await client.getTrades('kraken', 'btcusd'); expect(response[0].id).toEqual(TRADES.result[0][0]); expect(response[0].timestamp).toEqual(TRADES.result[0][1]); expect(response[0].price).toEqual(TRADES.result[0][2].toString()); expect(response[0].amount).toEqual(TRADES.result[0][3].toString()); done(); });
it('can get exchange markets', async (done) => { mock.get(REST_API_ROUTE + '/markets/kraken', () => ({ body: EXCHANGE_MARKETS })); const response = await client.getExchangeMarkets('kraken'); expect(response).toEqual(EXCHANGE_MARKETS.result); done(); });
it('can get markets', async (done) => { mock.get(REST_API_ROUTE + '/markets', () => ({ body: MARKETS })); const response = await client.getMarkets(); expect(response).toEqual(MARKETS.result); done(); });
it('can get market by id', async (done) => { mock.get(REST_API_ROUTE + '/v2/markets/87', () => ({ body: MARKET_V2 })); const response = await client.getMarket(87); expect(response).toEqual(MARKET_V2.result); done(); });
it('can get exchanges', async (done) => { mock.get(REST_API_ROUTE + '/exchanges', () => ({ body: EXCHANGES })); const response = await client.getExchanges(); expect(response).toEqual(EXCHANGES.result); done(); });
it('can get pairs index', async (done) => { mock.get(REST_API_ROUTE + '/pairs', () => ({ body: PAIRS_INDEX })); const response = await client.getPairsIndex(); expect(response).toEqual(PAIRS_INDEX.result); done(); });
it('can get market by symbol', async (done) => { mock.get(REST_API_ROUTE + '/v2/markets', () => ({ body: MARKET_V2 })); const response = await client.getMarket({ exchange: 'kraken', base: 'btc', quote: 'usd' }); expect(response).toEqual(MARKET_V2.result[0]); done(); });