package edu.brown.cs.student; import edu.brown.cs.student.term.DatabaseQuerier; import edu.brown.cs.student.term.hub.Holder; import edu.brown.cs.student.term.hub.HubSearch; import edu.brown.cs.student.term.hub.LinkMapper; import edu.brown.cs.student.term.profit.ProfitCalculation; import edu.brown.cs.student.term.profit.StockHolding; import edu.brown.cs.student.term.repl.commands.SetupCommand; import edu.brown.cs.student.term.trade.Trade; import org.junit.After; import org.junit.Before; import org.junit.Test; import java.util.List; import java.sql.Date; import java.time.Instant; import java.util.Map; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; public class ProfitCalculationTest { /** * these should span the entire mock dataset */ //12 am on 3/11 in UTC private Instant start = Instant.parse("2021-03-11T05:00:00.00Z"); //12 am on 3/28 in UTC private Instant end = Instant.parse("2021-03-28T05:00:00.00Z"); private DatabaseQuerier db; @Before public void setUp() { try { db = new DatabaseQuerier("data/testing/test_trades.sqlite3"); } catch (Exception e) { System.out.println("DBQuerier Test, couldn't connect to db???"); } } @After public void tearDown() { db = null; } @Test public void testEmptyDB() { setUp(); ProfitCalculation profitCalculation = new ProfitCalculation(DatabaseQuerier.getConn(), "CAKEBREAD STEVEN", new Date(1518010558000l), new Date(1718010556000l)); List trade = profitCalculation.getHoldingsList(); double gain = trade.get(0).getUnrealizedGain(); assertEquals(294800.0, gain, .01); } }