package io.mycat.performance;
//package org.opencloudb.performance;
//
//import java.nio.ByteBuffer;
//import java.util.Collection;
//import java.util.HashSet;
//import java.util.Random;
//import java.util.Set;
//
//import org.opencloudb.mpp.ColMeta;
//import org.opencloudb.mpp.OrderCol;
//import org.opencloudb.mpp.tmp.FastRowDataSorter;
//import org.opencloudb.mpp.tmp.MutilNodeMergeItf;
//import org.opencloudb.mysql.BufferUtil;
//import org.opencloudb.net.mysql.RowDataPacket;
//
//public class TestMergeSorter {
//
// // @Test
// public static void main(String[] args) {
// ColMeta colMeta = new ColMeta(0, ColMeta.COL_TYPE_INT);
// OrderCol col = new OrderCol(colMeta, OrderCol.COL_ORDER_TYPE_DESC);
// OrderCol[] orderCols = { col };
// MutilNodeMergeItf sorter = new FastRowDataSorter(orderCols);
// byte idLen = 4;
// byte packId = 0;
// int maxCount = 10000;
// int bound = maxCount * 2;
// Random rd = new Random();
// Set<Integer> set = new HashSet<Integer>();
// while (set.size() < maxCount) {
// set.add(rd.nextInt(bound));
// }
// for (Integer integer : set) {
// String name = "name".concat(String.valueOf(integer));
// int length = name.length();
// RowDataPacket row = new RowDataPacket(2);
// ByteBuffer buffer = ByteBuffer.allocate(3 + 1 + 1 + 4 + 1 + length);
// BufferUtil.writeUB3(buffer, buffer.capacity());// PACKLEN
// buffer.put(packId++);// packID
// buffer.put(idLen);// LEN
// BufferUtil.writeInt(buffer, integer);
// buffer.put((byte) length);
// buffer.put(name.getBytes());
// row.read(buffer.array());
// sorter.addRow(row);
// }
// set.clear();
// System.gc();
// System.out.println("add finished");
// for (int i = 0; i < 100; i++) {
// long st = System.currentTimeMillis();
// Collection<RowDataPacket> res = sorter.getResult();
// long end = System.currentTimeMillis();// 37.246//15.196
// System.out.println((end - st) / 1000.0);
// }
// // for (RowDataPacket row : res) {
// // byte[] x = row.fieldValues.get(0);
// // byte[] name = row.fieldValues.get(1);
// // ByteBuffer wrap = ByteBuffer.wrap(x);
// // wrap.order(ByteOrder.LITTLE_ENDIAN);
// // System.out.println(wrap.getInt()+","+new String(name));
// //
// // }
// sorter.close();
// }
//}