package won.matcher.solr.utils;
import org.junit.Assert;
import org.junit.Test;
/**
* Created by hfriedrich on 19.07.2016.
*/
public class KneedleTest
{
@Test
public void testExampleFromPaper() {
double[] x = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
double[] y = {0, 4, 4.5, 4.66, 4.75, 4.8, 4.83, 4.86, 4.875, 4.88, 4.9 };
Kneedle kneedle = new Kneedle(1);
int[] knees = kneedle.detectKneePoints(x,y);
Assert.assertArrayEquals(new int[]{2}, knees);
}
@Test
public void testDetectMultipleKnees() {
double[] x = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
double[] y = {0.2, 0.2, 0.4, 0.4, 0.4, 0.5, 0.5, 0.5, 0.8, 0.8};
Kneedle kneedle = new Kneedle(1);
int[] knees = kneedle.detectKneePoints(x, y);
Assert.assertArrayEquals(new int[]{2, 5, 8}, knees);
}
@Test
public void testDetectMultipleElbows() {
double[] x = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
double[] y = {0.1, 0.1, 0.3, 0.3, 0.3, 0.6, 0.6, 0.6, 0.9, 0.9};
Kneedle kneedle = new Kneedle(1);
int[] knees = kneedle.detectElbowPoints(x, y);
Assert.assertArrayEquals(new int[]{1, 4, 7}, knees);
}
}