From eed9265be711432f40247f149c07f9e33511192a Mon Sep 17 00:00:00 2001 From: Kostya Date: Sun, 16 Aug 2026 18:50:15 +0000 Subject: Split DTOs into api/model, extract order matching into service/matching Moves Event/Ledger DTOs out of the flat api package into api/model/{event,ledger}, and moves LocalCatalogContext and order matching logic into dedicated service/catalog and service/matching packages, replacing TradingOperation/TradingOperationImpl. --- .../mechanism/LmsrTradingMechanismTest.java | 37 ---------------- .../mechanism/OrderBookTradingMechanismTest.java | 51 ---------------------- 2 files changed, 88 deletions(-) delete mode 100644 service/src/test/java/market/guess/service/mechanism/LmsrTradingMechanismTest.java delete mode 100644 service/src/test/java/market/guess/service/mechanism/OrderBookTradingMechanismTest.java (limited to 'service/src/test/java') diff --git a/service/src/test/java/market/guess/service/mechanism/LmsrTradingMechanismTest.java b/service/src/test/java/market/guess/service/mechanism/LmsrTradingMechanismTest.java deleted file mode 100644 index f5c6af5..0000000 --- a/service/src/test/java/market/guess/service/mechanism/LmsrTradingMechanismTest.java +++ /dev/null @@ -1,37 +0,0 @@ -package market.guess.service.mechanism; - -import static org.junit.Assert.assertArrayEquals; -import static org.junit.Assert.assertEquals; - -import java.math.BigDecimal; -import org.junit.Test; - -public class LmsrTradingMechanismTest { - - @Test - public void openingCostMatchesLmsrFormula() { - var mechanism = new LmsrTradingMechanism(100, 2); - - assertEquals(new BigDecimal("69.31"), mechanism.openingCost()); - } - - @Test - public void pricesStartEven() { - var mechanism = new LmsrTradingMechanism(100, 2); - - assertArrayEquals( - new BigDecimal[] {new BigDecimal("0.50"), new BigDecimal("0.50")}, mechanism.prices()); - } - - @Test - public void buyingSharesShiftsCostAndPrice() { - var mechanism = new LmsrTradingMechanism(100, 2); - - var execution = mechanism.buy(0, 100); - - assertEquals(100, execution.filledQuantity()); - assertEquals(new BigDecimal("62.01"), execution.cost()); - assertArrayEquals( - new BigDecimal[] {new BigDecimal("0.73"), new BigDecimal("0.27")}, mechanism.prices()); - } -} diff --git a/service/src/test/java/market/guess/service/mechanism/OrderBookTradingMechanismTest.java b/service/src/test/java/market/guess/service/mechanism/OrderBookTradingMechanismTest.java deleted file mode 100644 index b4b2da3..0000000 --- a/service/src/test/java/market/guess/service/mechanism/OrderBookTradingMechanismTest.java +++ /dev/null @@ -1,51 +0,0 @@ -package market.guess.service.mechanism; - -import static org.junit.Assert.assertEquals; - -import java.math.BigDecimal; -import market.guess.service.mechanism.OrderBookTradingMechanism.Side; -import org.junit.Test; - -public class OrderBookTradingMechanismTest { - - @Test - public void limitBuyConsumesRestingAsksInFifoOrderAndLeavesRemainder() { - var mechanism = new OrderBookTradingMechanism(false, 100, 1, 2); - var price = new BigDecimal("0.60"); - - mechanism.placeOrder(0, Side.SELL, 20, price); - mechanism.placeOrder(0, Side.SELL, 40, price); - - var execution = mechanism.placeOrder(0, Side.BUY, 50, price); - - assertEquals(50, execution.filledQuantity()); - assertEquals(new BigDecimal("30.00"), execution.cost()); - - var followUp = mechanism.buy(0, 100); - assertEquals(10, followUp.filledQuantity()); - } - - @Test - public void marketBuySweepsMultiplePriceLevelsAndPartiallyFillsWhenBookRunsOut() { - var mechanism = new OrderBookTradingMechanism(false, 100, 1, 2); - mechanism.placeOrder(0, Side.SELL, 10, new BigDecimal("0.50")); - mechanism.placeOrder(0, Side.SELL, 10, new BigDecimal("0.70")); - - var execution = mechanism.buy(0, 15); - - assertEquals(15, execution.filledQuantity()); - assertEquals(new BigDecimal("8.50"), execution.cost()); - - var exhausted = mechanism.buy(0, 100); - assertEquals(5, exhausted.filledQuantity()); - } - - @Test - public void pricesReflectMidpointOfBestBidAndAsk() { - var mechanism = new OrderBookTradingMechanism(false, 100, 1, 2); - mechanism.placeOrder(0, Side.BUY, 10, new BigDecimal("0.40")); - mechanism.placeOrder(0, Side.SELL, 10, new BigDecimal("0.60")); - - assertEquals(new BigDecimal("0.50"), mechanism.prices()[0]); - } -} -- cgit v1.2.3