1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.commons.lang3;
19
20 import static org.junit.jupiter.api.Assertions.assertArrayEquals;
21 import static org.junit.jupiter.api.Assertions.assertEquals;
22 import static org.junit.jupiter.api.Assertions.assertNull;
23 import static org.junit.jupiter.api.Assertions.assertSame;
24
25 import org.apache.commons.lang3.function.FailableIntFunction;
26 import org.junit.jupiter.api.Test;
27
28
29
30
31 class ArrayFillTest extends AbstractLangTest {
32
33 @Test
34 void testClearByteArray() {
35 final byte[] array = new byte[3];
36 final byte val = 0;
37 final byte[] actual = ArrayFill.clear(array);
38 assertSame(array, actual);
39 for (final byte v : actual) {
40 assertEquals(val, v);
41 }
42 }
43
44 @Test
45 void testClearByteArrayNull() {
46 final byte[] array = null;
47 final byte[] actual = ArrayFill.clear(array);
48 assertSame(array, actual);
49 }
50
51 @Test
52 void testClearCharArray() {
53 final char[] array = new char[3];
54 final char val = 0;
55 final char[] actual = ArrayFill.clear(array);
56 assertSame(array, actual);
57 for (final char v : actual) {
58 assertEquals(val, v);
59 }
60 }
61
62 @Test
63 void testClearCharArrayNull() {
64 final char[] array = null;
65 final char[] actual = ArrayFill.clear(array);
66 assertSame(array, actual);
67 }
68
69 @Test
70 void testClearCharArrayRange() {
71 final char[] array = {'A', 'B', 'C', 'D', 'E'};
72 final char[] actual = ArrayFill.clear(array, 1, 4);
73 assertSame(array, actual);
74 assertEquals('A', actual[0]);
75 assertEquals('\0', actual[1]);
76 assertEquals('\0', actual[2]);
77 assertEquals('\0', actual[3]);
78 assertEquals('E', actual[4]);
79 }
80
81 @Test
82 void testClearCharArrayRangeNull() {
83 final char[] actual = ArrayFill.clear(null, 0, 0);
84 assertNull(actual);
85 }
86
87 @Test
88 void testFillBooleanArray() {
89 final boolean[] array = new boolean[3];
90 final boolean val = true;
91 final boolean[] actual = ArrayFill.fill(array, val);
92 assertSame(array, actual);
93 for (final boolean v : actual) {
94 assertEquals(val, v);
95 }
96 }
97
98 @Test
99 void testFillBooleanArrayNull() {
100 final boolean[] array = null;
101 final boolean val = true;
102 final boolean[] actual = ArrayFill.fill(array, val);
103 assertSame(array, actual);
104 }
105
106 @Test
107 void testFillByteArray() {
108 final byte[] array = new byte[3];
109 final byte val = 1;
110 final byte[] actual = ArrayFill.fill(array, val);
111 assertSame(array, actual);
112 for (final byte v : actual) {
113 assertEquals(val, v);
114 }
115 }
116
117 @Test
118 void testFillByteArrayNull() {
119 final byte[] array = null;
120 final byte val = 1;
121 final byte[] actual = ArrayFill.fill(array, val);
122 assertSame(array, actual);
123 }
124
125 @Test
126 void testFillCharArray() {
127 final char[] array = new char[3];
128 final char val = 1;
129 final char[] actual = ArrayFill.fill(array, val);
130 assertSame(array, actual);
131 for (final char v : actual) {
132 assertEquals(val, v);
133 }
134 }
135
136 @Test
137 void testFillCharArrayNull() {
138 final char[] array = null;
139 final char val = 1;
140 final char[] actual = ArrayFill.fill(array, val);
141 assertSame(array, actual);
142 }
143
144 @Test
145 void testFillCharArrayRange() {
146 final char[] array = {'A', 'B', 'C', 'D', 'E'};
147 final char val = 'Z';
148 final char[] actual = ArrayFill.fill(array, 1, 4, val);
149 assertSame(array, actual);
150 assertEquals('A', actual[0]);
151 assertEquals('Z', actual[1]);
152 assertEquals('Z', actual[2]);
153 assertEquals('Z', actual[3]);
154 assertEquals('E', actual[4]);
155 }
156
157 @Test
158 void testFillCharArrayRangeEmpty() {
159 final char[] array = {'A', 'B', 'C'};
160 final char[] actual = ArrayFill.fill(array, 1, 1, 'Z');
161 assertSame(array, actual);
162 assertArrayEquals(new char[] {'A', 'B', 'C'}, actual);
163 }
164
165 @Test
166 void testFillCharArrayRangeNull() {
167 final char[] actual = ArrayFill.fill(null, 0, 0, 'Z');
168 assertNull(actual);
169 }
170
171 @Test
172 void testFillDoubleArray() {
173 final double[] array = new double[3];
174 final double val = 1;
175 final double[] actual = ArrayFill.fill(array, val);
176 assertSame(array, actual);
177 for (final double v : actual) {
178 assertEquals(val, v);
179 }
180 }
181
182 @Test
183 void testFillDoubleArrayNull() {
184 final double[] array = null;
185 final double val = 1;
186 final double[] actual = ArrayFill.fill(array, val);
187 assertSame(array, actual);
188 }
189
190 @Test
191 void testFillFloatArray() {
192 final float[] array = new float[3];
193 final float val = 1;
194 final float[] actual = ArrayFill.fill(array, val);
195 assertSame(array, actual);
196 for (final float v : actual) {
197 assertEquals(val, v);
198 }
199 }
200
201 @Test
202 void testFillFloatArrayNull() {
203 final float[] array = null;
204 final float val = 1;
205 final float[] actual = ArrayFill.fill(array, val);
206 assertSame(array, actual);
207 }
208
209 @Test
210 void testFillFunction() throws Exception {
211 final FailableIntFunction<?, Exception> nullIntFunction = null;
212 assertNull(ArrayFill.fill(null, nullIntFunction));
213 assertArrayEquals(null, ArrayFill.fill(null, nullIntFunction));
214 assertArrayEquals(ArrayUtils.EMPTY_BOOLEAN_OBJECT_ARRAY, ArrayFill.fill(ArrayUtils.EMPTY_BOOLEAN_OBJECT_ARRAY, nullIntFunction));
215 assertArrayEquals(ArrayUtils.EMPTY_OBJECT_ARRAY, ArrayFill.fill(ArrayUtils.EMPTY_OBJECT_ARRAY, nullIntFunction));
216 final Integer[] array = new Integer[10];
217 final Integer[] array2 = ArrayFill.fill(array, Integer::valueOf);
218 assertSame(array, array2);
219 for (int i = 0; i < array.length; i++) {
220 assertEquals(i, array[i].intValue());
221 }
222 }
223
224 @Test
225 void testFillIntArray() {
226 final int[] array = new int[3];
227 final int val = 1;
228 final int[] actual = ArrayFill.fill(array, val);
229 assertSame(array, actual);
230 for (final int v : actual) {
231 assertEquals(val, v);
232 }
233 }
234
235 @Test
236 void testFillIntArrayNull() {
237 final int[] array = null;
238 final int val = 1;
239 final int[] actual = ArrayFill.fill(array, val);
240 assertSame(array, actual);
241 }
242
243 @Test
244 void testFillLongArray() {
245 final long[] array = new long[3];
246 final long val = 1;
247 final long[] actual = ArrayFill.fill(array, val);
248 assertSame(array, actual);
249 for (final long v : actual) {
250 assertEquals(val, v);
251 }
252 }
253
254 @Test
255 void testFillLongArrayNull() {
256 final long[] array = null;
257 final long val = 1;
258 final long[] actual = ArrayFill.fill(array, val);
259 assertSame(array, actual);
260 }
261
262 @Test
263 void testFillObjectArray() {
264 final String[] array = new String[3];
265 final String val = "A";
266 final String[] actual = ArrayFill.fill(array, val);
267 assertSame(array, actual);
268 for (final String v : actual) {
269 assertEquals(val, v);
270 }
271 }
272
273 @Test
274 void testFillObjectArrayNull() {
275 final Object[] array = null;
276 final Object val = 1;
277 final Object[] actual = ArrayFill.fill(array, val);
278 assertSame(array, actual);
279 }
280
281 @Test
282 void testFillShortArray() {
283 final short[] array = new short[3];
284 final short val = 1;
285 final short[] actual = ArrayFill.fill(array, val);
286 assertSame(array, actual);
287 for (final short v : actual) {
288 assertEquals(val, v);
289 }
290 }
291
292 @Test
293 void testFillShortArrayNull() {
294 final short[] array = null;
295 final short val = 1;
296 final short[] actual = ArrayFill.fill(array, val);
297 assertSame(array, actual);
298 }
299 }