1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.giraph.types.heaps;
20
21 import org.junit.Assert;
22 import org.junit.Test;
23
24 import java.util.ArrayList;
25 import java.util.Collections;
26 import java.util.List;
27
28
29
30
31 public class TestFixedCapacityIntDoubleMinHeap {
32 @Test
33 public void testHeap() {
34 int heapCapacity = 5;
35 FixedCapacityIntDoubleMinHeap heap =
36 new FixedCapacityIntDoubleMinHeap(heapCapacity);
37 int[] keys = new int[]{0, 1, 0, 10, 20, 0, 3, 4};
38 double[] values = new double[]{
39 0, 1, 2, 2, 2,
40 3, 3, 4};
41
42 List<Integer> positions = new ArrayList<>();
43 for (int i = 0; i < keys.length; i++) {
44 positions.add(i);
45 }
46 Collections.shuffle(positions);
47 for (Integer position : positions) {
48 heap.add(keys[position], values[position]);
49 }
50
51 for (int i = keys.length - heapCapacity; i < keys.length; i++) {
52 Assert.assertEquals(heap.size(), heapCapacity);
53 Assert.assertEquals(heap.getMinKey(), keys[i]);
54 Assert.assertEquals(heap.getMinValue(), values[i], 0);
55 heap.removeMin();
56 heapCapacity--;
57 }
58 Assert.assertTrue(heap.isEmpty());
59 }
60 }