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 final 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
    @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
    @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
    @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
    @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
    @Test
    public void testNestedListsFullOfNullsOnly() {
        assertEquals(
          emptyList(),
          flattener.flatten(
            asList(
              null,
              singletonList(
                singletonList(
                  singletonList(
                    null))),
              null,
              null,
              asList(
                asList(
                  null,
                  null),
                null),
              null)));
    }

}

@@ -665,33 +665,55 @@
   %7D%0A%0A    @Ignore
+(%22Remove to run test%22)
 %0A
-
     @Test%0A    pu
@@ -1076,32 +1076,54 @@
   %7D%0A%0A    @Ignore
+(%22Remove to run test%22)
 %0A    @Test%0A    p
@@ -1668,32 +1668,54 @@
   %7D%0A%0A    @Ignore
+(%22Remove to run test%22)
 %0A    @Test%0A    p
@@ -2261,32 +2261,54 @@
   %7D%0A%0A    @Ignore
+(%22Remove to run test%22)
 %0A    @Test%0A    p
@@ -2899,32 +2899,32 @@
 two%22)));%0A    %7D%0A%0A
-
     @Ignore%0A    
@@ -2918,16 +2918,38 @@
  @Ignore
+(%22Remove to run test%22)
 %0A    @Te

add hint to @Ignore annotations