aboutsummaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/edu/brown/cs/student/DBQuerierTest.java167
-rw-r--r--src/test/java/edu/brown/cs/student/HubRankTest.java66
-rw-r--r--src/test/java/edu/brown/cs/student/LinkMapperTest.java59
-rw-r--r--src/test/java/edu/brown/cs/student/SuspicionRankerTest.java52
4 files changed, 291 insertions, 53 deletions
diff --git a/src/test/java/edu/brown/cs/student/DBQuerierTest.java b/src/test/java/edu/brown/cs/student/DBQuerierTest.java
index d813969..b3ea140 100644
--- a/src/test/java/edu/brown/cs/student/DBQuerierTest.java
+++ b/src/test/java/edu/brown/cs/student/DBQuerierTest.java
@@ -1,21 +1,18 @@
package edu.brown.cs.student;
-import java.io.PrintStream;
-import java.sql.SQLException;
import java.time.Instant;
import java.util.ArrayList;
import java.util.List;
import edu.brown.cs.student.term.DatabaseQuerier;
-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 static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.assertFalse;
-//TODO: Write more tests for methods besides stock by name
public class DBQuerierTest {
/** these should span the entire mock dataset */
@@ -35,12 +32,6 @@ public class DBQuerierTest {
}
}
- /*
- * try{
-
- } catch(Exception e) {
- System.out.println("Error in test");
- }*/
@After
public void tearDown() {
@@ -50,34 +41,114 @@ public class DBQuerierTest {
@Test
public void testNonExistentStock(){
setUp();
+ List<Trade> fakeStockList = new ArrayList<>();
+ try{
+ fakeStockList = db.getTradeByStock("NONO", 1, start, end);
+ } catch(Exception e) {
+ System.out.println("Error in test");
+ }
+ assertTrue(fakeStockList.isEmpty());
+ tearDown();
+ }
+
+ @Test
+ public void testEmptyDatabase(){
try{
- List<Trade> fakeStockList = db.getTradeByStock("NONO", 1, start, end);
- assertTrue(fakeStockList.isEmpty());
+ db = new DatabaseQuerier("data/empty.sqlite3");
+ } catch(Exception e){
+ System.out.println("DBQuerier Test, couldn't connect to db???");
+ }
+
+ List<Trade> gmeBadDatesList = new ArrayList<>();
+ List<String> noStocks = new ArrayList<>();
+ List<List<Trade>> noTrades = new ArrayList<>();
+ try {
+ gmeBadDatesList = db.getTradeByStock("GME", 1, start, end);
+ noStocks = db.getRecentStocks(start, end);
+ noTrades = db.getAllTradesByStock(start, end);
+ } catch (Exception e){
+ System.out.println("ERROR: in test");
+ }
+ assertTrue(gmeBadDatesList.isEmpty());
+ assertTrue(noStocks.isEmpty());
+ assertTrue(noTrades.isEmpty());
+ tearDown();
+ }
+
+ @Test
+ public void testEmptyStringStock(){
+ setUp();
+ List<Trade> fakeStockList = new ArrayList<>();
+ try{
+ fakeStockList = db.getTradeByStock("", 1, start, end);
} catch(Exception e) {
System.out.println("Error in test");
}
+ assertTrue(fakeStockList.isEmpty());
tearDown();
}
@Test
- public void testFlippedDates(){
+ public void testNeitherIsBuyOrSell(){
setUp();
+ List<Trade> fakeStockList = new ArrayList<>();
try{
- List<Trade> gmeBadDatesList = db.getTradeByStock("GME", 1, end, start);
- assertTrue(gmeBadDatesList.isEmpty());
+ fakeStockList = db.getTradeByStock("GME", 3, start, end);
+ } catch(Exception e) {
+ System.out.println("Error in test");
+ }
+ assertTrue(fakeStockList.isEmpty());
+ tearDown();
+ }
+ @Test
+ public void testIsSell(){
+ setUp();
+ List<Trade> sellGMEList = new ArrayList<>();
+ try{
+ sellGMEList = db.getTradeByStock("GME", 0, start, end);
} catch(Exception e) {
System.out.println("Error in test");
}
+ assertEquals(7, sellGMEList.size());
+ for(Trade t: sellGMEList){
+ assertFalse(t.isBuy());
+ }
+ tearDown();
+ }
+
+
+ @Test
+ public void testFlippedDates(){
+ setUp();
+ List<Trade> gmeBadDatesList = new ArrayList<>();
+ List<String> noStocks = new ArrayList<>();
+ List<List<Trade>> noTrades = new ArrayList<>();
+ try{
+ gmeBadDatesList = db.getTradeByStock("GME", 1, end, start);
+ noStocks = db.getRecentStocks(end, start);
+ noTrades = db.getAllTradesByStock(end, start);
+ } catch(Exception e) {
+ System.out.println("Error in test");
+ }
+ assertTrue(gmeBadDatesList.isEmpty());
+ assertTrue(noStocks.isEmpty());
+ assertTrue(noTrades.isEmpty());
tearDown();
}
@Test
public void testTradeByStockNameBuy(){
setUp();
+ List<Trade> gmeBuyList = new ArrayList<>();
+ List<Trade> teslaBuyList = new ArrayList<>();
try{
- List<Trade> gmeBuyList = db.getTradeByStock("GME", 1, start, end);
+ gmeBuyList = db.getTradeByStock("GME", 1, start, end);
+ teslaBuyList = db.getTradeByStock("TSLA", 1, start, end);
+ } catch(Exception e) {
+ System.out.println("Error in testTradeByStockName");
+ }
System.out.println(gmeBuyList);
assertEquals(gmeBuyList.size(), 6);
assertEquals(gmeBuyList.get(0).getId(), 482);
@@ -85,16 +156,12 @@ public class DBQuerierTest {
assertEquals(gmeBuyList.get(4).getId(), 275);
assertEquals(gmeBuyList.get(5).getId(), 30);
-
- List<Trade> teslaBuyList = db.getTradeByStock("TSLA", 1, start, end);
assertEquals(teslaBuyList.size(), 16);
assertEquals(teslaBuyList.get(0).getId(), 328);
assertEquals(teslaBuyList.get(7).getId(), 241);
assertEquals(teslaBuyList.get(15).getId(), 774);
- } catch(Exception e) {
- System.out.println("Error in testTradeByStockName");
- }
+
tearDown();
}
@@ -103,20 +170,60 @@ public class DBQuerierTest {
public void testTradeByNameOrdering(){
setUp();
+ List<Trade> gmeSellList = new ArrayList<>();
+ List<Trade> amznBuyList = new ArrayList<>();
try{
- List<Trade> gmeSellList = db.getTradeByStock("GME", 0, start, end);
- for(int i = 1; i < gmeSellList.size(); i++){
- assertTrue(gmeSellList.get(i-1).getTimestamp() < gmeSellList.get(i).getTimestamp());
- }
+ gmeSellList = db.getTradeByStock("GME", 0, start, end);
+ amznBuyList = db.getTradeByStock("AMZN", 1, start, end);
+ } catch(Exception e) {
+ System.out.println("Error in test");
+ }
- List<Trade> amznBuyList = db.getTradeByStock("AMZN", 1, start, end);
- for(int i = 1; i < amznBuyList.size(); i++){
- assertTrue(amznBuyList.get(i-1).getTimestamp() < amznBuyList.get(i).getTimestamp());
- }
+ for(int i = 1; i < gmeSellList.size(); i++){
+ assertTrue(gmeSellList.get(i-1).getTimestamp() < gmeSellList.get(i).getTimestamp());
+ }
- } catch(Exception e) {
+
+ for(int i = 1; i < amznBuyList.size(); i++){
+ assertTrue(amznBuyList.get(i-1).getTimestamp() < amznBuyList.get(i).getTimestamp());
+ }
+ tearDown();
+ }
+
+ @Test
+ public void testGetRecentStocks(){
+ setUp();
+ List<String> stockNames = new ArrayList<>();
+ try {
+ stockNames = db.getRecentStocks(start, end);
+ }catch(Exception e){
System.out.println("Error in test");
}
+ assertEquals(50, stockNames.size());
tearDown();
}
+
+ @Test
+ public void testGetAllTradesByStock(){
+ setUp();
+ List<List<Trade>> trades = new ArrayList<>();
+ try {
+ trades = db.getAllTradesByStock(start, end);
+ }catch(Exception e){
+ System.out.println("Error in test");
+ }
+
+ assertEquals(100, trades.size());
+
+ for(List<Trade> tList: trades){
+ Trade first = tList.get(0);
+ for(Trade t: tList){
+ //all things in each list should be for the same stock and same isBuy type
+ assertEquals(first.isBuy(), t.isBuy());
+ assertEquals(first.getStock(), t.getStock());
+ }
+ }
+ tearDown();
+ }
+
}
diff --git a/src/test/java/edu/brown/cs/student/HubRankTest.java b/src/test/java/edu/brown/cs/student/HubRankTest.java
index 9ba0987..cbe6112 100644
--- a/src/test/java/edu/brown/cs/student/HubRankTest.java
+++ b/src/test/java/edu/brown/cs/student/HubRankTest.java
@@ -7,9 +7,12 @@ import edu.brown.cs.student.term.hub.LinkMapper;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
import java.time.Instant;
import java.util.Map;
+import java.util.Set;
public class HubRankTest {
@@ -30,25 +33,66 @@ public class HubRankTest {
}
}
- /*
- * try{
-
- } catch(Exception e) {
- System.out.println("Error in test");
- }*/
-
@After
public void tearDown() {
db = null;
}
@Test
- public void testMapper(){
+ public void testEmptyDB(){
+ try{
+ db = new DatabaseQuerier("data/empty.sqlite3");
+ } catch(Exception e){
+ System.out.println("DBQuerier Test, couldn't connect to db???");
+ }
+ LinkMapper lm = new LinkMapper(db);
+ HubSearch hub = new HubSearch(lm);
+ Map<Holder, Double> hubRanks = hub.runHubSearch(start, end);
+ assertTrue(hubRanks.isEmpty());
+ tearDown();
+ }
+
+ @Test
+ public void flippedDates(){
+ setUp();
+ LinkMapper lm = new LinkMapper(db);
+ HubSearch hub = new HubSearch(lm);
+ Map<Holder, Double> hubRanks = hub.runHubSearch(end, start);
+ assertTrue(hubRanks.isEmpty());
+ tearDown();
+
+ }
+
+ @Test
+ public void testHubRankSmall(){
setUp();
LinkMapper lm = new LinkMapper(db);
- lm.makeFollowerLinks(start, end);
HubSearch hub = new HubSearch(lm);
- Map<Holder, Double> him = hub.runHubSearch(start, end);
- System.out.println(him);
+ Map<Holder, Double> hubRanks = hub.runHubSearch(start, end);
+ assertEquals(6, hubRanks.size());
+ tearDown();
+ }
+
+ @Test
+ public void testCheckRightValues(){
+ setUp();
+ LinkMapper lm = new LinkMapper(db);
+ HubSearch hub = new HubSearch(lm);
+ Map<Holder, Double> hubRanks = hub.runHubSearch(start, end);
+ Holder don = new Holder(1, "Don");
+ Holder mitch = new Holder(2, "Mitch");
+ Holder nancy = new Holder(3, "Nancy");
+ Holder midge = new Holder(4, "Midge");
+ Holder bob = new Holder(5, "Bob");
+ Holder jane = new Holder(6, "Jane");
+
+ System.out.println(hubRanks);
+ assertTrue(hubRanks.get(mitch) > hubRanks.get(don));
+ assertTrue(hubRanks.get(don) > hubRanks.get(bob));
+ assertTrue(hubRanks.get(bob) > hubRanks.get(nancy));
+ assertTrue(hubRanks.get(nancy)> hubRanks.get(jane));
+ assertTrue(hubRanks.get(nancy) > hubRanks.get(midge));
+
+ tearDown();
}
}
diff --git a/src/test/java/edu/brown/cs/student/LinkMapperTest.java b/src/test/java/edu/brown/cs/student/LinkMapperTest.java
index 2683b90..3d4bedc 100644
--- a/src/test/java/edu/brown/cs/student/LinkMapperTest.java
+++ b/src/test/java/edu/brown/cs/student/LinkMapperTest.java
@@ -10,6 +10,10 @@ import org.junit.Test;
import java.time.Instant;
import java.util.Map;
+import java.util.Set;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
public class LinkMapperTest {
@@ -30,26 +34,57 @@ public class LinkMapperTest {
}
}
- /*
- * try{
-
- } catch(Exception e) {
- System.out.println("Error in test");
- }*/
-
@After
public void tearDown() {
db = null;
}
@Test
- public void testMapper(){
+ public void testBasicMapper(){
+ setUp();
+ LinkMapper lm = new LinkMapper(db);
+ Map<Holder, Set<Holder>> linkMap = lm.makeFollowerLinks(start, end);
+ //should be one for each person in little mock (6)
+ assertEquals(6, linkMap.keySet().size());
+
+ for(Holder h: linkMap.keySet()){
+ //didn't follow anyone elses trades
+ if(h.getName().equals("Don") || h.getName().equals("Jane")){
+ assertTrue(linkMap.get(h).isEmpty());
+ //biggest follower
+ } else if(h.getName().equals("Midge")){
+ assertEquals(4, linkMap.get(h).size());
+ } else if(h.getName().equals("Nancy") || h.getName().equals("Mitch")){
+ assertEquals(2, linkMap.get(h).size());
+ } else {
+ //should be Bob, only followed Mitch
+ assertEquals(1, linkMap.get(h).size());
+ }
+ }
+ tearDown();
+ }
+
+ @Test
+ public void testBadDate(){
setUp();
LinkMapper lm = new LinkMapper(db);
- lm.makeFollowerLinks(start, end);
- HubSearch hub = new HubSearch(lm);
- Map<Holder, Double> him = hub.runHubSearch(start, end);
- System.out.println(him);
+ Map<Holder, Set<Holder>> linkMap = lm.makeFollowerLinks(end, start);
+ assertTrue(linkMap.isEmpty());
+ tearDown();
+ }
+
+ @Test
+ public void testEmptyDB(){
+ try{
+ db = new DatabaseQuerier("data/empty.sqlite3");
+ } catch(Exception e){
+ System.out.println("DBQuerier Test, couldn't connect to db???");
+ }
+ LinkMapper lm = new LinkMapper(db);
+ Map<Holder, Set<Holder>> linkMap = lm.makeFollowerLinks(start, end);
+ //should be one for each person in little mock (6)
+ assertTrue(linkMap.isEmpty());
+
}
}
diff --git a/src/test/java/edu/brown/cs/student/SuspicionRankerTest.java b/src/test/java/edu/brown/cs/student/SuspicionRankerTest.java
new file mode 100644
index 0000000..d641507
--- /dev/null
+++ b/src/test/java/edu/brown/cs/student/SuspicionRankerTest.java
@@ -0,0 +1,52 @@
+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.hub.SuspicionRanker;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.time.Instant;
+import java.util.List;
+import java.util.Map;
+
+public class SuspicionRankerTest {
+
+ //12 am on 3/11 in UTC
+ //private Instant start = Instant.parse("2021-03-11T05:00:00.00Z");
+ private Instant start = Instant.ofEpochMilli(161800418000L);
+ //12 am on 3/28 in UTC
+ //private Instant end = Instant.parse("2021-03-28T05:00:00.00Z");
+ private Instant end = Instant.ofEpochMilli(1618019436000L);
+
+ private DatabaseQuerier db;
+
+ @Before
+ public void setUp() {
+ try{
+ db = new DatabaseQuerier("data/trades.sqlite3");
+ } catch(Exception e){
+ System.out.println("DBQuerier Test, couldn't connect to db???");
+ }
+ }
+
+ @After
+ public void tearDown() {
+ db = null;
+ }
+
+ @Test
+ public void testMapper(){
+ setUp();
+ SuspicionRanker r = new SuspicionRanker(db);
+ List<Holder> him = r.getSuspicionScoreList(start, end);
+ //System.out.println(him);
+ for(Holder guy: him){
+ System.out.println(guy.getName() + " " + guy.getSuspicionScore());
+ }
+ tearDown();
+ }
+}