Source

kakuro-cross-sums / solver / ruby / t / solve-board.rb

Full commit
#--
# Copyright (c) 2011 Shlomi Fish
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
# "Software"), to deal in the Software without restriction, including
# without limitation the rights to use, copy, modify, merge, publish,
# distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so, subject to
# the following conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#++
require "kakuro_solver/board"

class Object
    def ok()
        self.should == true
    end
    def not_ok()
        self.should == false
    end
end

describe "Parse 1" do
    before do
        @board = Kakuro::Board.new
        @board.parse(<<'EOF')
[\]    [\]      [29\]  [34\]   [\]      [21\]  [8\]     [\]    [\]
[\]    [10\17]  []     []      [3\3]    []     []       [\]    [\]
[\30]  []       [5]    []      []       [2]    []       [3\]   [11\]
[\16]  []       []     [6]     []       [3]    [12\11]  []     []
[\]    [4\5]    []     []      [13\10]  []     []       []     []
[\34]  []       [7]    []      [4]      []     []       [11\]  [\]
[\4]   []       []     [3\12]  []       []     [1]      []     [\]
[\]    [\]      [\6]   []      []       [\11]  []       []     [\]
[\]    [\]      [\3]   []      []       [\]    [\]      [\]    [\]
EOF
    end

    it "should merge constraints correctly" do
        @board.prepare()
        @board.merge_constraints()
        @board.filter_constraints_without_cells()
    end

end