1 /*
2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements. See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * The ASF licenses this file to You under the Apache License, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License. You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17 package org.apache.commons.math4.legacy.exception.util;
18
19 import java.util.List;
20 import java.util.ArrayList;
21
22 import org.junit.Assert;
23 import org.junit.Test;
24
25 /**
26 * Test for {@link ArgUtils}.
27 *
28 */
29 public class ArgUtilsTest {
30 @Test
31 public void testFlatten() {
32 final List<Object> orig = new ArrayList<>();
33
34 final Object[] struct = new Object[] {
35 new Object[] {
36 new Object[] {
37 create(orig),
38 create(orig),
39 },
40 create(orig),
41 new Object[] {
42 create(orig),
43 }
44 },
45 create(orig),
46 new Object[] {
47 create(orig),
48 new Object[] {
49 create(orig),
50 create(orig),
51 }
52 },
53 create(orig),
54 };
55
56 Object[] flat = ArgUtils.flatten(struct);
57 Assert.assertEquals(flat.length, orig.size());
58
59 for (int i = 0, max = orig.size(); i < max; i++) {
60 Assert.assertEquals(orig.get(i), flat[i]);
61 }
62 }
63
64 /**
65 * Create and store an {@code Object}.
66 *
67 * @param list List to store to.
68 * @return the stored object.
69 */
70 private Object create(List<Object> list) {
71 final Object o = new Object();
72 list.add(o);
73 return o;
74 }
75 }