8 Commits

7 changed files with 145 additions and 2 deletions

View File

@@ -4,6 +4,7 @@
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/tests" isTestSource="true" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />

View File

@@ -2,3 +2,8 @@ Sample_code;Station;Latitude;Longitude;Depth;d13C_raw;d13C_corr;d15N;C_N;Standar
TRACTRA_S0575_A0439;S0575;48.8692264;-4.3976635;96.84;-20.09735065;-19.14374028;12.52361179;4.316778148;257;3.117572211;7;1;0;1;9;1;3;4;13
TRACTRA_S0575_A0440;S0575;48.8692264;-4.3976635;96.84;-20.02738845;-19.42703789;12.25444555;3.959950061;252;3.038405671;263;5;0;21;289;12;11;23;312
TRACTRA_S0575_A0441;S0575;48.8692264;-4.3976635;96.84;-19.82735569;-18.83090708;12.97020596;4.360049101;254;3.248923438;51;1;12;1;65;2;3;5;70
TRACTRA_S0575_A0442;S0575;48.8692264;-4.3976635;96.84;-19.37802102;-18.26777864;13.43393806;4.4749923;242;3.385315231;158;6;0;1;165;9;19;28;193
TRACTRA_S0575_A0443;S0575;48.8692264;-4.3976635;96.84;-18.20541518;-18.20541518;12.68793425;3.369189318;254;3.165902347;67;1;10;1;79;1;6;7;86
TRACTRA_S0575_A0444;S0575;48.8692264;-4.3976635;96.84;-20.21559661;-18.91007641;12.62442312;4.672242625;251;3.147222601;140;1;0;0;141;3;6;9;150
TRACTRA_S0575_A0888;S0575;48.8692264;-4.3976635;96.84;-20.21559661;-18.91007641;12.62442312;4.672242625;259;3.147222601;;;;;;;;;
TRACTRA_S0575_A0445;S0575;48.8692264;-4.3976635;96.84;-19.43517323;-19.13886211;11.25439721;3.65283952;258;2.744273805;281;5;0;3;289;1;8;9;298
1 Sample_code Station Latitude Longitude Depth d13C_raw d13C_corr d15N C_N StandardLength TrophicLevel Anisakis_abdominalcavity Anisakis_Liver Anisakis_gonads Anisakis_stomach NParasitesViscera Anisakis_Muscle_Right Anisakis_Muscle_Left Aniskis_Muscle_total NParasitesTotal
2 TRACTRA_S0575_A0439 S0575 48.8692264 -4.3976635 96.84 -20.09735065 -19.14374028 12.52361179 4.316778148 257 3.117572211 7 1 0 1 9 1 3 4 13
3 TRACTRA_S0575_A0440 S0575 48.8692264 -4.3976635 96.84 -20.02738845 -19.42703789 12.25444555 3.959950061 252 3.038405671 263 5 0 21 289 12 11 23 312
4 TRACTRA_S0575_A0441 S0575 48.8692264 -4.3976635 96.84 -19.82735569 -18.83090708 12.97020596 4.360049101 254 3.248923438 51 1 12 1 65 2 3 5 70
5 TRACTRA_S0575_A0442 S0575 48.8692264 -4.3976635 96.84 -19.37802102 -18.26777864 13.43393806 4.4749923 242 3.385315231 158 6 0 1 165 9 19 28 193
6 TRACTRA_S0575_A0443 S0575 48.8692264 -4.3976635 96.84 -18.20541518 -18.20541518 12.68793425 3.369189318 254 3.165902347 67 1 10 1 79 1 6 7 86
7 TRACTRA_S0575_A0444 S0575 48.8692264 -4.3976635 96.84 -20.21559661 -18.91007641 12.62442312 4.672242625 251 3.147222601 140 1 0 0 141 3 6 9 150
8 TRACTRA_S0575_A0888 S0575 48.8692264 -4.3976635 96.84 -20.21559661 -18.91007641 12.62442312 4.672242625 259 3.147222601
9 TRACTRA_S0575_A0445 S0575 48.8692264 -4.3976635 96.84 -19.43517323 -19.13886211 11.25439721 3.65283952 258 2.744273805 281 5 0 3 289 1 8 9 298

