2 require 'games/chess/move'
4 class TestChessMove < Test::Unit::TestCase
5 def test_simple_move_fields
6 move = Chess::Move.new(Point.new(4, 6), Point.new(4, 4))
7 assert_equal Point.new(4, 6), move.src
8 assert_equal Point.new(4, 4), move.dst
9 assert_nil move.promotion
12 def test_promotion_move_fields
13 move = Chess::Move.new(Point.new(3, 1), Point.new(3, 0), :promotion => :knight)
14 assert_equal Point.new(3, 1), move.src
15 assert_equal Point.new(3, 0), move.dst
16 assert_equal :knight, move.promotion
20 move = Chess::Move.new(Point.new(3, 6), Point.new(3, 0))
21 assert_equal Point.new(0, -6), move.delta
25 move = Chess::Move.new(Point.new(2, 5), Point.new(6, 1))
26 assert_equal [Point.new(2, 5), Point.new(3, 4), Point.new(4, 3), Point.new(5, 2)], move.range.to_a
29 def test_range_unlimited
30 move = Chess::Move.new(Point.new(2, 5), Point.new(6, 0))
31 assert_not_nil move.range
35 move = Chess::Move.new(Point.new(2, 5), Point.new(5, 5))
36 assert !move.validated?
39 def test_validation_ok
40 move = Chess::Move.new(Point.new(2, 5), Point.new(5, 5))
45 assert move.validated?
49 def test_validation_failed
50 move = Chess::Move.new(Point.new(2, 5), Point.new(5, 5))
55 assert move.validated?
60 move = Chess::Move.new(Point.new(2, 5), Point.new(5, 5))
69 assert move.validated?