60 lines
3.7 KiB
Ruby
60 lines
3.7 KiB
Ruby
require_relative 'main'
|
|
require 'test/unit'
|
|
|
|
class TestSudokuValidator < Test::Unit::TestCase
|
|
def test_valid_board
|
|
assert_equal(true, is_valid_sudoku([
|
|
['5', '3', '.', '.', '7', '.', '.', '.', '.'],
|
|
['6', '.', '.', '1', '9', '5', '.', '.', '.'],
|
|
['.', '9', '8', '.', '.', '.', '.', '6', '.'],
|
|
['8', '.', '.', '.', '6', '.', '.', '.', '3'],
|
|
['4', '.', '.', '8', '.', '3', '.', '.', '1'],
|
|
['7', '.', '.', '.', '2', '.', '.', '.', '6'],
|
|
['.', '6', '.', '.', '.', '.', '2', '8', '.'],
|
|
['.', '.', '.', '4', '1', '9', '.', '.', '5'],
|
|
['.', '.', '.', '.', '8', '.', '.', '7', '9']
|
|
]))
|
|
end
|
|
|
|
def test_invalid_row
|
|
assert_equal(false, is_valid_sudoku([
|
|
['5', '3', '.', '.', '7', '.', '.', '.', '.'],
|
|
['6', '.', '.', '1', '9', '5', '.', '.', '.'],
|
|
['.', '9', '8', '.', '.', '.', '.', '6', '.'],
|
|
['8', '.', '.', '.', '6', '.', '.', '.', '3'],
|
|
['4', '.', '.', '8', '.', '3', '.', '.', '1'],
|
|
['7', '.', '2', '.', '2', '.', '.', '.', '6'],
|
|
['.', '6', '.', '.', '.', '.', '2', '8', '.'],
|
|
['.', '.', '.', '4', '1', '9', '.', '.', '5'],
|
|
['.', '.', '.', '.', '8', '.', '.', '7', '9']
|
|
]))
|
|
end
|
|
|
|
def test_invalid_column
|
|
assert_equal(false, is_valid_sudoku([
|
|
['5', '3', '.', '.', '7', '.', '.', '.', '.'],
|
|
['6', '.', '.', '1', '9', '5', '.', '.', '.'],
|
|
['.', '9', '8', '.', '.', '.', '.', '6', '.'],
|
|
['8', '.', '.', '.', '6', '.', '.', '.', '3'],
|
|
['4', '.', '.', '8', '.', '3', '.', '.', '1'],
|
|
['7', '.', '.', '.', '2', '.', '.', '.', '6'],
|
|
['.', '6', '.', '.', '.', '.', '2', '8', '.'],
|
|
['.', '.', '.', '4', '1', '9', '.', '.', '5'],
|
|
['.', '.', '.', '.', '8', '3', '.', '7', '9']
|
|
]))
|
|
end
|
|
|
|
def test_invalid_sub_box
|
|
assert_equal(false, is_valid_sudoku([
|
|
['5', '3', '.', '.', '7', '.', '.', '.', '.'],
|
|
['6', '.', '.', '1', '9', '5', '.', '.', '.'],
|
|
['.', '9', '8', '.', '.', '.', '.', '6', '.'],
|
|
['8', '.', '.', '.', '6', '.', '.', '.', '3'],
|
|
['4', '.', '.', '8', '.', '3', '.', '.', '1'],
|
|
['7', '.', '.', '.', '2', '.', '.', '.', '6'],
|
|
['.', '6', '.', '.', '9', '.', '2', '8', '.'],
|
|
['.', '.', '.', '4', '1', '9', '.', '.', '5'],
|
|
['.', '.', '.', '.', '8', '.', '.', '7', '9']
|
|
]))
|
|
end
|
|
end
|