import org.junit.Test;
import java.util.Arrays;
import java.util.List;
import static org.junit.Assert.*;
public class GeneratePowerSetTest {
private List<List<Integer>> expected;
private List<Integer> A;
@Test
public void generatePowerSet1() throws Exception {
expected = Arrays.asList(
Arrays.asList(-1),
Arrays.asList(0)
);
A = Arrays.asList(0);
test(expected, A);
}
@Test
public void generatePowerSet2() throws Exception {
expected = Arrays.asList(
Arrays.asList(-1),
Arrays.asList(0),
Arrays.asList(1),
Arrays.asList(1,2)
);
A = Arrays.asList(0,1);
test(expected, A);
}
@Test
public void generatePowerSet3() throws Exception {
expected = Arrays.asList(
Arrays.asList(-1),
Arrays.asList(0),
Arrays.asList(1),
Arrays.asList(2),
Arrays.asList(0,1),
Arrays.asList(0,2),
Arrays.asList(1,2),
Arrays.asList(0,1,2)
);
A = Arrays.asList(0,1,2);
test(expected, A);
}
private void test(List<List<Integer>> expected, List<Integer> A) {
List<List<Integer>> result = GeneratePowerSet.generatePowerSet(A);
assertEquals(expected.size(), result.size());
expected.forEach(i -> {
assertTrue(result.remove(i));
});
}
}