@Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (getClass() != obj.getClass())
            return false;
        Position other = (Position) obj;
        if (x != other.x)
            return false;
        if (y != other.y)
            return false;
        return true;
    }
http://www.geeksforgeeks.org/divide-and-conquer-set-6-tiling-problem/
Test cases
Size of matrix is at least 2 and power of 2 always
Missing point could be on edges
Missing point could be in any of 4 quadrants
src/com/interview/multiarray/TilingProblem.java