From cf07dba86abc84cc3c8b2daef0cd726bc21a5f2a Mon Sep 17 00:00:00 2001 From: Mericel Tao Date: Sun, 5 Mar 2023 13:13:26 -0500 Subject: [PATCH 1/2] added new test cases --- .idea/runConfigurations.xml | 10 -- src/test/testOrderBook.java | 200 +++++++++++++++++++++++++++++++++++- 2 files changed, 199 insertions(+), 11 deletions(-) delete mode 100644 .idea/runConfigurations.xml diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml deleted file mode 100644 index 797acea..0000000 --- a/.idea/runConfigurations.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/src/test/testOrderBook.java b/src/test/testOrderBook.java index 063dff6..4b39e7e 100644 --- a/src/test/testOrderBook.java +++ b/src/test/testOrderBook.java @@ -168,4 +168,202 @@ void placeTwoAsk() { assertEquals(-1f, testSubject.bestBidPrice); assertEquals(1.8f, testSubject.sittingVolume); } -} + + @Test + void placeTwoAskOneBid() { + // 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 newAsk2 = new Order(3.39f, 0.25f, Side.BID, 1677541289L); + testSubject.placeOrder(newAsk); + // Checking Operation + assertEquals(2, testSubject.asks.size()); + assertEquals(0, testSubject.bids.size()); + assertEquals(3.39f, testSubject.asks.getFirst().price); + assertEquals(0.25f, testSubject.asks.getFirst().size); + assertEquals(1677541289L, testSubject.asks.getFirst().createdTs); + assertEquals(3.39f, testSubject.bestAskPrice); + assertEquals(-1f, testSubject.bestBidPrice); // Should be unaffected + assertEquals(1.75f, testSubject.sittingVolume); + //Operation + Order newBid = new Order(5.3f, 0.3f, Side.BID, 1677598183L); + testSubject.placeOrder(newBid); + //Checking Operation + assertEquals(2, 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(3.39f, testSubject.bestAskPrice); + assertEquals(5.3f, testSubject.bestBidPrice); + assertEquals(2.05f, testSubject.sittingVolume); + + } + @Test + void placeTwoAskTwoBid() { + // 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 newAsk2 = new Order(3.39f, 0.25f, Side.BID, 1677541289L); + testSubject.placeOrder(newAsk); + // Checking Operation + assertEquals(2, testSubject.asks.size()); + assertEquals(0, testSubject.bids.size()); + assertEquals(3.39f, testSubject.asks.getFirst().price); + assertEquals(0.25f, testSubject.asks.getFirst().size); + assertEquals(1677541289L, testSubject.asks.getFirst().createdTs); + assertEquals(3.39f, testSubject.bestAskPrice); + assertEquals(-1f, testSubject.bestBidPrice); // Should be unaffected + assertEquals(1.75f, testSubject.sittingVolume); + //Operation + Order newBid = new Order(5.3f, 0.3f, Side.BID, 1677598183L); + testSubject.placeOrder(newBid); + //Checking Operation + assertEquals(2, 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(3.39f, testSubject.bestAskPrice); + assertEquals(5.3f, testSubject.bestBidPrice); + assertEquals(2.05f, testSubject.sittingVolume); + //Operation + Order newBid2 = new Order(3.39f, 0.25f, Side.BID, 1677541289L)); + testSubject.placeOrder(newBid2); + //Checking Operation + assertEquals(2, testSubject.asks.size()); + assertEquals(2, testSubject.bids.size()); + assertEquals(3.39f, testSubject.bids.getFirst().price); + assertEquals(0.25f, testSubject.bids.getFirst().size); + assertEquals(1677598183L, testSubject.bids.getFirst().createdTs); + assertEquals(3.39f, testSubject.bestAskPrice); + assertEquals(5.3f, testSubject.bestBidPrice); + assertEquals(2.30f, testSubject.sittingVolume); + + } + @Test + void placeOneAskTwoBid() { + // 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 newBid = new Order(5.3f, 0.3f, Side.BID, 1677598183L); + testSubject.placeOrder(newBid); + //Checking Operation + assertEquals(2, 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.80f, testSubject.sittingVolume); + //Operation + Order newBid2 = new Order(3.39f, 0.25f, Side.BID, 1677541289L)); + testSubject.placeOrder(newBid2); + //Checking Operation + assertEquals(2, testSubject.asks.size()); + assertEquals(2, testSubject.bids.size()); + assertEquals(3.39f, testSubject.bids.getFirst().price); + assertEquals(0.25f, testSubject.bids.getFirst().size); + assertEquals(1677598183L, testSubject.bids.getFirst().createdTs); + assertEquals(10.2f, testSubject.bestAskPrice); + assertEquals(3.39f, testSubject.bestBidPrice); + assertEquals(2.05f, testSubject.sittingVolume); + } + @Test + void placeThreeAsk() { + // 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 newAsk = new Order(3.2f, 0.5f, Side.ASK, 1677539233L); + testSubject.placeOrder(newAsk); + // Checking Operation + assertEquals(2, testSubject.asks.size()); + assertEquals(0, testSubject.bids.size()); + assertEquals(3.2f, testSubject.asks.getFirst().price); + assertEquals(0.5f, testSubject.asks.getFirst().size); + assertEquals(1677539233L, testSubject.asks.getFirst().createdTs); + assertEquals(10.2f, testSubject.bestAskPrice); + assertEquals(-1f, testSubject.bestBidPrice); // Should be unaffected + assertEquals(2.0f, testSubject.sittingVolume); + // Operation + Order newAsk = new Order(10.3f, 1.2f, Side.ASK, 1677538239L); + testSubject.placeOrder(newAsk); + // Checking Operation + assertEquals(1, testSubject.asks.size()); + assertEquals(0, testSubject.bids.size()); + assertEquals(10.3f, testSubject.asks.getFirst().price); + assertEquals(1.2f, testSubject.asks.getFirst().size); + assertEquals(1677538239L, testSubject.asks.getFirst().createdTs); + assertEquals(10.3f, testSubject.bestAskPrice); + assertEquals(-1f, testSubject.bestBidPrice); // Should be unaffected + assertEquals(3.2f, testSubject.sittingVolume); + } \ No newline at end of file From 6b586d2eb200faccba5a0b93261f93871d9d43ea Mon Sep 17 00:00:00 2001 From: Mericel Tao Date: Sun, 5 Mar 2023 14:15:30 -0500 Subject: [PATCH 2/2] fixed change requests on pull requests --- src/test/testOrderBook.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/test/testOrderBook.java b/src/test/testOrderBook.java index 4b39e7e..c1c1acd 100644 --- a/src/test/testOrderBook.java +++ b/src/test/testOrderBook.java @@ -300,7 +300,7 @@ void placeOneAskTwoBid() { Order newBid = new Order(5.3f, 0.3f, Side.BID, 1677598183L); testSubject.placeOrder(newBid); //Checking Operation - assertEquals(2, testSubject.asks.size()); + assertEquals(1, testSubject.asks.size()); assertEquals(1, testSubject.bids.size()); assertEquals(5.3f, testSubject.bids.getFirst().price); assertEquals(0.3f, testSubject.bids.getFirst().size); @@ -312,7 +312,7 @@ void placeOneAskTwoBid() { Order newBid2 = new Order(3.39f, 0.25f, Side.BID, 1677541289L)); testSubject.placeOrder(newBid2); //Checking Operation - assertEquals(2, testSubject.asks.size()); + assertEquals(1, testSubject.asks.size()); assertEquals(2, testSubject.bids.size()); assertEquals(3.39f, testSubject.bids.getFirst().price); assertEquals(0.25f, testSubject.bids.getFirst().size); @@ -351,19 +351,19 @@ void placeThreeAsk() { assertEquals(3.2f, testSubject.asks.getFirst().price); assertEquals(0.5f, testSubject.asks.getFirst().size); assertEquals(1677539233L, testSubject.asks.getFirst().createdTs); - assertEquals(10.2f, testSubject.bestAskPrice); + assertEquals(3.2f, testSubject.bestAskPrice); assertEquals(-1f, testSubject.bestBidPrice); // Should be unaffected assertEquals(2.0f, testSubject.sittingVolume); // Operation Order newAsk = new Order(10.3f, 1.2f, Side.ASK, 1677538239L); testSubject.placeOrder(newAsk); // Checking Operation - assertEquals(1, testSubject.asks.size()); + assertEquals(3, testSubject.asks.size()); assertEquals(0, testSubject.bids.size()); assertEquals(10.3f, testSubject.asks.getFirst().price); assertEquals(1.2f, testSubject.asks.getFirst().size); assertEquals(1677538239L, testSubject.asks.getFirst().createdTs); - assertEquals(10.3f, testSubject.bestAskPrice); + assertEquals(3.2f, testSubject.bestAskPrice); assertEquals(-1f, testSubject.bestBidPrice); // Should be unaffected assertEquals(3.2f, testSubject.sittingVolume); } \ No newline at end of file