package murex.pop.dojo.listoflistsmedian;
import java.util.List;
import org.fest.assertions.api.Assertions;
import org.junit.Assert;
import org.junit.Test;
import com.google.common.collect.Lists;
public class MedianTest {
@Test
public void
acceptance_test() {
Assertions.assertThat(Median.of(Lists.<List<Integer>>newArrayList(
Lists.newArrayList(4, 3, 1, 2),
Lists.newArrayList(3, 4),
Lists.newArrayList(7000000)))).isEqualTo(3);
}
/*
parcourir toutes les listes, et retourner les éléments les max et les mins
recherche la valeur x tq nombre de valeurs < x = nombre de valeurs > x
commencer par une recherche lineaire, apres peut-etre dichotomie
*/
@Test
public void
max_of_a_list() {
Assert.assertEquals(3, Median.max(Lists.<List<Integer>>newArrayList(
Lists.newArrayList(0, 3, 2))));
}
@Test
public void
max_of_a_list2() {
Assert.assertEquals(4, Median.max(Lists.<List<Integer>>newArrayList(
Lists.newArrayList(0, 3, 2, 4))));
}
@Test
public void
max_of_a_list3() {
Assert.assertEquals(7000000, Median.max(Lists.<List<Integer>>newArrayList(
Lists.newArrayList(0, 3, 2, 4),
Lists.newArrayList(7000000))));
}
@Test
public void
min_of_a_list() {
Assert.assertEquals(1, Median.min(Lists.<List<Integer>>newArrayList(
Lists.newArrayList(1, 3, 2))));
}
@Test
public void
ordinality_of_one_list() {
Assert.assertEquals(new Ordinality(1, 1, 1), Median.ordinality(2, Lists.<List<Integer>>newArrayList(
Lists.newArrayList(1, 3, 2))));
}
@Test
public void
ordinality_of_another_list() {
Assert.assertEquals(new Ordinality(2, 0, 1), Median.ordinality(3, Lists.<List<Integer>>newArrayList(
Lists.newArrayList(1, 3, 2))));
}
@Test
public void
ordinality_of_2_lists() {
Assert.assertEquals(new Ordinality(5, 1, 0), Median.ordinality(5, Lists.<List<Integer>>newArrayList(
Lists.newArrayList(1, 3, 2),
Lists.newArrayList(2, 4, 7))));
}
@Test
public void
median_of_a_list() {
Assert.assertEquals(2, Median.of(Lists.<List<Integer>>newArrayList(
Lists.newArrayList(1, 3, 2))));
}
@Test
public void
median_of_2_list() {
Assert.assertEquals(3, Median.of(Lists.<List<Integer>>newArrayList(
Lists.newArrayList(1, 3, 2, 5), Lists.newArrayList(2, 4, 7))));
}
@Test
public void
median_of_2_list_unbalanced() {
Assert.assertEquals(2, Median.of(Lists.<List<Integer>>newArrayList(
Lists.newArrayList(1, 3, 2, 2, 2, 2, 2, 2, 5, 4))));
}
}