def test_cluster_collision(self):
     nodes = {'1': {'zone': 'a'}, '2': {'zone': 'a'},
              '3': {'zone': 'b'}, '4': {'zone': 'b'}}
     cluster = Cluster(nodes)
     for n in range(100):
         for m in range(100):
             self.assertEqual(['2', '4'], sorted(cluster.find_nodes_by_index(n, m)))
    def test_find_nodes_by_index(self):
        cluster_config = {
            '1': {'name': 'node1', 'zone': 'a'},
            '2': {'name': 'node2', 'zone': 'a'},
            '3': {'name': 'node3', 'zone': 'b'},
            '4': {'name': 'node4', 'zone': 'b'},
            '5': {'name': 'node5', 'zone': 'c'},
            '6': {'name': 'node6', 'zone': 'c'},
        }
        cluster = Cluster(cluster_config)

        self.assertEqual(['6', '1'], cluster.find_nodes_by_index(1, 1))
        self.assertEqual(['2', '4'], cluster.find_nodes_by_index(1, 2))
        self.assertEqual(['4', '5'], cluster.find_nodes_by_index(1, 3))
        self.assertEqual(['1', '4'], cluster.find_nodes_by_index(2, 1))
        self.assertEqual(['3', '5'], cluster.find_nodes_by_index(2, 2))
        self.assertEqual(['5', '2'], cluster.find_nodes_by_index(2, 3))
 def test_cluster_collision(self):
     nodes = {
         '1': {
             'zone': 'a'
         },
         '2': {
             'zone': 'a'
         },
         '3': {
             'zone': 'b'
         },
         '4': {
             'zone': 'b'
         }
     }
     cluster = Cluster(nodes)
     for n in range(100):
         for m in range(100):
             self.assertEqual(['2', '4'],
                              sorted(cluster.find_nodes_by_index(n, m)))