diff --git a/src/test/testOrderBook.java b/src/test/testOrderBook.java index 063dff6..6bb0e26 100644 --- a/src/test/testOrderBook.java +++ b/src/test/testOrderBook.java @@ -9,163 +9,107 @@ class testOrderBook { @Test void placeOneAsk() { - // Init and checking start conditions + // Check default cond OrderBook testSubject = new OrderBook(); assertEquals(0, testSubject.asks.size()); assertEquals(0, testSubject.bids.size()); assertEquals(-1f, testSubject.bestAskPrice); assertEquals(-1f, testSubject.bestBidPrice); assertEquals(0f, testSubject.sittingVolume); - // Operation - Order newAsk = new Order(10.2f, 1.5f, Side.ASK, 1677539237L); + // Append singular ask + Order newAsk = new Order(30f, 3f, Side.ASK, 0L); testSubject.placeOrder(newAsk); - // Checking Operation + // Verify modified values assertEquals(1, testSubject.asks.size()); assertEquals(0, testSubject.bids.size()); - assertEquals(10.2f, testSubject.asks.getFirst().price); - assertEquals(1.5f, testSubject.asks.getFirst().size); - assertEquals(1677539237L, testSubject.asks.getFirst().createdTs); - assertEquals(10.2f, testSubject.bestAskPrice); + assertEquals(30f, testSubject.asks.getFirst().price); + assertEquals(3f, testSubject.asks.getFirst().size); + assertEquals(0L, testSubject.asks.getFirst().createdTs); + assertEquals(30f, testSubject.bestAskPrice); assertEquals(-1f, testSubject.bestBidPrice); // Should be unaffected - assertEquals(1.5f, testSubject.sittingVolume); + assertEquals(3f, testSubject.sittingVolume); } @Test - void placeOneAskTwo() { - // Init and checking start conditions + void placeTwoAsk() { + // Init default OrderBook (no reason to check default cond) OrderBook testSubject = new OrderBook(); - assertEquals(0, testSubject.asks.size()); - assertEquals(0, testSubject.bids.size()); - assertEquals(-1f, testSubject.bestAskPrice); - assertEquals(-1f, testSubject.bestBidPrice); - assertEquals(0f, testSubject.sittingVolume); - //Operation - Order newAsk = new Order(5.3f, 0.3f, Side.ASK, 1677599362L); + // Append (first) ask + Order newAsk = new Order(30f, 3f, Side.ASK, 0L); testSubject.placeOrder(newAsk); - //Checking Operation + // Verify modified values assertEquals(1, testSubject.asks.size()); assertEquals(0, testSubject.bids.size()); - assertEquals(5.3f, testSubject.asks.getFirst().price); - assertEquals(0.3f, testSubject.asks.getFirst().size); - assertEquals(1677599362L, testSubject.asks.getFirst().createdTs); - assertEquals(5.3f, testSubject.bestAskPrice); - assertEquals(-1f, testSubject.bestBidPrice); - assertEquals(0.3f, testSubject.sittingVolume); + assertEquals(30f, testSubject.asks.getFirst().price); + assertEquals(3f, testSubject.asks.getFirst().size); + assertEquals(0L, testSubject.asks.getFirst().createdTs); + assertEquals(30f, testSubject.bestAskPrice); + assertEquals(-1f, testSubject.bestBidPrice); // Should be unaffected + assertEquals(3f, testSubject.sittingVolume); + // Append (second) ask + Order newAsk2 = new Order(92.f, 2.f, Side.ASK, 1L); + testSubject.placeOrder(newAsk2); + // Verify modified values + assertEquals(2, testSubject.asks.size()); + assertEquals(0, testSubject.bids.size()); + assertEquals(30f, testSubject.asks.getFirst().price); + assertEquals(3f, testSubject.asks.getFirst().size); + assertEquals(0L, testSubject.asks.getFirst().createdTs); + assertEquals(30f, testSubject.bestAskPrice); + assertEquals(-1f, testSubject.bestBidPrice); // Should be unaffected + assertEquals(5f, testSubject.sittingVolume); } @Test void placeOneBid() { - // Init and checking start conditions + // Init default OrderBook (no reason to check default cond) OrderBook testSubject = new OrderBook(); - assertEquals(0, testSubject.asks.size()); - assertEquals(0, testSubject.bids.size()); - assertEquals(-1f, testSubject.bestAskPrice); - assertEquals(-1f, testSubject.bestBidPrice); - assertEquals(0f, testSubject.sittingVolume); - // Operation - Order newAsk = new Order(3.39f, 0.25f, Side.BID, 1677541289L); - testSubject.placeOrder(newAsk); - // Checking Operation + // Append singular bid + Order newBid = new Order(5f, 0.25f, Side.BID, 0L); + testSubject.placeOrder(newBid); + // Verify modified values assertEquals(0, testSubject.asks.size()); assertEquals(1, testSubject.bids.size()); - assertEquals(3.39f, testSubject.bids.getFirst().price); + assertEquals(5f, testSubject.bids.getFirst().price); assertEquals(0.25f, testSubject.bids.getFirst().size); - assertEquals(1677541289L, testSubject.bids.getFirst().createdTs); + assertEquals(0L, testSubject.bids.getFirst().createdTs); assertEquals(-1f, testSubject.bestAskPrice); // Should be unaffected - assertEquals(3.39f, testSubject.bestBidPrice); + assertEquals(5f, testSubject.bestBidPrice); assertEquals(0.25f, testSubject.sittingVolume); } - @Test - void placeOneBidTwo() { - // Init and checking start conditions - OrderBook testSubject = new OrderBook(); - assertEquals(0, testSubject.asks.size()); - assertEquals(0, testSubject.bids.size()); - assertEquals(-1f, testSubject.bestAskPrice); - assertEquals(-1f, testSubject.bestBidPrice); - assertEquals(0f, testSubject.sittingVolume); - //Operation - Order newBid = new Order(5.3f, 0.3f, Side.BID, 1677598183L); - testSubject.placeOrder(newBid); - //Checking Operation - assertEquals(0, testSubject.asks.size()); - assertEquals(1, testSubject.bids.size()); - assertEquals(5.3f, testSubject.bids.getFirst().price); - assertEquals(0.3f, testSubject.bids.getFirst().size); - assertEquals(1677598183L, testSubject.bids.getFirst().createdTs); - assertEquals(-1f, testSubject.bestAskPrice); - assertEquals(5.3f, testSubject.bestBidPrice); - assertEquals(0.3f, testSubject.sittingVolume); - } - @Test void placeOneAskAndBid() { - // Init and checking start conditions + // Init default OrderBook (no reason to check default cond) OrderBook testSubject = new OrderBook(); assertEquals(0, testSubject.asks.size()); assertEquals(0, testSubject.bids.size()); assertEquals(-1f, testSubject.bestAskPrice); assertEquals(-1f, testSubject.bestBidPrice); assertEquals(0f, testSubject.sittingVolume); - // Operation - Order newAsk = new Order(10.2f, 1.5f, Side.ASK, 1677539237L); + // Append singular ask + Order newAsk = new Order(5f, 1.5f, Side.ASK, 0L); testSubject.placeOrder(newAsk); - // Checking Operation + // Verify modified values assertEquals(1, testSubject.asks.size()); assertEquals(0, testSubject.bids.size()); - assertEquals(10.2f, testSubject.asks.getFirst().price); + assertEquals(5f, testSubject.asks.getFirst().price); assertEquals(1.5f, testSubject.asks.getFirst().size); - assertEquals(1677539237L, testSubject.asks.getFirst().createdTs); - assertEquals(10.2f, testSubject.bestAskPrice); + assertEquals(0L, testSubject.asks.getFirst().createdTs); + assertEquals(5f, testSubject.bestAskPrice); assertEquals(-1f, testSubject.bestBidPrice); // Should be unaffected assertEquals(1.5f, testSubject.sittingVolume); - //Operation - Order newBid = new Order(5.3f, 0.3f, Side.BID, 1677598183L); + // Append singular bid + Order newBid = new Order(92f, 0.25f, Side.BID, 10L); testSubject.placeOrder(newBid); - //Checking Operation + // Verify modified values assertEquals(1, testSubject.asks.size()); assertEquals(1, testSubject.bids.size()); - assertEquals(5.3f, testSubject.bids.getFirst().price); - assertEquals(0.3f, testSubject.bids.getFirst().size); - assertEquals(1677598183L, testSubject.bids.getFirst().createdTs); - assertEquals(10.2f, testSubject.bestAskPrice); - assertEquals(5.3f, testSubject.bestBidPrice); - assertEquals(1.8f, testSubject.sittingVolume); - } - - @Test - void placeTwoAsk() { - // Init and checking start conditions - OrderBook testSubject = new OrderBook(); - assertEquals(0, testSubject.asks.size()); - assertEquals(0, testSubject.bids.size()); - assertEquals(-1f, testSubject.bestAskPrice); - assertEquals(-1f, testSubject.bestBidPrice); - assertEquals(0f, testSubject.sittingVolume); - // Operation - Order newAsk = new Order(10.2f, 1.5f, Side.ASK, 1677539237L); - testSubject.placeOrder(newAsk); - // Checking Operation - assertEquals(1, testSubject.asks.size()); - assertEquals(0, testSubject.bids.size()); - assertEquals(10.2f, testSubject.asks.getFirst().price); - assertEquals(1.5f, testSubject.asks.getFirst().size); - assertEquals(1677539237L, testSubject.asks.getFirst().createdTs); - assertEquals(10.2f, testSubject.bestAskPrice); - assertEquals(-1f, testSubject.bestBidPrice); // Should be unaffected - assertEquals(1.5f, testSubject.sittingVolume); - //Operation - Order newAskOne = new Order(5.3f, 0.3f, Side.ASK, 1677598183L); - testSubject.placeOrder(newAskOne); - //Checking Operation - assertEquals(2, testSubject.asks.size()); - assertEquals(0, testSubject.bids.size()); - assertEquals(5.3f, testSubject.asks.getFirst().price); - assertEquals(0.3f, testSubject.asks.getFirst().size); - assertEquals(1677598183L, testSubject.asks.getFirst().createdTs); - assertEquals(5.3f, testSubject.bestAskPrice); - assertEquals(-1f, testSubject.bestBidPrice); - assertEquals(1.8f, testSubject.sittingVolume); + assertEquals(92f, testSubject.bids.getFirst().price); + assertEquals(0.25f, testSubject.bids.getFirst().size); + assertEquals(10L, testSubject.bids.getFirst().createdTs); + assertEquals(5f, testSubject.bestAskPrice); + assertEquals(92f, testSubject.bestBidPrice); + assertEquals(1.75f, testSubject.sittingVolume); } }