@Test public void testConsistency() { final int numPartitions = 1000; Map<Integer, Host> mappingsA = getPartitionAssignment(numPartitions, host1, host2, host3); assertEquals(numPartitions, mappingsA.size()); Map<Integer, Host> mappingsB = getPartitionAssignment(numPartitions, host1, null, host3); assertEquals(numPartitions, mappingsB.size()); int consistent = 0; for (int partitionId = 0; partitionId < numPartitions; ++partitionId) { if (mappingsA.get(partitionId).equals(mappingsB.get(partitionId))) { ++consistent; } } assertEquals(665, consistent); }
@Test public void testDependsOnlyOnOrder() { final int numPartitions = 1000; Map<Integer, Host> mappingsA = getPartitionAssignment(numPartitions, host1, host2, host3); assertEquals(numPartitions, mappingsA.size()); Map<Integer, Host> mappingsB = getPartitionAssignment(numPartitions, host2, host3, host1); assertEquals(numPartitions, mappingsB.size()); assertEquals(partitionsAssignedTo(host1, mappingsA), partitionsAssignedTo(host2, mappingsB)); assertEquals(partitionsAssignedTo(host2, mappingsA), partitionsAssignedTo(host3, mappingsB)); assertEquals(partitionsAssignedTo(host3, mappingsA), partitionsAssignedTo(host1, mappingsB)); }
Map<Integer, Host> mappings; mappings = getPartitionAssignment(1, host1); assertEquals(1, mappings.size()); assertEquals(host1, mappings.get(0)); mappings = getPartitionAssignment(1, host1, host2, host3); assertEquals(1, numPartitionsAssigned(host1, mappings)); mappings = getPartitionAssignment(2, host1, host2, host3); assertEquals(2, mappings.size()); assertEquals(1, numPartitionsAssigned(host1, mappings)); mappings = getPartitionAssignment(3, host1, host2, host3); assertEquals(3, mappings.size()); assertEquals(1, numPartitionsAssigned(host1, mappings)); mappings = getPartitionAssignment(4, host1, host2, host3); assertEquals(4, mappings.size()); assertEquals(2, numPartitionsAssigned(host1, mappings)); mappings = getPartitionAssignment(5, host1, host2, host3); assertEquals(5, mappings.size()); assertEquals(2, numPartitionsAssigned(host1, mappings)); mappings = getPartitionAssignment(6, host1, host2, host3); assertEquals(6, mappings.size()); assertEquals(2, numPartitionsAssigned(host1, mappings));