1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package com.google.common.primitives;
18
19 import static com.google.common.base.Preconditions.checkNotNull;
20
21 import com.google.common.annotations.GwtCompatible;
22 import com.google.common.collect.testing.SampleElements;
23 import com.google.common.collect.testing.TestListGenerator;
24
25 import junit.framework.TestCase;
26
27 import java.util.List;
28
29
30
31
32
33
34 @GwtCompatible(emulated = true)
35 @SuppressWarnings("cast")
36 public class IntArrayAsListTest extends TestCase {
37
38 private static List<Integer> asList(Integer[] values) {
39 int[] temp = new int[values.length];
40 for (int i = 0; i < values.length; i++) {
41 temp[i] = checkNotNull(values[i]);
42 }
43 return Ints.asList(temp);
44 }
45
46
47
48
49 public static final class IntsAsListGenerator extends TestIntegerListGenerator {
50 @Override protected List<Integer> create(Integer[] elements) {
51 return asList(elements);
52 }
53 }
54
55 public static final class IntsAsListHeadSubListGenerator extends TestIntegerListGenerator {
56 @Override protected List<Integer> create(Integer[] elements) {
57 Integer[] suffix = {Integer.MIN_VALUE, Integer.MAX_VALUE};
58 Integer[] all = concat(elements, suffix);
59 return asList(all).subList(0, elements.length);
60 }
61 }
62
63 public static final class IntsAsListTailSubListGenerator extends TestIntegerListGenerator {
64 @Override protected List<Integer> create(Integer[] elements) {
65 Integer[] prefix = {(int) 86, (int) 99};
66 Integer[] all = concat(prefix, elements);
67 return asList(all).subList(2, elements.length + 2);
68 }
69 }
70
71 public static final class IntsAsListMiddleSubListGenerator extends TestIntegerListGenerator {
72 @Override protected List<Integer> create(Integer[] elements) {
73 Integer[] prefix = {Integer.MIN_VALUE, Integer.MAX_VALUE};
74 Integer[] suffix = {(int) 86, (int) 99};
75 Integer[] all = concat(concat(prefix, elements), suffix);
76 return asList(all).subList(2, elements.length + 2);
77 }
78 }
79
80 private static Integer[] concat(Integer[] left, Integer[] right) {
81 Integer[] result = new Integer[left.length + right.length];
82 System.arraycopy(left, 0, result, 0, left.length);
83 System.arraycopy(right, 0, result, left.length, right.length);
84 return result;
85 }
86
87 public static abstract class TestIntegerListGenerator
88 implements TestListGenerator<Integer> {
89 @Override
90 public SampleElements<Integer> samples() {
91 return new SampleIntegers();
92 }
93
94 @Override
95 public List<Integer> create(Object... elements) {
96 Integer[] array = new Integer[elements.length];
97 int i = 0;
98 for (Object e : elements) {
99 array[i++] = (Integer) e;
100 }
101 return create(array);
102 }
103
104
105
106
107
108 protected abstract List<Integer> create(Integer[] elements);
109
110 @Override public Integer[] createArray(int length) {
111 return new Integer[length];
112 }
113
114
115 @Override
116 public List<Integer> order(List<Integer> insertionOrder) {
117 return insertionOrder;
118 }
119 }
120
121 public static class SampleIntegers extends SampleElements<Integer> {
122 public SampleIntegers() {
123 super((int) 0, (int) 1, (int) 2, (int) 3, (int) 4);
124 }
125 }
126 }
127