### Question:
HiddenSingleMaskFactory extends SDKMaskFactory { public static boolean isHiddenSingle(SDKSquare s, SDKBoard board) { LinkedList<SDKSquare> zsqrs = board.getSquaresInZone(s); zsqrs.remove(s); LinkedList<SDKSquare> csqrs = board.getSquaresInCol(s.col); csqrs.remove(s); LinkedList<SDKSquare> rsqrs = board.getSquaresInRow(s.row); rsqrs.remove(s); HashSet<Integer> zonePossibles = s.getPossible(); HashSet<Integer> rowPossibles = s.getPossible(); HashSet<Integer> colPossibles = s.getPossible(); for(SDKSquare s2 : rsqrs) rowPossibles.removeAll(s2.getPossible()); for(SDKSquare s2 : csqrs) colPossibles.removeAll(s2.getPossible()); for(SDKSquare s2 : zsqrs) zonePossibles.removeAll(s2.getPossible()); return rowPossibles.size() == 1 || colPossibles.size() == 1 || zonePossibles.size() == 1; }  static boolean isHiddenSingle(SDKSquare s, SDKBoard board); static SDKMask createMaskForBoard(SDKBoard solvedBoard,int maxRemoved);  }### Answer:
@Test public void checkerWorks() { int[][] test = {{0,0,0,0,0,0,0,0,0}, {0,0,5,0,8,0,4,0,0}, {0,4,6,7,2,9,0,5,1}, {9,6,0,3,5,0,0,8,0}, {0,0,0,0,6,0,9,3,5}, {0,8,3,0,1,4,0,2,7}, {1,7,0,5,0,0,2,0,3}, {0,0,9,0,0,1,0,6,8}, {0,5,4,2,3,8,7,0,0}}; SDKBoard board = new SDKBoard(); board.loadSimpleBoard(test); board.updateConstraints(); assertTrue(HiddenSingleMaskFactory.isHiddenSingle(board.getSquare(5, 0), board)); }