bangkok 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/ChangeLog +5 -0
- data/Credits +6 -0
- data/README +227 -0
- data/Rakefile +83 -0
- data/TODO +26 -0
- data/bin/bangkok +40 -0
- data/examples/announcer.rb +71 -0
- data/examples/game.pgn +15 -0
- data/examples/program_changes.rb +17 -0
- data/install.rb +95 -0
- data/lib/bangkok.rb +2 -0
- data/lib/bangkok/board.rb +110 -0
- data/lib/bangkok/chessgame.rb +50 -0
- data/lib/bangkok/gamelistener.rb +181 -0
- data/lib/bangkok/info.rb +6 -0
- data/lib/bangkok/move.rb +106 -0
- data/lib/bangkok/piece.rb +243 -0
- data/lib/bangkok/square.rb +47 -0
- data/test/mock_game_listener.rb +22 -0
- data/test/test_piece.rb +106 -0
- data/test/test_square.rb +109 -0
- metadata +75 -0
data/test/test_square.rb
ADDED
@@ -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:
|