class ILoveSudoku::SolutionValidator

Attributes

matrix[R]

Public Class Methods

new(matrix) click to toggle source
# File lib/solution_validator.rb, line 4
def initialize(matrix)
  @matrix = matrix
end

Public Instance Methods

complete?() click to toggle source
# File lib/solution_validator.rb, line 16
def complete?
  matrix.map { |row| row.include?(nil) }.none?
end
solved?() click to toggle source
# File lib/solution_validator.rb, line 8
def solved?
  valid? && complete?
end
valid?() click to toggle source
# File lib/solution_validator.rb, line 12
def valid?
  valid_rows? && valid_columns? && valid_subgroups?
end

Private Instance Methods

valid_columns?() click to toggle source
# File lib/solution_validator.rb, line 29
def valid_columns?
  # Same validator as for rows, but with input transposed.
  ArrayValidator.new(matrix.transpose).valid?
end
valid_rows?() click to toggle source
# File lib/solution_validator.rb, line 25
def valid_rows?
  ArrayValidator.new(matrix).valid?
end
valid_subgroups?() click to toggle source
# File lib/solution_validator.rb, line 34
def valid_subgroups?
  SubgroupValidator.new(matrix).valid?
end