From 3ebdc5e35447d8dd64873396a31d246b8604c831 Mon Sep 17 00:00:00 2001 From: Abhishek Shrestha Date: Mon, 22 Feb 2021 21:24:14 +0545 Subject: [PATCH 1/2] test cases for generating preview of iceberg orders --- test/lib/iceberg/meta/gen_preview.js | 49 ++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 test/lib/iceberg/meta/gen_preview.js diff --git a/test/lib/iceberg/meta/gen_preview.js b/test/lib/iceberg/meta/gen_preview.js new file mode 100644 index 00000000..7fc4897c --- /dev/null +++ b/test/lib/iceberg/meta/gen_preview.js @@ -0,0 +1,49 @@ +/* eslint-env mocha */ +'use strict' + +const assert = require('assert') +const genPreview = require('../../../../lib/iceberg/meta/gen_preview') + +const getState = (argOverrides = {}) => { + return { + amount: 42, + sliceAmount: 10, + symbol: 'tBTCUSD', + price: 50000, + orderType: 'LIMIT', + ...argOverrides + } +} + +describe('iceberg:meta:init_state', () => { + it('generates the sliced order a/c to given input', () => { + const o = genPreview(getState()) + const [slicedOrder] = o + + assert.deepStrictEqual(o.length, 1, 'no order created') + assert.deepStrictEqual(slicedOrder.amount, 10, 'invalid sliced amount') + assert.deepStrictEqual(slicedOrder.symbol, 'tBTCUSD', 'invalid order symbol') + assert.deepStrictEqual(slicedOrder.price, 50000, 'invalid order price') + }) + + it('generates the correct sliced order for float amounts', () => { + const o = genPreview(getState({ + excessAsHidden: true, + amount: 0.3, + sliceAmount: 0.1 + })) + const [excessOrder, slicedOrder] = o + + assert.deepStrictEqual(excessOrder.amount, 0.2, 'invalid excess sliced amount') + assert.deepStrictEqual(slicedOrder.amount, 0.1, 'invalid sliced amount') + }) + + it('generates an extra hidden order for excess amount', () => { + const o = genPreview(getState({ excessAsHidden: true })) + const [excessOrder] = o + + assert.deepStrictEqual(o.length, 2, 'did not create an order for excess amount') + assert.ok(excessOrder.hidden, 'did not create a hidden order for excess amount') + assert.deepStrictEqual(excessOrder.amount, 32, 'invalid excess amount') + }) +}) From 2c48203df610b5da952ec5a8c6da970e1e4be8fb Mon Sep 17 00:00:00 2001 From: Abhishek Shrestha Date: Tue, 23 Feb 2021 14:46:26 +0545 Subject: [PATCH 2/2] order_fill bignumber issue fix --- test/lib/iceberg/events/orders_order_fill.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/test/lib/iceberg/events/orders_order_fill.js b/test/lib/iceberg/events/orders_order_fill.js index a0119627..3dfd635b 100644 --- a/test/lib/iceberg/events/orders_order_fill.js +++ b/test/lib/iceberg/events/orders_order_fill.js @@ -38,6 +38,10 @@ describe('iceberg:events:orders_order_fill', () => { onOrderFill({ ...instance, + state: { + ...instance.state, + remainingAmount: 100 + }, h: { ...instance.h, emit: (eName, gid, orders, cancelDelay) => {