Add licence and installation instructions.
[kaya.git] / test / board / test_point_converter.rb
blobdd71f0fb06a06bd8feb104fd9d0db208e0f3e0be
1 # Copyright (c) 2009 Paolo Capriotti <p.capriotti@gmail.com>
2
3 # This program is free software; you can redistribute it and/or modify
4 # it under the terms of the GNU General Public License as published by
5 # the Free Software Foundation; either version 2 of the License, or
6 # (at your option) any later version.
8 require 'test/unit'
9 require 'board/point_converter'
10 require 'games/all'
12 class TestPointConverter < Test::Unit::TestCase
13   class FakeBoard
14     include PointConverter
15     
16     def initialize
17       @flipped = false
18       @game = Struct.new(:size).new(Point.new(8, 8))
19     end
20     
21     def unit
22       Point.new(10, 10)
23     end
24     
25     def flipped?
26       @flipped
27     end
28     
29     def flip!
30       @flipped = !flipped?
31     end
32   end
33   
34   def setup
35     @board = FakeBoard.new
36   end
37   
38   def test_to_logical
39     assert_equal Point.new(0, 0), @board.to_logical(Point.new(0, 0))
40     assert_equal Point.new(5, 4), @board.to_logical(Point.new(50, 40))
41     assert_equal Point.new(0, -1), @board.to_logical(Point.new(9, -3))
42     assert_equal Point.new(-2, 3), @board.to_logical(Point.new(-16, 31))
43   end
44   
45   def test_to_real
46     assert_equal Point.new(20, 80), @board.to_real(Point.new(2, 8))
47     assert_equal Point.new(0, 0), @board.to_real(Point.new(0, 0))
48     assert_equal Point.new(20, -40), @board.to_real(Point.new(2, -4))
49   end
50   
51   def test_to_logical_flipped
52     @board.flip!
53     assert_equal Point.new(7, 7), @board.to_logical(Point.new(0, 0))
54     assert_equal Point.new(2, 3), @board.to_logical(Point.new(50, 40))
55     assert_equal Point.new(7, 8), @board.to_logical(Point.new(9, -3))
56     assert_equal Point.new(9, 4), @board.to_logical(Point.new(-16, 31))  
57   end
58   
59   def test_to_real_flipped
60     @board.flip!
61     assert_equal Point.new(50, 80), @board.to_real(Point.new(2, -1))
62     assert_equal Point.new(70, 0), @board.to_real(Point.new(0, 7))
63     assert_equal Point.new(50, -40), @board.to_real(Point.new(2, 11))
64   end
65 end