bangkok 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,109 @@
1
+ require 'test/unit'
2
+ $LOAD_PATH[0, 0] = File.join(File.dirname(__FILE__), '..', 'lib')
3
+ require 'bangkok/square'
4
+
5
+ class SquareTest < Test::Unit::TestCase
6
+
7
+ def test_OFF_BOARD
8
+ assert_not_nil(Square::OFF_BOARD)
9
+ end
10
+
11
+ def test_equals
12
+ s1 = Square.new(3, 4)
13
+ s2 = Square.new('d5')
14
+ assert_equal(s1, s2)
15
+ assert(s1 == s2)
16
+
17
+ s3 = Square.new(0, 0)
18
+ assert(s1 != s3)
19
+ end
20
+
21
+ def test_empty_ctor
22
+ s = Square.new
23
+ assert_equal(Square::OFF_BOARD, s)
24
+ end
25
+
26
+ def test_ctors
27
+ s = Square.new
28
+ assert_nil(s.file)
29
+ assert_nil(s.rank)
30
+ assert_nil(s.color)
31
+
32
+ s = Square.new(1, 3)
33
+ assert_equal(1, s.file)
34
+ assert_equal(3, s.rank)
35
+ assert_equal('b4', s.to_s) # Just making sure I know what color should be
36
+ assert_equal(:black, s.color)
37
+
38
+ s1 = Square.new(s)
39
+ assert_equal(s, s1)
40
+
41
+ s = Square.new('a8')
42
+ assert_equal(0, s.file)
43
+ assert_equal(7, s.rank)
44
+ assert_equal(:white, s.color)
45
+
46
+ s = Square.new('g5')
47
+ assert_equal(6, s.file)
48
+ assert_equal(4, s.rank)
49
+ assert_equal(:black, s.color)
50
+
51
+ s = Square.new('d')
52
+ assert_equal(3, s.file)
53
+ assert_nil(s.rank)
54
+ assert_nil(s.color)
55
+
56
+ s = Square.new('4')
57
+ assert_nil(s.file)
58
+ assert_equal(3, s.rank)
59
+ assert_nil(s.color)
60
+
61
+ begin
62
+ Square.new(Time.new)
63
+ assert(false)
64
+ rescue
65
+ assert(true)
66
+ end
67
+ end
68
+
69
+ def test_on_board
70
+ s = Square.new
71
+ assert(!s.on_board?)
72
+
73
+ s = Square.new(1, 3)
74
+ assert(s.on_board?)
75
+
76
+ s1 = Square.new(s)
77
+ assert(s.on_board?)
78
+
79
+ s = Square.new('a8')
80
+ assert(s.on_board?)
81
+
82
+ s = Square.new('d')
83
+ assert(!s.on_board?)
84
+
85
+ s = Square.new('4')
86
+ assert(!s.on_board?)
87
+ end
88
+
89
+ def test_to_s
90
+ s = Square.new
91
+ assert_equal("<off-board>", s.to_s)
92
+
93
+ s = Square.new(1, 3)
94
+ assert_equal("b4", s.to_s)
95
+
96
+ s1 = Square.new(s)
97
+ assert_equal("b4", s.to_s)
98
+
99
+ s = Square.new('a8')
100
+ assert_equal("a8", s.to_s)
101
+
102
+ s = Square.new('d')
103
+ assert_equal("<off-board>", s.to_s)
104
+
105
+ s = Square.new('4')
106
+ assert_equal("<off-board>", s.to_s)
107
+ end
108
+
109
+ end
metadata ADDED
@@ -0,0 +1,75 @@
1
+ --- !ruby/object:Gem::Specification
2
+ rubygems_version: 0.8.8
3
+ specification_version: 1
4
+ name: bangkok
5
+ version: !ruby/object:Gem::Version
6
+ version: 0.1.0
7
+ date: 2005-03-25
8
+ summary: Chess game file reader and player; can turn games into MIDI files
9
+ require_paths:
10
+ - lib
11
+ email: jimm@io.com
12
+ homepage: http://bangkok.rubyforge.org
13
+ rubyforge_project: bangkok
14
+ description: "Bangkok can read chess game descriptions and re-play the games. Notice of events
15
+ (moves, captures, checks, etc.) are sent to a listener. Bangkok comes with a
16
+ listener that generates a MIDI file. In other words, the chess game is turned
17
+ into music."
18
+ autorequire: bangkok
19
+ default_executable:
20
+ bindir: bin
21
+ has_rdoc: true
22
+ required_ruby_version: !ruby/object:Gem::Version::Requirement
23
+ requirements:
24
+ -
25
+ - ">"
26
+ - !ruby/object:Gem::Version
27
+ version: 0.0.0
28
+ version:
29
+ platform: ruby
30
+ authors:
31
+ - Jim Menard
32
+ files:
33
+ - ChangeLog
34
+ - Credits
35
+ - README
36
+ - Rakefile
37
+ - TODO
38
+ - examples/announcer.rb
39
+ - examples/game.pgn
40
+ - examples/program_changes.rb
41
+ - install.rb
42
+ - lib/bangkok.rb
43
+ - lib/bangkok/board.rb
44
+ - lib/bangkok/chessgame.rb
45
+ - lib/bangkok/gamelistener.rb
46
+ - lib/bangkok/info.rb
47
+ - lib/bangkok/move.rb
48
+ - lib/bangkok/piece.rb
49
+ - lib/bangkok/square.rb
50
+ - test/mock_game_listener.rb
51
+ - test/test_piece.rb
52
+ - test/test_square.rb
53
+ test_files: []
54
+ rdoc_options:
55
+ - "--main"
56
+ - README
57
+ extra_rdoc_files:
58
+ - README
59
+ - TODO
60
+ executables:
61
+ - bangkok
62
+ extensions: []
63
+ requirements:
64
+ - midilib
65
+ dependencies:
66
+ - !ruby/object:Gem::Dependency
67
+ name: midilib
68
+ version_requirement:
69
+ version_requirements: !ruby/object:Gem::Version::Requirement
70
+ requirements:
71
+ -
72
+ - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: 0.8.4
75
+ version: