package uk.ac.ox.zoo.seeg.abraid.mp.common.dto.csv;
import org.junit.Test;
import java.io.IOException;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
/**
* Tests for CSVSubmodelStatistic.
* Copyright (c) 2014 University of Oxford
*/
public class CsvSubmodelStatisticTest {
@Test
public void readFromCSVReturnsCorrectResult() throws IOException {
// Arrange
String csv =
"\"auc\",\"sens\",\"spec\",\"pcc\",\"kappa\",\"auc_sd\",\"sens_sd\",\"spec_sd\",\"pcc_sd\",\"kappa_sd\"\n" +
"0.848373229949656,0.696775452743195,0.881028028124802,0.788901740433999,0.577803480867997,0.0512267573798518,0.0861498610345838,0.0550388589050863,0.0563446472001997,0.106883260098322\n" +
"0.849398396409793,0.686029409133839,0.904489122498894,0.795259265816366,0.590518531632732,0.0422574560639849,0.070683263020509,0.0374679071356592,0.0445211037495852,0.0845893167437474";
// Act
List<CsvSubmodelStatistic> result = CsvSubmodelStatistic.readFromCSV(csv);
// Assert
assertThat(result).hasSize(2);
assertThat(result.get(0).getAreaUnderCurve()).isEqualTo(0.848373229949656);
assertThat(result.get(0).getSensitivity()).isEqualTo(0.696775452743195);
assertThat(result.get(0).getSpecificity()).isEqualTo(0.881028028124802);
assertThat(result.get(0).getProportionCorrectlyClassified()).isEqualTo(0.788901740433999);
assertThat(result.get(0).getKappa()).isEqualTo(0.577803480867997);
assertThat(result.get(0).getAreaUnderCurveStandardDeviation()).isEqualTo(0.0512267573798518);
assertThat(result.get(0).getSensitivityStandardDeviation()).isEqualTo(0.0861498610345838);
assertThat(result.get(0).getSpecificityStandardDeviation()).isEqualTo(0.0550388589050863);
assertThat(result.get(0).getProportionCorrectlyClassifiedStandardDeviation()).isEqualTo(0.0563446472001997);
assertThat(result.get(0).getKappaStandardDeviation()).isEqualTo(0.106883260098322);
}
@Test
public void readFromCSVReturnsCorrectResultWhenTextContainsEmptyEntries() throws IOException {
// Arrange
String csv =
"\"auc\",\"sens\",\"spec\",\"pcc\",\"kappa\",\"auc_sd\",\"sens_sd\",\"spec_sd\",\"pcc_sd\",\"kappa_sd\"\n" +
",,,,,,,,,\n" +
"0.849398396409793,0.686029409133839,0.904489122498894,0.795259265816366,0.590518531632732,0.0422574560639849,0.070683263020509,0.0374679071356592,0.0445211037495852,0.0845893167437474";
// Act
List<CsvSubmodelStatistic> result = CsvSubmodelStatistic.readFromCSV(csv);
// Assert
assertThat(result).hasSize(2);
assertThat(result.get(0).getKappa()).isNull();
assertThat(result.get(0).getAreaUnderCurve()).isNull();
assertThat(result.get(0).getSensitivity()).isNull();
assertThat(result.get(0).getSpecificity()).isNull();
assertThat(result.get(0).getProportionCorrectlyClassified()).isNull();
assertThat(result.get(0).getKappaStandardDeviation()).isNull();
assertThat(result.get(0).getAreaUnderCurveStandardDeviation()).isNull();
assertThat(result.get(0).getSensitivityStandardDeviation()).isNull();
assertThat(result.get(0).getSpecificityStandardDeviation()).isNull();
assertThat(result.get(0).getProportionCorrectlyClassifiedStandardDeviation()).isNull();
}
}