package org.compass.gps.device.support.parallel; import junit.framework.TestCase; /** * @author kimchy */ public class SubIndexIndexEntitiesPartitionerTests extends TestCase { public class MockIndexEntity implements IndexEntity { private String[] subIndexes; public MockIndexEntity(String[] subIndexes) { this.subIndexes = subIndexes; } public String[] getSubIndexes() { return subIndexes; } public String getName() { return ""; } } public void testSimplePartition() throws Exception { IndexEntity[] entities = new IndexEntity[]{ new MockIndexEntity(new String[]{"a", "b"}), new MockIndexEntity(new String[]{"c", "d"}) }; SubIndexIndexEntitiesPartitioner partitioner = new SubIndexIndexEntitiesPartitioner(); IndexEntity[][] parEnt = partitioner.partition(entities); assertEquals(2, parEnt.length); } public void testSamePartition() throws Exception { IndexEntity[] entities = new IndexEntity[]{ new MockIndexEntity(new String[]{"a", "b"}), new MockIndexEntity(new String[]{"a", "b"}) }; SubIndexIndexEntitiesPartitioner partitioner = new SubIndexIndexEntitiesPartitioner(); IndexEntity[][] parEnt = partitioner.partition(entities); assertEquals(1, parEnt.length); } public void testJoinedPartition() throws Exception { IndexEntity[] entities = new IndexEntity[]{ new MockIndexEntity(new String[]{"a", "b"}), new MockIndexEntity(new String[]{"b", "c"}), new MockIndexEntity(new String[]{"d", "c"}) }; SubIndexIndexEntitiesPartitioner partitioner = new SubIndexIndexEntitiesPartitioner(); IndexEntity[][] parEnt = partitioner.partition(entities); assertEquals(1, parEnt.length); assertEquals(3, parEnt[0].length); } public void testJoinedPartitionAndOneWithoutAtTheEnd() throws Exception { IndexEntity[] entities = new IndexEntity[]{ new MockIndexEntity(new String[]{"a", "b"}), new MockIndexEntity(new String[]{"b", "c"}), new MockIndexEntity(new String[]{"d", "c"}), new MockIndexEntity(new String[]{"e", "f"}) }; SubIndexIndexEntitiesPartitioner partitioner = new SubIndexIndexEntitiesPartitioner(); IndexEntity[][] parEnt = partitioner.partition(entities); assertEquals(2, parEnt.length); assertEquals(3, parEnt[0].length); assertEquals(1, parEnt[1].length); } public void testJoinedPartitionAndOneWithoutAtTheBeginning() throws Exception { IndexEntity[] entities = new IndexEntity[]{ new MockIndexEntity(new String[]{"x", "y"}), new MockIndexEntity(new String[]{"a", "b"}), new MockIndexEntity(new String[]{"b", "c"}), new MockIndexEntity(new String[]{"d", "c"}), new MockIndexEntity(new String[]{"e", "f"}) }; SubIndexIndexEntitiesPartitioner partitioner = new SubIndexIndexEntitiesPartitioner(); IndexEntity[][] parEnt = partitioner.partition(entities); assertEquals(3, parEnt.length); assertEquals(1, parEnt[0].length); assertEquals(3, parEnt[1].length); assertEquals(1, parEnt[2].length); } }