package com.kickstarter.libs.utils;
import junit.framework.TestCase;
import java.util.Arrays;
import java.util.List;
import rx.functions.Func2;
public final class ListUtilsTest extends TestCase {
public void testAllReplaced() {
final List<Integer> xs = Arrays.asList(1, 2, 2, 4, 5);
final List<Integer> expected = Arrays.asList(1, 9, 9, 4, 5);
assertEquals(expected, ListUtils.allReplaced(xs, 2, 9));
}
public void testContains() {
final List<Integer> xs = Arrays.asList(1, 2, 3, 4, 5);
final Func2<Integer, Integer, Boolean> equality = (x, y) -> x % 2 == 0 && y % 2 == 0;
assertTrue(ListUtils.contains(xs, 8, equality));
assertFalse(ListUtils.contains(xs, 1, equality));
assertFalse(ListUtils.contains(xs, 7, equality));
}
public void testDifference() {
final List<Integer> xs = Arrays.asList(1, 2, 3, 4, 5);
final List<Integer> ys = Arrays.asList(1, 4, 6, 4, 5, 7);
final List<Integer> expected = Arrays.asList(2, 3);
assertEquals(expected, ListUtils.difference(xs, ys));
}
public void testIndexOf() {
final List<Integer> xs = Arrays.asList(1, 2, 3, 4, 5);
final Func2<Integer, Integer, Boolean> equality = (x, y) -> x % 2 == 0 && y % 2 == 0;
assertEquals(1, ListUtils.indexOf(xs, 2, equality));
assertEquals(1, ListUtils.indexOf(xs, 4, equality));
assertEquals(-1, ListUtils.indexOf(xs, 1, equality));
}
public void testIntersection() {
final List<Integer> xs = Arrays.asList(1, 2, 3, 4, 5);
final List<Integer> ys = Arrays.asList(1, 4, 6, 4, 5, 7);
final List<Integer> expected = Arrays.asList(1, 4, 5);
assertEquals(expected, ListUtils.intersection(xs, ys));
}
public void testFind() {
final List<Integer> xs = Arrays.asList(1, 2, 3, 4, 5);
final Func2<Integer, Integer, Boolean> equality = (x, y) -> x % 2 == 0 && y % 2 == 0;
assertEquals(Integer.valueOf(2), ListUtils.find(xs, 2, equality));
assertEquals(Integer.valueOf(2), ListUtils.find(xs, 4, equality));
assertEquals(null, ListUtils.find(xs, 1, equality));
}
public void testFlatten() {
final List<List<Integer>> xss = Arrays.asList(
Arrays.asList(1, 2, 3),
Arrays.asList(4, 5, 6),
Arrays.asList(7, 8, 9)
);
final List<Integer> xs = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9);
assertEquals(xs, ListUtils.flatten(xss));
}
}