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