1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.hadoop.hbase.util;
19
20 import static org.apache.hadoop.hbase.util.Order.ASCENDING;
21 import static org.apache.hadoop.hbase.util.Order.DESCENDING;
22 import static org.junit.Assert.assertArrayEquals;
23
24 import java.util.Arrays;
25 import java.util.Collections;
26
27 import org.apache.hadoop.hbase.SmallTests;
28 import org.junit.Test;
29 import org.junit.experimental.categories.Category;
30
31 @Category(SmallTests.class)
32 public class TestOrder {
33
34 byte[][] VALS = { Bytes.toBytes("foo"), Bytes.toBytes("bar"), Bytes.toBytes("baz") };
35
36 @Test
37 public void testApplyAscending() {
38 byte[][] vals = new byte[VALS.length][];
39 byte[][] ordered = new byte[VALS.length][];
40 for (int i = 0; i < VALS.length; i++) {
41 vals[i] = Arrays.copyOf(VALS[i], VALS[i].length);
42 ordered[i] = Arrays.copyOf(VALS[i], VALS[i].length);
43 ASCENDING.apply(ordered[i]);
44 }
45
46 Arrays.sort(vals, Bytes.BYTES_COMPARATOR);
47 Arrays.sort(ordered, Bytes.BYTES_COMPARATOR);
48
49 for (int i = 0; i < vals.length; i++) {
50 assertArrayEquals(vals[i], ordered[i]);
51 }
52
53 byte[] rangeApply = Arrays.copyOf(VALS[0], VALS[0].length);
54 ASCENDING.apply(rangeApply, 1, 1);
55 assertArrayEquals(VALS[0], rangeApply);
56 }
57
58 @Test
59 public void testApplyDescending() {
60 byte[][] vals = new byte[VALS.length][];
61 byte[][] ordered = new byte[VALS.length][];
62 for (int i = 0; i < VALS.length; i++) {
63 vals[i] = Arrays.copyOf(VALS[i], VALS[i].length);
64 ordered[i] = Arrays.copyOf(VALS[i], VALS[i].length);
65 DESCENDING.apply(ordered[i]);
66 }
67
68 Arrays.sort(vals, Collections.reverseOrder(Bytes.BYTES_COMPARATOR));
69 Arrays.sort(ordered, Bytes.BYTES_COMPARATOR);
70
71 for (int i = 0; i < vals.length; i++) {
72 DESCENDING.apply(ordered[i]);
73 assertArrayEquals(vals[i], ordered[i]);
74 }
75
76 byte[] expected = new byte[] { VALS[0][0], DESCENDING.apply(VALS[0][1]), VALS[0][2] };
77 byte[] rangeApply = Arrays.copyOf(VALS[0], VALS[0].length);
78 DESCENDING.apply(rangeApply, 1, 1);
79 assertArrayEquals(expected, rangeApply);
80 }
81 }