Finish phase 2
This commit is contained in:
parent
46c0a78447
commit
5a080e088c
@ -1,6 +1,8 @@
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Scanner;
|
import java.util.Scanner;
|
||||||
import java.io.FileInputStream;
|
import java.io.FileInputStream;
|
||||||
|
import java.util.Collections;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public class CovidDatabase {
|
public class CovidDatabase {
|
||||||
@ -12,6 +14,21 @@ public class CovidDatabase {
|
|||||||
list = new ArrayList<CovidEntry>();
|
list = new ArrayList<CovidEntry>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ArrayList <CovidEntry> topTenDeaths(int m, int d){
|
||||||
|
ArrayList<CovidEntry> result = new ArrayList<CovidEntry>();
|
||||||
|
ArrayList<CovidEntry> temp = getDailyDeaths(m, d);
|
||||||
|
|
||||||
|
Collections.sort(temp);
|
||||||
|
if (temp.size() ==0){
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < 10; i++){
|
||||||
|
result.add(temp.get(i));
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
public ArrayList <CovidEntry> safeToOpen(String st){
|
public ArrayList <CovidEntry> safeToOpen(String st){
|
||||||
ArrayList<CovidEntry> result = null;
|
ArrayList<CovidEntry> result = null;
|
||||||
ArrayList<CovidEntry> temp = new ArrayList<CovidEntry>();
|
ArrayList<CovidEntry> temp = new ArrayList<CovidEntry>();
|
||||||
@ -20,17 +37,22 @@ public class CovidDatabase {
|
|||||||
|
|
||||||
for (CovidEntry c: list){
|
for (CovidEntry c: list){
|
||||||
if (c.getState().equalsIgnoreCase(st)) {
|
if (c.getState().equalsIgnoreCase(st)) {
|
||||||
if (previousDailyInfections != -1 && c.getDailyInfections() < previousDailyInfections) {
|
if (previousDailyInfections == -1) {
|
||||||
|
previousDailyInfections = c.getDailyInfections();
|
||||||
|
match += 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
else if (c.getDailyInfections() < previousDailyInfections) {
|
||||||
match += 1;
|
match += 1;
|
||||||
temp.add(c);
|
|
||||||
} else {
|
} else {
|
||||||
match = 0;
|
match = 1;
|
||||||
temp.clear();
|
temp.clear();
|
||||||
}
|
}
|
||||||
|
temp.add(c);
|
||||||
|
|
||||||
previousDailyInfections = c.getDailyInfections();
|
previousDailyInfections = c.getDailyInfections();
|
||||||
}
|
}
|
||||||
if (match == 5) {
|
if (match == SAFE) {
|
||||||
result = temp;
|
result = temp;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -46,7 +68,7 @@ public class CovidDatabase {
|
|||||||
ArrayList<CovidEntry> result = new ArrayList<CovidEntry>();
|
ArrayList<CovidEntry> result = new ArrayList<CovidEntry>();
|
||||||
|
|
||||||
for (CovidEntry c: list){
|
for (CovidEntry c: list){
|
||||||
if (c.getMonth() == m && c.getDay() == d && c.getDailyInfections() <= min){
|
if (c.getMonth() == m && c.getDay() == d && c.getDailyInfections() >= min){
|
||||||
result.add(c);
|
result.add(c);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -136,9 +158,11 @@ public class CovidDatabase {
|
|||||||
int max = 0;
|
int max = 0;
|
||||||
|
|
||||||
for(CovidEntry c : list){
|
for(CovidEntry c : list){
|
||||||
if( c.getDailyDeaths() > max){
|
if (c.getMonth() == m && c.getDay() == d) {
|
||||||
max = c.getDailyDeaths();
|
if (c.getDailyDeaths() > max) {
|
||||||
result = c;
|
max = c.getDailyDeaths();
|
||||||
|
result = c;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
|
41
java/final-project/CovidDatabaseTest.java
Normal file
41
java/final-project/CovidDatabaseTest.java
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
public class CovidDatabaseTest {
|
||||||
|
public static void main (String[] args) {
|
||||||
|
System.out.println ("Testing starts");
|
||||||
|
CovidDatabase db = new CovidDatabase() ;
|
||||||
|
db.readCovidData("covid_data.csv");
|
||||||
|
// check number of records, total infections, and total deaths
|
||||||
|
assert db.countRecords() == 10346 : "database should have 10,346";
|
||||||
|
|
||||||
|
assert db.getTotalDeaths() == 196696 : "Total deaths should be: 196,696";
|
||||||
|
assert db.getTotalInfections() == 7032090 : "infections should be: 7,032,090";
|
||||||
|
// check peak daily deaths for 5/5
|
||||||
|
CovidEntry mostDeaths = db.peakDailyDeaths(5, 5);
|
||||||
|
assert mostDeaths.getState().equals("PA") : "State with most deaths for 5/5 is PA";
|
||||||
|
assert mostDeaths.getDailyDeaths() == 554 : "Deaths for 5/5 is PA: 554";
|
||||||
|
// test other methods
|
||||||
|
|
||||||
|
// Check highest deaths
|
||||||
|
CovidEntry highestTX = db.peakDailyDeaths("TX");
|
||||||
|
assert highestTX.getDailyDeaths() == 675 : "Highest texas deaths is: 675";
|
||||||
|
|
||||||
|
// Most total deaths
|
||||||
|
assert db.mostTotalDeaths().getTotalDeaths() == 25456 : "Highest deaths is 25456";
|
||||||
|
assert db.mostTotalDeaths().getState().equals("NY") : "Highest deaths state: NY";
|
||||||
|
|
||||||
|
// Peak daily deaths
|
||||||
|
assert db.peakDailyDeaths("MI").getDailyDeaths() == 169 : "Highest MI Deaths: 169";
|
||||||
|
assert db.peakDailyDeaths(5, 5).getDailyDeaths() == 554 : "Highest 5/5 deaths: PA";
|
||||||
|
|
||||||
|
// Top ten deaths
|
||||||
|
assert db.topTenDeaths(5, 5).size() == 10 : "Top ten deaths should be 10";
|
||||||
|
assert db.topTenDeaths(5, 5).get(0).getState().equals("PA") : "First Top ten deaths should be PA";
|
||||||
|
|
||||||
|
// Safe to open
|
||||||
|
assert db.safeToOpen("MI").get(0).getDailyInfections() == 443 : "First entry should have 443 infections";
|
||||||
|
|
||||||
|
//list min daily infections
|
||||||
|
assert db.listMinimumDailyInfections(6,12,1000).get(0).getState().equals("TX") : "First entry should be TX";
|
||||||
|
|
||||||
|
System.out.println ("Testing ends");
|
||||||
|
}
|
||||||
|
}
|
@ -1,6 +1,6 @@
|
|||||||
import java.text.DecimalFormat;
|
import java.text.DecimalFormat;
|
||||||
|
|
||||||
public class CovidEntry {
|
public class CovidEntry implements Comparable {
|
||||||
|
|
||||||
//Private vars
|
//Private vars
|
||||||
private String state;
|
private String state;
|
||||||
@ -43,4 +43,9 @@ public class CovidEntry {
|
|||||||
df.format(dailyDeaths) + " deaths";
|
df.format(dailyDeaths) + " deaths";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int compareTo(Object other){
|
||||||
|
CovidEntry c = (CovidEntry) other;
|
||||||
|
return c.dailyDeaths - dailyDeaths;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
//time 11:10 - 11:22
|
//time 11:10 - 11:22
|
||||||
//time 12:00
|
//time 12:00 - 16:10
|
||||||
//time1 - 10:10 10:30
|
//time1 - 10:10 10:30
|
||||||
|
|
||||||
public class CovidManager {
|
public class CovidManager {
|
||||||
@ -42,9 +42,15 @@ public class CovidManager {
|
|||||||
System.out.println(c);
|
System.out.println(c);
|
||||||
}
|
}
|
||||||
|
|
||||||
System.out.println("MI safe to open: ");
|
System.out.println("WA safe to open: ");
|
||||||
ArrayList<CovidEntry> MISafe = db.safeToOpen("MI");
|
ArrayList<CovidEntry> WASafe = db.safeToOpen("WA");
|
||||||
for (CovidEntry c: MISafe){
|
for (CovidEntry c: WASafe){
|
||||||
|
System.out.println(c);
|
||||||
|
}
|
||||||
|
|
||||||
|
System.out.println("Top 10 deaths for May 1st");
|
||||||
|
ArrayList<CovidEntry> topTenDeaths = db.topTenDeaths(5, 1);
|
||||||
|
for (CovidEntry c: topTenDeaths){
|
||||||
System.out.println(c);
|
System.out.println(c);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user