You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
86 lines
1.9 KiB
Java
86 lines
1.9 KiB
Java
package org.thoughtcrime.securesms.util;
|
|
|
|
import org.thoughtcrime.securesms.TextSecureTestCase;
|
|
|
|
import java.util.LinkedList;
|
|
import java.util.List;
|
|
|
|
import static junit.framework.Assert.assertEquals;
|
|
|
|
public class ListPartitionTest extends TextSecureTestCase {
|
|
|
|
public void testPartitionEven() {
|
|
List<Integer> list = new LinkedList<>();
|
|
|
|
for (int i=0;i<100;i++) {
|
|
list.add(i);
|
|
}
|
|
|
|
List<List<Integer>> partitions = Util.partition(list, 10);
|
|
|
|
assertEquals(partitions.size(), 10);
|
|
|
|
int counter = 0;
|
|
|
|
for (int i=0;i<partitions.size();i++) {
|
|
List<Integer> partition = partitions.get(i);
|
|
assertEquals(partition.size(), 10);
|
|
|
|
for (int j=0;j<partition.size();j++) {
|
|
assertEquals((int)partition.get(j), counter++);
|
|
}
|
|
}
|
|
}
|
|
|
|
public void testPartitionOdd() {
|
|
List<Integer> list = new LinkedList<>();
|
|
|
|
for (int i=0;i<100;i++) {
|
|
list.add(i);
|
|
}
|
|
|
|
list.add(100);
|
|
|
|
List<List<Integer>> partitions = Util.partition(list, 10);
|
|
|
|
assertEquals(partitions.size(), 11);
|
|
|
|
int counter = 0;
|
|
|
|
for (int i=0;i<partitions.size()-1;i++) {
|
|
List<Integer> partition = partitions.get(i);
|
|
assertEquals(partition.size(), 10);
|
|
|
|
for (int j=0;j<partition.size();j++) {
|
|
assertEquals((int)partition.get(j), counter++);
|
|
}
|
|
}
|
|
|
|
assertEquals(partitions.get(10).size(), 1);
|
|
assertEquals((int)partitions.get(10).get(0), 100);
|
|
}
|
|
|
|
public void testPathological() {
|
|
List<Integer> list = new LinkedList<>();
|
|
|
|
for (int i=0;i<100;i++) {
|
|
list.add(i);
|
|
}
|
|
|
|
List<List<Integer>> partitions = Util.partition(list, 1);
|
|
|
|
assertEquals(partitions.size(), 100);
|
|
|
|
int counter = 0;
|
|
|
|
for (int i=0;i<partitions.size();i++) {
|
|
List<Integer> partition = partitions.get(i);
|
|
assertEquals(partition.size(), 1);
|
|
|
|
for (int j=0;j<partition.size();j++) {
|
|
assertEquals((int)partition.get(j), counter++);
|
|
}
|
|
}
|
|
}
|
|
}
|