@ParameterizedTest(name = TEST_NAME_WITH_RACK_CONFIG)
    @EnumSource(RackConfig.class)
    public void testPoorRoundRobinAssignmentScenario(RackConfig rackConfig) {
        initializeRacks(rackConfig);
        Map<String, List<PartitionInfo>> partitionsPerTopic = new HashMap<>();
        for (int i = 1; i <= 5; i++) {
            String topicName = String.format("topic%d", i);
            partitionsPerTopic.put(topicName, partitionInfos(topicName, (i % 2) + 1));
        }

        subscriptions.put("consumer1",
            subscription(topics("topic1", "topic2", "topic3", "topic4", "topic5"), 0));
        subscriptions.put("consumer2",
            subscription(topics("topic1", "topic3", "topic5"), 1));
        subscriptions.put("consumer3",
            subscription(topics("topic1", "topic3", "topic5"), 2));
        subscriptions.put("consumer4",
            subscription(topics("topic1", "topic2", "topic3", "topic4", "topic5"), 3));

        Map<String, List<TopicPartition>> assignment = assignor.assignPartitions(partitionsPerTopic, subscriptions);
        verifyValidityAndBalance(subscriptions, assignment, partitionsPerTopic);
    }
This unit test performs sticky assignment for a scenario that round robin assignor handles poorly.
Topics (partitions per topic): topic1 (2), topic2 (1), topic3 (2), topic4 (1), topic5 (2)
Subscriptions:
 - consumer1: topic1, topic2, topic3, topic4, topic5
 - consumer2: topic1, topic3, topic5
 - consumer3: topic1, topic3, topic5
 - consumer4: topic1, topic2, topic3, topic4, topic5
Round Robin Assignment Result:
 - consumer1: topic1-0, topic3-0, topic5-0
 - consumer2: topic1-1, topic3-1, topic5-1
 - consumer3:
 - consumer4: topic2-0, topic4-0
Sticky Assignment Result:
 - consumer1: topic2-0, topic3-0
 - consumer2: topic1-0, topic3-1
 - consumer3: topic1-1, topic5-0
 - consumer4: topic4-0, topic5-1
clients/src/test/java/org/apache/kafka/clients/consumer/internals/AbstractStickyAssignorTest.java