package proj.zoie.test;
import it.unimi.dsi.fastutil.ints.IntOpenHashSet;
import it.unimi.dsi.fastutil.ints.IntRBTreeSet;
import it.unimi.dsi.fastutil.ints.IntSet;
import java.util.Arrays;
import java.util.BitSet;
import java.util.Random;
import org.junit.Test;
public class PerfTest {
@Test
public void perfTest() {
Random rand = new Random();
int max = 5000000;
int[] docs = new int[max];
for (int i = 0; i < docs.length; ++i) {
docs[i] = i;
}
int limit = 10000;
IntSet set1 = new IntRBTreeSet();
while (set1.size() < limit) {
set1.add(rand.nextInt(max));
}
IntSet set2 = new IntOpenHashSet();
for (int i : set1) {
set2.add(i);
}
int[] set3 = set1.toIntArray();
Arrays.sort(set3);
BitSet set4 = new BitSet();
for (int i : set1) {
set4.set(i);
}
long start, end;
start = System.nanoTime();
for (int i = 0; i < docs.length; ++i) {
set1.contains(i);
}
end = System.nanoTime();
System.out.println("set1: " + (end - start) / 1000000);
start = System.nanoTime();
for (int i = 0; i < docs.length; ++i) {
set2.contains(i);
}
end = System.nanoTime();
System.out.println("set2: " + (end - start) / 1000000);
start = System.nanoTime();
for (int i = 0; i < docs.length; ++i) {
Arrays.binarySearch(set3, i);
}
end = System.nanoTime();
System.out.println("set3: " + (end - start) / 1000000);
start = System.nanoTime();
for (int i = 0; i < docs.length; ++i) {
set4.get(i);
}
end = System.nanoTime();
System.out.println("set4: " + (end - start) / 1000000);
}
}