import org.junit.Before;
import org.junit.Test;
import org.junit.Ignore;
import static java.util.Arrays.asList;
import static java.util.Collections.emptyList;
import static java.util.Collections.singletonList;
import static org.junit.Assert.assertEquals;
/*
* version: 1.1.0
*/
public class FlattenerTest {
private Flattener flattener;
@Before
public void setUp() {
flattener = new Flattener();
}
@Test
public void testFlatListIsPreserved() {
assertEquals(
asList(0, '1', "two"),
flattener.flatten(
asList(
0,
'1',
"two")));
}
@Ignore("Remove to run test")
@Test
public void testASingleLevelOfNestingWithNoNulls() {
assertEquals(
asList(1, '2', 3, 4, 5, "six", "7", 8),
flattener.flatten(
asList(
1,
asList(
'2',
3,
4,
5,
"six",
"7"),
8)));
}
@Ignore("Remove to run test")
@Test
public void testFiveLevelsOfNestingWithNoNulls() {
assertEquals(
asList(0, '2', 2, "three", '8', 100, "four", 50, "-2"),
flattener.flatten(
asList(
0,
'2',
asList(
asList(
2,
"three"),
'8',
100,
"four",
singletonList(
singletonList(
singletonList(
50)))),
"-2")));
}
@Ignore("Remove to run test")
@Test
public void testSixLevelsOfNestingWithNoNulls() {
assertEquals(
asList("one", '2', 3, '4', 5, "six", 7, "8"),
flattener.flatten(
asList(
"one",
asList(
'2',
singletonList(
singletonList(
3)),
asList(
'4',
singletonList(
singletonList(
5))),
"six",
7),
"8")));
}
@Ignore("Remove to run test")
@Test
public void testSixLevelsOfNestingWithNulls() {
assertEquals(
asList("0", 2, "two", '3', "8", "one hundred", "negative two"),
flattener.flatten(
asList(
"0",
2,
asList(
asList(
"two",
'3'),
"8",
singletonList(
singletonList(
"one hundred")),
null,
singletonList(
singletonList(
null))),
"negative two")));
}
@Ignore("Remove to run test")
@Test
public void testNestedListsFullOfNullsOnly() {
assertEquals(
emptyList(),
flattener.flatten(
asList(
null,
singletonList(
singletonList(
singletonList(
null))),
null,
null,
asList(
asList(
null,
null),
null),
null)));
}
}