// Copyright 2014 Thomas Müller // This file is part of MarMoT, which is licensed under GPLv3. package marmot.test.util; import static org.junit.Assert.*; import java.util.Arrays; import java.util.Collections; import java.util.LinkedList; import java.util.List; import marmot.util.ListUtils; import org.junit.Test; public class ListUtilsTest { @Test public void complementTest() { List<List<Integer>> items; List<Integer> expected, actual; items = new LinkedList<List<Integer>>(); items.add(Arrays.asList(1, 2)); items.add(Arrays.asList(3, 4)); items.add(Arrays.asList(5, 6)); items.add(Arrays.asList(7, 8)); expected = Arrays.asList(1, 2, 3, 4, 7, 8); actual = ListUtils.complement(items, 2); assertEquals(expected, actual); expected = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8); actual = ListUtils.complement(items, 4); assertEquals(expected, actual); actual = ListUtils.complement(items, -1); assertEquals(expected, actual); } @Test public void chunkTest() { List<List<Integer>> expected, actual; List<Integer> items = Arrays.asList(1, 2, 3, 4, 5, 6 , 7, 8); expected = new LinkedList<List<Integer>>(); expected.add(Arrays.asList(1, 2)); expected.add(Arrays.asList(3, 4)); expected.add(Arrays.asList(5, 6)); expected.add(Arrays.asList(7, 8)); actual = ListUtils.chunk(items, 4); assertEquals(expected, actual); expected = new LinkedList<List<Integer>>(); expected.add(Arrays.asList(1)); expected.add(Arrays.asList(2)); expected.add(Arrays.asList(3)); expected.add(Arrays.asList(4)); expected.add(Arrays.asList(5, 6, 7, 8)); actual = ListUtils.chunk(items, 5); assertEquals(expected, actual); expected = new LinkedList<List<Integer>>(); expected.add(Arrays.asList(1)); expected.add(Arrays.asList(2)); expected.add(Arrays.asList(3)); expected.add(Arrays.asList(4)); expected.add(Arrays.asList(5)); expected.add(Arrays.asList(6)); expected.add(Arrays.asList(7)); expected.add(Arrays.asList(8)); actual = ListUtils.chunk(items, 8); assertEquals(expected, actual); expected = new LinkedList<List<Integer>>(); expected.add(Arrays.asList(1)); expected.add(Arrays.asList(2)); expected.add(Arrays.asList(3)); expected.add(Arrays.asList(4)); expected.add(Arrays.asList(5)); expected.add(Arrays.asList(6)); expected.add(Arrays.asList(7)); expected.add(Arrays.asList(8)); actual = ListUtils.chunk(items, 9); assertEquals(expected, actual); expected = Collections.singletonList(items); actual = ListUtils.chunk(items, 1); assertEquals(expected, actual); } }