def test_order_closest(self): id0 = Id(BIN_ID0) ordered_list = [ Id('\x00' * ID_SIZE_BYTES), Id(BIN_ID0[:-1] + '\x06'), Id(BIN_ID0[:9] + '\x01' * (ID_SIZE_BYTES - 9)), Id(BIN_ID0[:7] + '\xff' * (ID_SIZE_BYTES - 7)), Id(BIN_ID0[:7] + '\xff' * (ID_SIZE_BYTES - 7)), Id('\x00' + '\xff' * (ID_SIZE_BYTES - 1)), Id('\x53' * ID_SIZE_BYTES), Id('\xff' * ID_SIZE_BYTES), ] random_list = random.sample(ordered_list, len(ordered_list)) random_list_copy = random_list[:] logger.debug('ordered list') for e in ordered_list: logger.debug('%s' % e) logger.debug('random order') for e in random_list: logger.debug('%s' % e) result_list = id0.order_closest(random_list) logger.debug('order_closest result') for e in result_list: logger.debug('%s' % e) logger.debug('random order (it should not change)') for e in random_list: logger.debug('%s' % e) # make sure order_closest does not modify random_list assert random_list == random_list_copy for i, ordered_id in enumerate(ordered_list): logger.debug('%d, %s, %s' % (i, ordered_id, result_list[i])) assert ordered_id.bin_id == result_list[i].bin_id
def _test_order_closest(self): id0 = Id(BIN_ID0) ordered_list = [ Id('\x00' * ID_SIZE_BYTES), Id(BIN_ID0[:-1] + '\x06'), Id(BIN_ID0[:9] + '\x01' * (ID_SIZE_BYTES - 9)), Id(BIN_ID0[:7] + '\xff' * (ID_SIZE_BYTES - 7)), Id(BIN_ID0[:7] + '\xff' * (ID_SIZE_BYTES - 7)), Id('\x00' + '\xff' * (ID_SIZE_BYTES - 1)), Id('\x53' * ID_SIZE_BYTES), Id('\xff' * ID_SIZE_BYTES), ] random_list = random.sample(ordered_list, len(ordered_list)) random_list_copy = random_list[:] logger.debug('ordered list') for e in ordered_list: logger.debug('%s' % e) logger.debug('random order') for e in random_list: logger.debug('%s' % e) result_list = id0.order_closest(random_list) logger.debug('order_closest result') for e in result_list: logger.debug('%s' % e) logger.debug('random order (it should not change)') for e in random_list: logger.debug('%s' % e) # make sure order_closest does not modify random_list assert random_list == random_list_copy for i, ordered_id in enumerate(ordered_list): logger.debug('%d, %s, %s' % (i, ordered_id, result_list[i])) assert ordered_id.bin_id == result_list[i].bin_id