View File

@@ -0,0 +1,35 @@
package ecoparasite.completion;
import ecoparasite.poisson.Poisson;
import java.util.HashSet;
public class Completion {
public static HashSet<Poisson> completePoisson(HashSet<Poisson> tablePoisson){
double mean = mean(tablePoisson);
for (Poisson p : tablePoisson) {
if ( p.getInfestation().isNaN() ) {
p.setInfestation(mean);
}
}
return tablePoisson;
}
private static double mean(HashSet<Poisson> tablePoisson){
double mean = 0.0;
for (Poisson p : tablePoisson){
mean += p.getInfestation();
}
return mean / tablePoisson.size();
}
}

View File

@@ -2,11 +2,13 @@ package ecoparasite.input;
import java.io.BufferedReader;
import java.io.IOException;
import java.lang.reflect.Array;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
/**
@@ -93,7 +95,7 @@ public class InputFactory {
// Lecture des autres lignes.
try {
while ((line = reader.readLine()) != null) {
rowFields = line.split(separator);
rowFields = line.split(separator, -1);
for (int i = 0; i < rowFields.length; i++) {
ArrayList<String> element = data.get(i);
element.add(rowFields[i]);

View File

@@ -0,0 +1,63 @@
package ecoparasite.nettoyage;
import ecoparasite.poisson.Poisson;
import java.util.HashSet;
public class Nettoyage {
/**
*
* @param tablePoisson
* @return
*/
public static HashSet<Poisson> nettoiePoisson(HashSet<Poisson> tablePoisson){
double mean = mean(tablePoisson); //Moyenne
double ecart = ecartType(tablePoisson); // Ecart Type
double z = 0;
for (Poisson p : tablePoisson) {
z = ( p.getInfestation() - mean ) / ecart;
if ( z >= 3 ) {
p.setInfestation(mean);
}
}
return tablePoisson;
}
private static double mean(HashSet<Poisson> tablePoisson){
double mean = 0.0;
for (Poisson p : tablePoisson){
mean += p.getInfestation();
}
return mean / tablePoisson.size();
}
private static double variance(HashSet<Poisson> tablePoisson){
double vari = 0.0;
double mean = mean(tablePoisson);
for (Poisson p : tablePoisson) {
vari += Math.pow( (p.getInfestation() - mean), 2);
}
return vari / tablePoisson.size();
}
private static double ecartType(HashSet<Poisson> tablePoisson){
double vari = variance(tablePoisson);
return Math.sqrt(vari);
}
}

View File

@@ -69,6 +69,15 @@ public class Poisson{
return fishParts;
}
/**
* Setter de l'attribut infestation
* @param infestation le Double de la nouvelle valeur de l'infestation
*/
public void setInfestation(Double infestation) {
this.infestation = infestation;
}
/**
* Setter de l'attribut des parties de poisson.
* @param fishParts Un hashset de parties de poisson.

View File

@@ -0,0 +1,28 @@
package ecoparasite.completion;
import ecoparasite.input.InputFactory;
import ecoparasite.input.InputFileException;
import ecoparasite.input.RawData;
import ecoparasite.input.RawDataOverflow;
import ecoparasite.poisson.Mackerel;
import ecoparasite.poisson.Poisson;
import org.junit.jupiter.api.Test;
import java.util.HashSet;
import static org.junit.jupiter.api.Assertions.*;
class CompletionTest {
@org.junit.jupiter.api.Test
void completePoisson() throws InputFileException, RawDataOverflow {
RawData test = InputFactory.readData("test.csv");
HashSet<Poisson> testp = Mackerel.parse(test);
testp = Completion.completePoisson(testp);
System.out.println(testp);
}
}