import org.junit.Test;
import java.util.Arrays;
import java.util.List;
import static org.junit.Assert.*;
public class ComputeEnclosedRegionsTest {
private final Boolean w = true;
private final Boolean b = false;
private List<List<Boolean>> expected;
private List<List<Boolean>> board;
@Test
public void fillSurroundingRegions1() throws Exception {
expected = Arrays.asList(
Arrays.asList(b,b,b,b),
Arrays.asList(w,b,b,b),
Arrays.asList(b,b,b,b),
Arrays.asList(b,b,b,b)
);
board = Arrays.asList(
Arrays.asList(b,b,b,b),
Arrays.asList(w,b,w,b),
Arrays.asList(b,w,w,b),
Arrays.asList(b,b,b,b)
);
test(expected, board);
}
@Test
public void fillSurroundingRegions2() throws Exception {
expected = Arrays.asList(
Arrays.asList(b,b,b,b,b,b,b,b,b,b),
Arrays.asList(b,b,b,b,b,b,w,w,b,b),
Arrays.asList(b,b,b,b,b,b,b,w,b,b),
Arrays.asList(b,b,w,b,b,b,b,w,b,b),
Arrays.asList(b,b,b,w,w,w,w,b,b,b),
Arrays.asList(b,b,b,w,w,b,w,b,b,b),
Arrays.asList(b,b,b,b,b,b,b,w,w,b),
Arrays.asList(b,b,b,w,b,b,b,w,w,b),
Arrays.asList(b,b,b,b,b,b,b,b,b,b),
Arrays.asList(b,b,b,b,b,b,b,b,b,b)
);
board = Arrays.asList(
Arrays.asList(b,w,b,w,w,w,b,b,b,b),
Arrays.asList(w,w,b,w,w,b,w,w,b,b),
Arrays.asList(b,b,b,w,w,b,b,w,b,b),
Arrays.asList(w,b,w,b,b,b,b,w,b,w),
Arrays.asList(b,w,b,w,w,w,w,b,w,w),
Arrays.asList(b,w,b,w,w,b,w,b,b,b),
Arrays.asList(w,w,w,b,b,w,b,w,w,b),
Arrays.asList(b,w,b,w,b,w,b,w,w,b),
Arrays.asList(b,w,b,b,w,w,w,b,b,b),
Arrays.asList(w,w,w,w,w,w,w,b,b,w)
);
test(expected, board);
}
private void test(List<List<Boolean>> expected, List<List<Boolean>> board) {
ComputeEnclosedRegions.fillSurroundingRegions(board);
assertEquals(expected, board);
}
}