Commit cd78a121 authored by Manal DERMICH's avatar Manal DERMICH
Browse files

Merge branch 'processingThread' into 'master'

Finished proj

See merge request !20
1 merge request!20Finished proj
Showing with 5543 additions and 271 deletions
+5543 -271
......@@ -4,247 +4,220 @@ Current Case : 2
Current Case : 4
Current Case : 6
Current Case : 3
Current Case : 5
Current Case : 10
Current Case : 12
Current Case : 5
Current Case : 7
Current Case : 9
Current Case : 12
Current Case : 15
Current Case : 9
Current Case : 8
Current Case : 17
Current Case : 18
Current Case : 13
Current Case : 11
Current Case : 18
Current Case : -2
Current Case : 16
Current Case : 14
Current Case : -2
Current Case : 14
Current Case : 19
Current Case : -2
Oldest case : 0
Current Case : 4
Current Case : 1
Current Case : 0
Current Case : 2
Current Case : 5
Current Case : 7
Current Case : 9
Current Case : 6
Current Case : 10
Current Case : 3
Current Case : 13
Current Case : 8
Current Case : 14
Current Case : 19
Current Case : 16
Current Case : 11
Current Case : -2
Current Case : -2
Current Case : -2
Oldest case : 2
Current Case : 0
Current Case : 2
Current Case : 1
Current Case : 4
Current Case : 3
Current Case : 6
Current Case : 12
Current Case : 7
Current Case : 5
Current Case : 10
Current Case : 15
Current Case : 8
Current Case : 5
Current Case : 17
Current Case : 11
Current Case : 9
Current Case : 12
Current Case : 18
Current Case : 16
Current Case : 13
Current Case : -2
Current Case : 15
Current Case : -2
Current Case : 13
Current Case : 14
Current Case : 17
Current Case : 19
Current Case : -2
Current Case : 18
Current Case : -2
Oldest case : 0
Current Case : 4
Current Case : 5
Oldest case : 1
0
Current Case : 0
Current Case : 9
Current Case : 2
Current Case : 13
Current Case : 1
Current Case : 3
Current Case : 14
Current Case : 2
Current Case : 6
Current Case : 10
Current Case : 3
Current Case : 7
Current Case : 19
Current Case : 12
Current Case : 8
Current Case : 10
Current Case : -2
Current Case : 15
Current Case : 11
Current Case : 12
Current Case : 17
Current Case : 16
Current Case : 4
Current Case : -2
Current Case : 15
Current Case : 17
Current Case : 18
Current Case : -2
Oldest case : 1
Current Case : 4
Current Case : 5
Current Case : 1
Current Case : 9
Current Case : 6
Current Case : 13
Current Case : 10
Current Case : 14
Current Case : 19
Current Case : 12
Current Case : -2
Current Case : 15
Current Case : 17
Current Case : 18
Current Case : -2
Oldest case : 2
0
0
Current Case : 1
Current Case : 0
Current Case : 2
Current Case : 3
Current Case : 7
Current Case : 4
Current Case : 5
Current Case : 9
Current Case : 13
Current Case : 14
Current Case : 1
Current Case : 19
Current Case : -2
Oldest case : 3
Current Case : 6
Current Case : 4
Current Case : 10
Current Case : 3
Current Case : 12
Current Case : 5
Current Case : 7
Current Case : 15
Current Case : 9
Current Case : 17
Current Case : 8
Current Case : 13
Current Case : 18
Current Case : -2
Current Case : 11
Current Case : 16
Current Case : -2
Current Case : 4
Current Case : 5
Current Case : 9
Current Case : 13
Current Case : 14
Current Case : 1
Current Case : 0
Current Case : 16
Current Case : -2
Current Case : 19
Current Case : -2
Oldest case : 4
Current Case : 2
Oldest case : 3
0
0
0
Current Case : 1
Current Case : 0
Current Case : 6
Current Case : 3
Current Case : 7
Current Case : 10
Current Case : 8
Current Case : 11
Current Case : 2
Current Case : 3
Current Case : 12
Current Case : 7
Current Case : 4
Current Case : 16
Current Case : 15
Current Case : -2
Current Case : 8
Current Case : 5
Current Case : 17
Current Case : 9
Current Case : 13
Current Case : 11
Current Case : 18
Current Case : 16
Current Case : -2
Current Case : 13
Current Case : -2
Current Case : 14
Current Case : 19
Current Case : -2
Oldest case : 2
Oldest case : 4
0
0
0
4
Current Case : 0
Current Case : 2
Current Case : 3
Current Case : 7
Current Case : 1
Current Case : 4
Current Case : 8
Current Case : 11
Current Case : 6
Current Case : 5
Current Case : 16
Current Case : 2
Current Case : 10
Current Case : 9
Current Case : -2
Current Case : 12
Current Case : 13
Current Case : 3
Current Case : 15
Current Case : 14
Current Case : 19
Current Case : -2
Current Case : 0
Current Case : 2
Current Case : 3
Current Case : 17
Current Case : 7
Current Case : -2
Current Case : 18
Current Case : -2
Current Case : 8
Current Case : 11
Current Case : 1
Current Case : 16
Current Case : -2
Oldest case : 0
Current Case : 6
Current Case : 10
Oldest case : 5
0
0
0
0
4
Current Case : 4
Current Case : 12
Current Case : 1
Current Case : 5
Current Case : 15
Current Case : 6
Current Case : 9
Current Case : 17
Current Case : 13
Current Case : 18
Current Case : -2
Current Case : 14
Current Case : 19
Current Case : -2
Current Case : 10
Current Case : 0
Current Case : 13
Current Case : 2
Current Case : 3
Current Case : 1
Current Case : 7
Current Case : 8
Current Case : 6
Current Case : 10
Current Case : 12
Current Case : 14
Current Case : 3
Current Case : 15
Current Case : 4
Current Case : 19
Current Case : 7
Current Case : -2
Current Case : 17
Current Case : 5
Current Case : 9
Current Case : 13
Current Case : 8
Current Case : 18
Current Case : 14
Current Case : -2
Oldest case : 5
Current Case : 19
Current Case : -2
Current Case : 11
Current Case : 16
Current Case : -2
Oldest case : 6
0
0
0
0
0
4
Current Case : 4
Current Case : 5
Current Case : 1
Current Case : 9
Current Case : 0
Current Case : 6
Current Case : 2
Current Case : 13
Current Case : 10
Current Case : 3
Current Case : 7
Current Case : 2
Current Case : 14
Current Case : 12
Current Case : 8
Current Case : 19
Current Case : 3
Current Case : -2
Current Case : 15
Current Case : 7
Current Case : 17
Current Case : 4
Current Case : 8
Current Case : 18
Current Case : -2
Oldest case : 6
Current Case : 5
Current Case : 9
Current Case : 11
Current Case : 13
Current Case : 16
Current Case : -2
Current Case : 14
Current Case : 19
Current Case : -2
Oldest case : 7
0
0
0
0
0
0
4
Current Case : 4
Current Case : 5
Current Case : 1
......@@ -256,193 +229,404 @@ Current Case : 14
Current Case : 12
Current Case : 19
Current Case : -2
Oldest case : 5
Current Case : 15
Current Case : 17
Current Case : 18
Current Case : -2
Current Case : 4
Current Case : 5
Current Case : 1
Current Case : 9
Current Case : 6
Current Case : 0
Current Case : 2
Current Case : 3
Current Case : 4
Current Case : 7
Current Case : 5
Current Case : 9
Current Case : 13
Current Case : 14
Current Case : 19
Current Case : 1
Current Case : -2
Oldest case : 9
0
0
0
0
0
0
0
4
Current Case : 6
Current Case : 8
Current Case : 11
Current Case : 16
Current Case : -2
Current Case : 10
Current Case : 12
Current Case : 15
Current Case : 4
Current Case : 17
Current Case : 5
Current Case : 18
Current Case : 9
Current Case : -2
Current Case : 13
Current Case : 14
Current Case : 19
Current Case : -2
Oldest case : 8
0
0
0
0
0
0
0
10
10
Current Case : 0
Current Case : 2
Current Case : 3
Current Case : 7
Current Case : 8
Current Case : 11
Current Case : 1
Current Case : 16
Current Case : 6
Current Case : 4
Current Case : -2
Oldest case : 7
Current Case : 10
Current Case : 5
Current Case : 9
Current Case : 12
Current Case : 13
Current Case : 15
Current Case : 17
Current Case : 18
Current Case : -2
Current Case : 1
Current Case : 6
Current Case : 0
Current Case : 10
Current Case : 2
Current Case : 12
Current Case : 3
Current Case : 15
Current Case : 7
Current Case : 17
Current Case : 8
Current Case : 18
Current Case : 11
Current Case : -2
Oldest case : 10
0
0
0
0
0
0
0
0
10
4
Current Case : 14
Current Case : 16
Current Case : -2
Current Case : 19
Current Case : -2
Current Case : 1
Current Case : 6
Current Case : 10
Current Case : 12
Current Case : 15
Current Case : 17
Current Case : 18
Current Case : -2
Oldest case : 12
0
0
0
0
0
0
0
0
0
0
4
Current Case : 0
Current Case : 2
Current Case : 3
Current Case : 7
Current Case : 8
Current Case : 4
Current Case : 11
Current Case : 5
Current Case : 16
Current Case : 9
Current Case : -2
Current Case : 13
Current Case : 14
Current Case : 19
Current Case : -2
Oldest case : 0
Current Case : 1
Current Case : 6
Current Case : 10
Current Case : 12
Current Case : 4
Current Case : 15
Current Case : 5
Current Case : 9
Current Case : 0
Current Case : 2
Current Case : 9
Current Case : 3
Current Case : 10
Current Case : 13
Current Case : 7
Current Case : 12
Current Case : 14
Current Case : 19
Current Case : 8
Current Case : -2
Oldest case : 11
0
0
0
0
0
0
0
0
4
0
10
10
Current Case : 11
Current Case : 13
Current Case : 16
Current Case : 14
Current Case : -2
Current Case : 19
Current Case : -2
Current Case : 15
Current Case : 17
Current Case : 0
Current Case : 18
Current Case : -2
Oldest case : 4
Current Case : 4
Current Case : 5
Current Case : 9
Current Case : 13
Current Case : 14
Current Case : 19
Current Case : -2
Oldest case : 13
0
0
0
0
0
0
0
0
0
0
0
10
4
Current Case : 1
Current Case : 6
Current Case : 10
Current Case : 0
Current Case : 12
Current Case : 2
Current Case : 15
Current Case : 3
Current Case : 17
Current Case : 7
Current Case : 18
Current Case : 8
Current Case : -2
Current Case : 11
Current Case : 16
Current Case : -2
Current Case : 4
Current Case : 1
Current Case : 5
Current Case : 6
Current Case : 4
Current Case : 10
Current Case : 5
Current Case : 12
Current Case : 9
Current Case : 12
Current Case : 13
Current Case : 15
Current Case : 17
Current Case : 14
Current Case : 19
Current Case : -2
Oldest case : 14
0
0
0
0
0
0
0
0
0
0
0
4
4
10
Current Case : 18
Current Case : -2
Current Case : 4
Current Case : 5
Current Case : 9
Current Case : 13
Current Case : 14
Current Case : 19
Current Case : -2
Oldest case : 2
Current Case : 0
Current Case : 1
Current Case : 2
Current Case : 6
Current Case : 10
Current Case : 4
Current Case : 3
Current Case : 12
Current Case : 7
Current Case : 5
Current Case : 8
Current Case : 15
Current Case : 11
Current Case : 17
Current Case : 16
Current Case : 18
Current Case : 9
Current Case : -2
Oldest case : 18
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
Current Case : 16
Current Case : -2
Current Case : 1
Current Case : 6
Current Case : 10
Current Case : 4
Current Case : 12
Current Case : 5
Current Case : 9
Current Case : 13
Current Case : 0
Current Case : 14
Current Case : 19
Current Case : 15
Current Case : -2
Oldest case : 0
Current Case : 17
Current Case : 18
Current Case : -2
Current Case : 0
Current Case : 2
Current Case : 4
Current Case : 1
Current Case : 3
Current Case : 5
Current Case : 6
Current Case : 7
Current Case : 10
Current Case : 9
Current Case : 6
Current Case : 8
Current Case : 12
Current Case : 10
Current Case : 4
Current Case : 11
Current Case : 13
Current Case : 12
Current Case : 5
Current Case : 15
Current Case : 9
Current Case : 16
Current Case : 14
Current Case : 17
Current Case : 19
Current Case : -2
Current Case : -2
Oldest case : 8
Oldest case : 15
0
0
0
0
0
0
0
0
0
0
0
4
0
4
10
10
Current Case : 13
Current Case : 18
Current Case : 14
Current Case : -2
Current Case : 19
Current Case : -2
Current Case : 0
Current Case : 2
Current Case : 3
Current Case : 7
Current Case : 1
Current Case : 8
Current Case : 11
Current Case : 3
Current Case : 4
Current Case : 6
Current Case : 16
Current Case : -2
Current Case : 7
Current Case : 10
Current Case : 12
Current Case : 4
Current Case : 5
Current Case : 15
Current Case : 8
Current Case : 12
Current Case : 9
Current Case : 11
Current Case : 15
Current Case : 17
Current Case : 16
Current Case : 13
Current Case : 18
Current Case : -2
Oldest case : 9
Oldest case : 16
0
0
0
0
0
0
0
0
0
0
0
0
0
4
4
10
10
Current Case : 18
Current Case : 14
Current Case : -2
Current Case : 19
Current Case : -2
Current Case : 0
Current Case : 2
Current Case : 3
Current Case : 4
Current Case : 1
Current Case : 7
Current Case : 3
Current Case : 5
Current Case : 6
Current Case : 7
Current Case : 9
Current Case : 10
Current Case : 8
Current Case : 4
Current Case : 13
Current Case : 12
Current Case : 11
Current Case : 5
Current Case : 10
Current Case : 14
Current Case : 15
Current Case : 16
Current Case : 9
Current Case : 12
Current Case : 19
Current Case : -2
Oldest case : 19
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
10
4
4
Current Case : -2
Current Case : -3
......@@ -66,6 +66,7 @@ public class Main {
File csvFile = new File(fileName);
Csv csv = new Csv(csvFile);
CsvParser csvParser = new CsvParser(csv);
Reading readingThread = new Reading(csvParser, casesQueue, POISON_PILL, BIG_POISON_PILL);
service.execute(readingThread);
}
......
package fr.tse.coronavirushppproject.threads;
import java.io.FileNotFoundException;
import java.io.PrintStream;
import java.util.LinkedList;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.logging.Logger;
import fr.tse.coronavirushppproject.models.Case;
import fr.tse.coronavirushppproject.models.Chain;
......@@ -36,12 +33,12 @@ public class Processing implements Runnable {
public Processing(BlockingQueue<Case> inPutQueue, Case poisonPill, Case bigPoisonPill, BlockingQueue<LinkedList<Chain>> outPutQueue, LinkedList<Chain> listOfChains, LinkedList<Chain> poisonPillWriting) {
this.inPutQueue = inPutQueue;
this.poisonPill = poisonPill;
this.bigPoisonPill = bigPoisonPill;
this.outPutQueue = outPutQueue;
this.listOfChains = listOfChains;
threeBestChains = new LinkedList<Chain>();
this.poisonPillWriting = poisonPillWriting;
this.poisonPill = poisonPill;
}
public void run() {
......@@ -59,11 +56,6 @@ public class Processing implements Runnable {
}
if(currentCase.getIdCase() != poisonPill.getIdCase()) {
if(oldestCase == null) {
synchronized(this) {
oldestCase = currentCase;
}
}
// If we reach a case that has already been treated before, we skip it
for(Chain chain : listOfChains) {
......@@ -81,8 +73,13 @@ public class Processing implements Runnable {
}
// If we found the current case in older treated cases, we skip it
if(!skipFlag) {
if(oldestCase == null) {
synchronized(this) {
oldestCase = currentCase;
}
}
if(Algorithm.getSecondsDifference(oldestCase.getDiagnosisDate(), currentCase.getDiagnosisDate()) > 0) {
//inPutQueue.put(oldestCase);
synchronized(this) {
oldestCase = currentCase;
}
......@@ -106,8 +103,10 @@ public class Processing implements Runnable {
}
int i = 0;
while(listOfChains.size() - i != 0 /*&& threeBestChains.size() < 3*/) {
threeBestChains.add(listOfChains.get(listOfChains.size() - 1 - i));
while(listOfChains.size() - i != 0 && threeBestChains.size() < 3) {
if(listOfChains.get(listOfChains.size() - 1 - i).getRootPersonId() != -1) {
threeBestChains.add(listOfChains.get(listOfChains.size() - 1 - i));
}
i++;
}
/*for(Chain chain : listOfChains) {
......
......@@ -47,8 +47,8 @@ public class Reading implements Runnable {
e1.printStackTrace();
}
//System.out.println("Done");
for(int k = 0; k < 20; k++) {
//System.out.println("start reading file " + csvParser.getCsv().getFileName());
for(int k = 0; k < 21; k++) {
//System.out.println(k + " !!! Start reading file " + csvParser.getCsv().getFileName());
//String line;
try {
csvParser.readCsv();
......@@ -63,7 +63,6 @@ public class Reading implements Runnable {
e.printStackTrace();
}
}
//System.out.println("Finished!!!! " + line);
//System.out.println("insert pill of " + csvParser.getCsv().getFileName());
// When we read the file one time, we insert the poison pill in the queue, to inform the processing thread that the file has been read
casesQueue.put(poisonPill);
......@@ -71,7 +70,6 @@ public class Reading implements Runnable {
} catch (IOException e1) {
e1.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (FileNotFoundException e1) {
......
......@@ -63,7 +63,8 @@ public class Algorithm {
LinkedList<Case> chainHistory = chain.getChainHistory();
for(int i = 0; i < chainHistory.size(); i++) {
int caseScore = calculateScore(currentCase.getDiagnosisDate(), chainHistory.get(i).getDiagnosisDate());
chain.getChainHistory().get(i).setScore(chainScore);
System.out.println(caseScore);
chain.getChainHistory().get(i).setScore(caseScore);
chainScore += caseScore;
if(caseScore == 0) {
unlinkCaseFromChain(chain, i);
......@@ -93,10 +94,12 @@ public class Algorithm {
LinkedList<Case> chainHistory;
for(int i = 0; i < listOfChains.size(); i++) {
chainHistory = listOfChains.get(i).getChainHistory();
for(int k = 0; i < chainHistory.size(); i++) {
for(int k = 0; k < chainHistory.size(); k++) {
// Check if the current case's contaminator ID is equal to the case in chainHistory
if(chainHistory.get(i).getIdCase() == currentCase.getIdContaminator() && chainHistory.get(i).getScore() != 0) {
if(chainHistory.get(k).getIdCase() == currentCase.getIdContaminator() && chainHistory.get(k).getScore() != 0) {
System.out.println("entered");
listOfChains.get(i).getChainHistory().add(currentCase);
listOfChains.get(i).setChainScore(listOfChains.get(i).getChainScore() + 10);
return true;
}
}
......
......@@ -21,7 +21,6 @@ public class CsvParser {
public synchronized Case parseLine(String string) {
String[] lineElements = string.split(", ");
int idCase = Integer.parseInt(lineElements[0]);
double diagnosedTs = Double.parseDouble(lineElements[4]);
// If contaminator is unknown, we enter -1 as its id
......
Spain,0,10;
Spain,2,10; Spain,-1,0;
Spain,0,10; Spain,2,10; Spain,-1,10;
Italy,1,10; Spain,-1,0; Spain,2,10; Spain,-1,0;
Spain,3,10; Italy,-1,0; Spain,-1,0; Spain,-1,0; Spain,-1,0;
France,4,10; Spain,3,4; Italy,-1,0; Spain,-1,0; Spain,-1,0; Spain,-1,0;
Spain,2,10; France,4,10; Spain,3,10; Italy,-1,0; Spain,-1,0; Spain,-1,10; Spain,-1,0;
Spain,0,10; Spain,2,10; France,4,10; Spain,3,10; Italy,-1,10; Spain,-1,10; Spain,-1,10; Spain,-1,10;
France,5,10; Spain,-1,0; Spain,-1,0; France,4,4; Spain,-1,0; Italy,-1,0; Spain,-1,0; Spain,-1,0; Spain,-1,0;
Italy,6,10; France,5,10; Spain,-1,0; Spain,-1,0; France,-1,4; Spain,-1,0; Italy,-1,0; Spain,-1,0; Spain,-1,0; Spain,-1,0;
France,-1,0; Italy,6,4; France,-1,0; Spain,-1,0; Spain,-1,0; France,-1,0; Spain,-1,0; Italy,-1,0; Spain,-1,0; Spain,-1,0; Spain,-1,0;
Spain,7,10; France,-1,10; Italy,6,10; France,-1,10; Spain,-1,10; Spain,-1,10; France,-1,10; Spain,-1,10; Italy,-1,10; Spain,-1,10; Spain,-1,10; Spain,-1,10;
Spain,-1,0; Spain,7,10; France,-1,10; Italy,6,10; France,-1,10; Spain,-1,0; Spain,-1,10; France,-1,10; Spain,-1,10; Italy,-1,0; Spain,-1,0; Spain,-1,10; Spain,-1,0;
France,4,10; Spain,-1,10; Spain,7,10; France,-1,10; Italy,6,10; France,-1,10; Spain,-1,10; Spain,-1,10; France,-1,10; Spain,-1,10; Italy,-1,10; Spain,-1,10; Spain,-1,10; Spain,-1,10;
Spain,-1,0; France,-1,0; Spain,-1,0; Spain,7,4; France,-1,0; Italy,-1,0; France,-1,0; Spain,-1,0; Spain,-1,0; France,-1,0; Spain,-1,0; Italy,-1,0; Spain,-1,0; Spain,-1,0; Spain,-1,0;
Spain,-1,0; Spain,-1,0; France,-1,0; Spain,-1,0; Spain,7,4; France,-1,0; Italy,-1,0; France,-1,0; Spain,-1,0; Spain,-1,0; France,-1,0; Spain,-1,0; Italy,-1,0; Spain,-1,0; Spain,-1,0; Spain,-1,0;
Spain,8,10; Spain,-1,0; Spain,-1,0; France,-1,0; Spain,-1,0; Spain,7,4; France,-1,0; Italy,-1,0; France,-1,0; Spain,-1,0; Spain,-1,0; France,-1,0; Spain,-1,0; Italy,-1,0; Spain,-1,0; Spain,-1,0; Spain,-1,0;
France,9,10; Spain,8,10; Spain,-1,0; Spain,-1,0; France,-1,0; Spain,-1,0; Spain,7,4; France,-1,0; Italy,-1,0; France,-1,0; Spain,-1,0; Spain,-1,0; France,-1,0; Spain,-1,0; Italy,-1,0; Spain,-1,0; Spain,-1,0; Spain,-1,0;
Italy,1,10;
Spain,2,10;
Spain,3,10;
France,4,10; Spain,3,4;
France,5,10; France,4,4;
Italy,6,10; France,5,4;
Spain,7,10; Italy,6,4;
France,9,10; Spain,7,4;
Spain,8,10; France,9,10; Spain,7,10;
Italy,10,10; Spain,8,4; France,9,10;
Italy,12,10; Italy,10,4;
Spain,11,10; Italy,12,10; Italy,10,10;
France,13,10; Spain,11,4; Italy,12,10;
France,14,10; France,13,10; Spain,11,4;
Italy,18,10; France,14,4;
Italy,15,10; Italy,18,10; France,14,10;
Spain,16,10; Italy,15,10; Italy,18,10;
France,19,10; Spain,16,4; Italy,15,4;
Spain,0,10;
Italy,1,10;
Spain,2,10;
Spain,3,10;
France,4,10; Spain,3,4;
France,5,10; France,4,4;
Spain,7,10;
Italy,6,10; Spain,7,10;
Spain,8,10; Spain,7,10;
France,9,10; Spain,8,10; Spain,7,4;
Italy,10,10; France,9,10; Spain,8,4;
Italy,12,10; Italy,10,4;
Spain,11,10; Italy,12,10; Italy,10,10;
France,13,10; Spain,11,4; Italy,12,10;
France,14,10; France,13,10; Spain,11,4;
Italy,15,10; France,14,4; France,13,4;
Spain,16,10; Italy,15,10; France,14,4;
Italy,17,10; Spain,16,10; Italy,15,4;
Italy,18,10; Italy,17,10; Spain,16,10;
This source diff could not be displayed because it is too large. You can view the blob instead.
France,1,10;
France,1,20;
France,1,30;
France,1,40;
France,1,50;
France,1,60;
France,1,10;
France,2,10; France,1,10;
Italy,3,10; France,2,10; France,1,10;
Italy,4,10; Italy,3,10; France,2,10;
Italy,5,10; Italy,4,10; Italy,3,10;
Spain,6,10; Italy,5,10; Italy,4,10;
1, "Daniel", "ROBINSON", 1995-08-21 00:00:00, 1584540000, unknown, "course à pieds avec la grand-mère au marché"
2, "Jessica", "WATSON", 1968-11-21 00:00:00, 1584626400, 1, "courses avec ma fille au super maché"
\ No newline at end of file
3, "Gary", "ADAMS", 2008-06-04 00:00:00, 1584712800, 2, "escalade avec mon fils au marché"
4, "Dennis", "YOUNG", 1989-05-21 00:00:00, 1584799200, 3, "travail avec le grand-père en ville"
5, "Samuel", "PEREZ", 1977-07-13 00:00:00, 1584885600, 4, "apéro avec le père au super maché"
\ No newline at end of file
6, "Angela", "HARRIS", 1986-08-19 00:00:00, 1584972000, 4, "promenade"
\ No newline at end of file
1, "Daniel", "ROBINSON", 1995-08-21 00:00:00, 1584540000, unknown, "course à pieds avec la grand-mère au marché"
2, "Jessica", "WATSON", 1968-11-21 00:00:00, 1584626400, unknown, "courses avec ma fille au super maché"
\ No newline at end of file
3, "Gary", "ADAMS", 2008-06-04 00:00:00, 1584712800, unknown, "escalade avec mon fils au marché"
4, "Dennis", "YOUNG", 1989-05-21 00:00:00, 1584799200, unknown, "travail avec le grand-père en ville"
5, "Samuel", "PEREZ", 1977-07-13 00:00:00, 1584885600, unknown, "apéro avec le père au super maché"
\ No newline at end of file
6, "Angela", "HARRIS", 1986-08-19 00:00:00, 1584972000, unknown, "promenade"
7, "Manal", "DERMICH", 1986-08-19 00:00:00, 1584972456, unknown, "promenade avec youssra"
\ No newline at end of file
......@@ -4,16 +4,84 @@ import static org.junit.Assert.assertEquals;
import org.junit.Test;
import fr.tse.coronavirushppproject.utils.Algorithm;
public class TestCase {
@Test
public void testTimeConvertion() {
int idCase = 1;
long diagnosisDate = 1584540000;
int idContaminator = 4;
public void testCase() {
int idCase = 4;
double diagnosisDate = 1584540000.5235808;
int idContaminator = -1;
String country = "France";
Case case_ = new Case(idCase, diagnosisDate, idContaminator, country);
Case unknownContaminator = new Case(idCase, diagnosisDate, idContaminator, country,10);
int idCase2 = 1;
double diagnosisDate2 = 1584712800.5235808;
int idContaminator2 = 4;
String country2= "Italy";
Case knownContaminator = new Case(idCase2, diagnosisDate2, idContaminator2, country2,10);
assertEquals(4,unknownContaminator.getIdCase());
assertEquals(1584540000.5235808,unknownContaminator.getDiagnosisDate(),0.0);
assertEquals("France",unknownContaminator.getCountry());
assertEquals(-1,unknownContaminator.getIdContaminator());
//assertEquals("03/18/2020 2:00 PM",case_.convertToUTC());
}
@Test
public void testCheckIfLinked() {
int idCase = 4;
double diagnosisDate = 1584540000.5235808;
int idContaminator = -1;
String country = "France";
Case unknownContaminator = new Case(idCase, diagnosisDate, idContaminator, country,10);
int idCase2 = 1;
double diagnosisDate2 = 1584712800.5235808;
int idContaminator2 = 4;
String country2= "Italy";
Case knownContaminator = new Case(idCase2, diagnosisDate2, idContaminator2, country2,10);
assertEquals(false,Algorithm.checkIfLinked(unknownContaminator));
assertEquals(true,Algorithm.checkIfLinked(knownContaminator));
}
@Test
public void testCheckCalculateScore() {
int idCase = 4;
double diagnosisDate = 1584540000.5235808;
int idContaminator = -1;
String country = "France";
Case unknownContaminator = new Case(idCase, diagnosisDate, idContaminator, country,10);
int idCase2 = 1;
double diagnosisDate2 = 1584712800.5235808;
int idContaminator2 = 4;
String country2= "Italy";
Case knownContaminator = new Case(idCase2, diagnosisDate2, idContaminator2, country2,10);
assertEquals(10,Algorithm.calculateScore(diagnosisDate, diagnosisDate2));
}
}
}
\ No newline at end of file
......@@ -17,17 +17,6 @@ public class TestWriting {
Chain testChain = new Chain(countryOrigin, rootPersonId, chainScore);
assertEquals("Spain,2,14; ", Writing.constructLine(testChain));
}
@Test
public void testWriteIntoFile() {
ArrayList<String> output = new ArrayList<String>();
String file = "src/test/output.txt";
// adding testing lines
output.add("Italy,5,20; ");
output.add("Spain,2,14; ");
output.add("Spain,3,8; ");
Writing.writeIntoFile(output, file);
}
}
package fr.tse.coronavirushppproject.utils;
import static org.junit.Assert.assertEquals;
import java.util.LinkedList;
import org.junit.Test;
......@@ -13,7 +15,7 @@ public class TestAlgorithm {
public void testUpdatelistOfChains() {
// Test with an empty listOfChains
LinkedList<Chain> listOfChains = new LinkedList<Chain>();
Case currentCase = new Case(5, 1582161158.52358, -1, "France");
Case currentCase = new Case(5, 1582161158.52358, -1, "France", 10);
Algorithm.updateListOfChains(listOfChains, currentCase);
for(Chain chain : listOfChains) {
System.out.println("Chain : " + chain.getCountryOrigin() + ", " + chain.getRootPersonId() + ", " + chain.getChainScore());
......@@ -21,17 +23,21 @@ public class TestAlgorithm {
for(Case case_ : chain.getChainHistory())
System.out.println(case_.getIdCase());
}
assertEquals(5, listOfChains.get(0).getRootPersonId());
assertEquals(10, listOfChains.get(0).getChainScore());
assertEquals("France", listOfChains.get(0).getCountryOrigin());
System.out.println("Test 2");
// Test with a listOfChains that already has one chain
Case case1 = new Case(1, 1584540000, -1, "France");
Case case2 = new Case(3, 1584558000, 1, "Italy");
Case case1 = new Case(1, 1584540000, -1, "France", 10);
Case case2 = new Case(3, 1584540001, 1, "Italy", 10);
Chain newChain = new Chain("France", 1, 20);
newChain.setChainHistory(new LinkedList<Case>());
newChain.getChainHistory().add(case1);
newChain.getChainHistory().add(case2);
listOfChains = new LinkedList<Chain>();
listOfChains.add(newChain);
Case newCase = new Case(4, 1585162805, 3, "France");
Case newCase = new Case(4, 1584540002, 3, "France", 10);
Algorithm.updateListOfChains(listOfChains, newCase);
for(Chain chain : listOfChains) {
System.out.println("Chain : " + chain.getCountryOrigin() + ", " + chain.getRootPersonId() + ", " + chain.getChainScore());
......@@ -39,25 +45,26 @@ public class TestAlgorithm {
for(Case case_ : chain.getChainHistory())
System.out.println(case_.getIdCase());
}
assertEquals(30, listOfChains.get(0).getChainScore());
// Test with a listOfChains that has 2 chains
System.out.println("Test 3");
Case case3 = new Case(1, 1584540000, -1, "France");
Case case4 = new Case(3, 1584558000, 1, "Italy");
Case case3 = new Case(1, 1584540000, -1, "France", 10);
Case case4 = new Case(3, 1584540001, 1, "Italy", 10);
Chain newChain2 = new Chain("France", 1, 20);
newChain2.setChainHistory(new LinkedList<Case>());
newChain2.getChainHistory().add(case3);
newChain2.getChainHistory().add(case4);
listOfChains = new LinkedList<Chain>();
listOfChains.add(newChain2);
case3 = new Case(2, 1584540000, -1, "France");
case4 = new Case(5, 1584558000, 2, "Italy");
case3 = new Case(2, 1584540002, -1, "France", 10);
case4 = new Case(5, 1584558003, 2, "Italy", 10);
newChain2 = new Chain("France", 2, 20);
newChain2.setChainHistory(new LinkedList<Case>());
newChain2.getChainHistory().add(case3);
newChain2.getChainHistory().add(case4);
listOfChains.add(newChain2);
newCase = new Case(4, 1585162805, 5, "France");
newCase = new Case(4, 1584558004, 5, "France", 10);
Algorithm.updateListOfChains(listOfChains, newCase);
for(Chain chain : listOfChains) {
System.out.println("Chain : " + chain.getCountryOrigin() + ", " + chain.getRootPersonId() + ", " + chain.getChainScore());
......@@ -65,6 +72,9 @@ public class TestAlgorithm {
for(Case case_ : chain.getChainHistory())
System.out.println(case_.getIdCase());
}
assertEquals(20, listOfChains.get(0).getChainScore());
assertEquals(30, listOfChains.get(1).getChainScore());
}
}
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment