1 $:.unshift File.join(File.dirname(__FILE__), "..")
3 require 'test/mock_player'
4 require 'shogi_server/board'
5 require 'shogi_server/game'
6 require 'shogi_server/player'
20 $league = ShogiServer::League.new(File.dirname(__FILE__))
21 $league.event = "test"
23 class TestGame < Test::Unit::TestCase
26 game_name = "hoge-1500-0"
27 board = ShogiServer::Board.new
36 game = ShogiServer::Game.new game_name, p1, p2, board
37 assert_equal "", game.last_move
44 Declaration:Jishogi 1.1
45 Game_ID:#{game.game_id}
58 P1-KY-KE-GI-KI-OU-KI-GI-KE-KY
59 P2 * -HI * * * * * -KA *
60 P3-FU-FU-FU-FU-FU-FU-FU-FU-FU
64 P7+FU+FU+FU+FU+FU+FU+FU+FU+FU
65 P8 * +KA * * * * * +HI *
66 P9+KY+KE+GI+KI+OU+KI+GI+KE+KY
71 assert_equal(p1_out, p1.out.first)
78 Declaration:Jishogi 1.1
79 Game_ID:#{game.game_id}
92 P1-KY-KE-GI-KI-OU-KI-GI-KE-KY
93 P2 * -HI * * * * * -KA *
94 P3-FU-FU-FU-FU-FU-FU-FU-FU-FU
98 P7+FU+FU+FU+FU+FU+FU+FU+FU+FU
99 P8 * +KA * * * * * +HI *
100 P9+KY+KE+GI+KI+OU+KI+GI+KE+KY
105 assert_equal(p2_out, p2.out.first)
107 file = Pathname.new(game.logfile)
109 assert_equal(<<EOF, log.gsub(/^\$START_TIME.*?\n/,''))
113 $EVENT:#{game.game_id}
114 P1-KY-KE-GI-KI-OU-KI-GI-KE-KY
115 P2 * -HI * * * * * -KA *
116 P3-FU-FU-FU-FU-FU-FU-FU-FU-FU
120 P7+FU+FU+FU+FU+FU+FU+FU+FU+FU
121 P8 * +KA * * * * * +HI *
122 P9+KY+KE+GI+KI+OU+KI+GI+KE+KY
127 def test_new_buoy_1_move
128 game_name = "buoyhoge-1500-0"
129 board = ShogiServer::Board.new
130 board.set_from_moves ["+7776FU"]
138 game = ShogiServer::Game.new game_name, p1, p2, board
139 assert_equal "+7776FU,T1", game.last_move
146 Declaration:Jishogi 1.1
147 Game_ID:#{game.game_id}
157 Least_Time_Per_Move:1
160 P1-KY-KE-GI-KI-OU-KI-GI-KE-KY
161 P2 * -HI * * * * * -KA *
162 P3-FU-FU-FU-FU-FU-FU-FU-FU-FU
165 P6 * * +FU * * * * * *
166 P7+FU+FU * +FU+FU+FU+FU+FU+FU
167 P8 * +KA * * * * * +HI *
168 P9+KY+KE+GI+KI+OU+KI+GI+KE+KY
173 assert_equal(p1_out, p1.out.first)
180 Declaration:Jishogi 1.1
181 Game_ID:#{game.game_id}
191 Least_Time_Per_Move:1
194 P1-KY-KE-GI-KI-OU-KI-GI-KE-KY
195 P2 * -HI * * * * * -KA *
196 P3-FU-FU-FU-FU-FU-FU-FU-FU-FU
199 P6 * * +FU * * * * * *
200 P7+FU+FU * +FU+FU+FU+FU+FU+FU
201 P8 * +KA * * * * * +HI *
202 P9+KY+KE+GI+KI+OU+KI+GI+KE+KY
207 assert_equal(p2_out, p2.out.first)
209 file = Pathname.new(game.logfile)
211 assert_equal(<<EOF, log.gsub(/^\$START_TIME.*?\n/,''))
215 $EVENT:#{game.game_id}
216 P1-KY-KE-GI-KI-OU-KI-GI-KE-KY
217 P2 * -HI * * * * * -KA *
218 P3-FU-FU-FU-FU-FU-FU-FU-FU-FU
222 P7+FU+FU+FU+FU+FU+FU+FU+FU+FU
223 P8 * +KA * * * * * +HI *
224 P9+KY+KE+GI+KI+OU+KI+GI+KE+KY
226 'buoy game starting with 1 moves
232 def test_new_buoy_2_moves
233 game_name = "buoyhoge-1500-0"
234 board = ShogiServer::Board.new
235 board.set_from_moves ["+7776FU", "-3334FU"]
243 game = ShogiServer::Game.new game_name, p1, p2, board
244 assert_equal "-3334FU,T1", game.last_move
251 Declaration:Jishogi 1.1
252 Game_ID:#{game.game_id}
262 Least_Time_Per_Move:1
265 P1-KY-KE-GI-KI-OU-KI-GI-KE-KY
266 P2 * -HI * * * * * -KA *
267 P3-FU-FU-FU-FU-FU-FU * -FU-FU
268 P4 * * * * * * -FU * *
270 P6 * * +FU * * * * * *
271 P7+FU+FU * +FU+FU+FU+FU+FU+FU
272 P8 * +KA * * * * * +HI *
273 P9+KY+KE+GI+KI+OU+KI+GI+KE+KY
278 assert_equal(p1_out, p1.out.first)
285 Declaration:Jishogi 1.1
286 Game_ID:#{game.game_id}
296 Least_Time_Per_Move:1
299 P1-KY-KE-GI-KI-OU-KI-GI-KE-KY
300 P2 * -HI * * * * * -KA *
301 P3-FU-FU-FU-FU-FU-FU * -FU-FU
302 P4 * * * * * * -FU * *
304 P6 * * +FU * * * * * *
305 P7+FU+FU * +FU+FU+FU+FU+FU+FU
306 P8 * +KA * * * * * +HI *
307 P9+KY+KE+GI+KI+OU+KI+GI+KE+KY
312 assert_equal(p2_out, p2.out.first)
314 file = Pathname.new(game.logfile)
316 assert_equal(<<EOF, log.gsub(/^\$START_TIME.*?\n/,''))
320 $EVENT:#{game.game_id}
321 P1-KY-KE-GI-KI-OU-KI-GI-KE-KY
322 P2 * -HI * * * * * -KA *
323 P3-FU-FU-FU-FU-FU-FU-FU-FU-FU
327 P7+FU+FU+FU+FU+FU+FU+FU+FU+FU
328 P8 * +KA * * * * * +HI *
329 P9+KY+KE+GI+KI+OU+KI+GI+KE+KY
331 'buoy game starting with 2 moves