@Test
public void testEntropy() {
Auc auc = new Auc();
Random gen = RandomUtils.getRandom();
Normal n0 = new Normal(-1, 1, gen);
Normal n1 = new Normal(1, 1, gen);
for (int i=0; i<100000; i++) {
double score = n0.nextDouble();
double p = n1.pdf(score) / (n0.pdf(score) + n1.pdf(score));
auc.add(0, p);
score = n1.nextDouble();
p = n1.pdf(score) / (n0.pdf(score) + n1.pdf(score));
auc.add(1, p);
}
Matrix m = auc.entropy();
assertEquals(-0.35, m.get(0, 0), 0.02);
assertEquals(-2.34, m.get(0, 1), 0.02);