package pl.edu.agh.utils; import static com.google.common.collect.Lists.newArrayList; import static junit.framework.Assert.assertEquals; import java.util.Arrays; import java.util.List; import org.junit.Test; public class CountingElementsWithoutAdjacentDuplicatesTest { @Test public void forListWithLessThanTwoElementsReturnsItsSize() { List<Integer> list = Arrays.asList(1); int elementsNumber = Collections.getNumberOfElementsWithoutAdjacentDuplicates(list); assertEquals(elementsNumber, list.size()); } @Test public void forListWithTheSameElementsReturnsOne() { List<Integer> list = newArrayList(Arrays.asList(1, 1, 1, 1, 1)); int elementsNumber = Collections.getNumberOfElementsWithoutAdjacentDuplicates(list); assertEquals(elementsNumber, 1); } @Test public void forListWithNoAdjacentDuplicatesReturnsItsSize() { List<Integer> list = newArrayList(Arrays.asList(1, 2, 3, 2, 1)); int elementsNumber = Collections.getNumberOfElementsWithoutAdjacentDuplicates(list); assertEquals(elementsNumber, list.size()); } @Test public void forListWithDuplicatesAtBeginningCountsProperly() { List<Integer> list = newArrayList(Arrays.asList(1, 1, 1, 2)); int elementsNumber = Collections.getNumberOfElementsWithoutAdjacentDuplicates(list); assertEquals(elementsNumber, 2); } @Test public void forListWithDuplicatesAtEndCountsProperly() { List<Integer> list = newArrayList(Arrays.asList(1, 2, 2, 2)); int elementsNumber = Collections.getNumberOfElementsWithoutAdjacentDuplicates(list); assertEquals(elementsNumber, 2); } @Test public void forListWithDuplicatesInsideCountsProperly() { List<Integer> list = newArrayList(Arrays.asList(1, 2, 2, 1)); int elementsNumber = Collections.getNumberOfElementsWithoutAdjacentDuplicates(list); assertEquals(elementsNumber, 3); } @Test public void forListWith2DifferentElementsReturnsItsSize() { List<Integer> list = newArrayList(Arrays.asList(1, 2)); int elementsNumber = Collections.getNumberOfElementsWithoutAdjacentDuplicates(list); assertEquals(elementsNumber, 2); } }