1 $:.unshift File.join(File.dirname(__FILE__), "..")
4 require 'shogi_server/player'
5 require 'shogi_server/pairing'
6 require 'shogi_server/league/floodgate'
20 $logger = MockLogger.new
29 class TestFloodgate < Test::Unit::TestCase
31 @fg = ShogiServer::League::Floodgate.new(nil)
39 assert(ShogiServer::League::Floodgate.game_name?("floodgate-900-0"))
40 assert(ShogiServer::League::Floodgate.game_name?("floodgate-0-10"))
41 assert(!ShogiServer::League::Floodgate.game_name?("floodgat-900-0"))
46 class TestPairing < Test::Unit::TestCase
48 @pairing= ShogiServer::Pairing.new
50 def @pairing.start_game(p1,p2)
53 @a = ShogiServer::BasicPlayer.new
58 @a.last_game_win = false
59 @b = ShogiServer::BasicPlayer.new
64 @b.last_game_win = true
65 @c = ShogiServer::BasicPlayer.new
70 @c.last_game_win = true
71 @d = ShogiServer::BasicPlayer.new
76 @d.last_game_win = true
79 def test_include_newbie
80 assert(@pairing.include_newbie?([@a]))
81 assert(!@pairing.include_newbie?([@b]))
82 assert(@pairing.include_newbie?([@b,@a]))
83 assert(!@pairing.include_newbie?([@b,@c]))
87 class TestStartGame < Test::Unit::TestCase
89 @pairing= ShogiServer::StartGame.new
91 def @pairing.start_game(p1,p2)
94 @a = ShogiServer::BasicPlayer.new
99 @b = ShogiServer::BasicPlayer.new
104 @c = ShogiServer::BasicPlayer.new
109 @d = ShogiServer::BasicPlayer.new
116 def test_match_two_players
118 @pairing.match(players)
119 assert_equal(1, $called)
122 def test_match_one_player
124 @pairing.match(players)
125 assert_equal(0, $called)
128 def test_match_zero_player
130 @pairing.match(players)
131 assert_equal(0, $called)
134 def test_match_three_players
136 @pairing.match(players)
137 assert_equal(1, $called)
140 def test_match_four_players
141 players = [@a,@b,@c,@d]
142 @pairing.match(players)
143 assert_equal(2, $called)
147 class TestDeleteMostPlayingPlayer < Test::Unit::TestCase
149 @pairing= ShogiServer::DeleteMostPlayingPlayer.new
150 @a = ShogiServer::BasicPlayer.new
154 @b = ShogiServer::BasicPlayer.new
158 @c = ShogiServer::BasicPlayer.new
165 players = [@a, @b, @c]
166 @pairing.match(players)
167 assert_equal([@a,@b], players)
171 class TestMakeEven < Test::Unit::TestCase
174 @pairing= ShogiServer::MakeEven.new
175 @a = ShogiServer::BasicPlayer.new
180 @b = ShogiServer::BasicPlayer.new
185 @c = ShogiServer::BasicPlayer.new
194 @pairing.match(players)
195 assert_equal([@a,@b], players)
199 players = [@a, @b, @c]
200 @pairing.match(players)
201 assert_equal([@a, @b], players)
205 class TestLeastRatePlayer < Test::Unit::TestCase
207 @pairing= ShogiServer::DeleteLeastRatePlayer.new
208 @a = ShogiServer::BasicPlayer.new
212 @b = ShogiServer::BasicPlayer.new
216 @c = ShogiServer::BasicPlayer.new
223 players = [@a, @b, @c]
224 @pairing.match(players)
225 assert_equal([@b,@c], players)
229 class TestRandomize < Test::Unit::TestCase
231 srand(10) # makes the random number generator determistic
232 @pairing = ShogiServer::Randomize.new
233 @a = ShogiServer::BasicPlayer.new
237 @b = ShogiServer::BasicPlayer.new
241 @c = ShogiServer::BasicPlayer.new
248 players = [@a, @b, @c]
249 @pairing.match(players)
250 assert_equal([@b,@a,@c], players)
254 class TestSortByRate < Test::Unit::TestCase
256 @pairing = ShogiServer::SortByRate.new
257 @a = ShogiServer::BasicPlayer.new
262 @b = ShogiServer::BasicPlayer.new
267 @c = ShogiServer::BasicPlayer.new
275 players = [@a, @b, @c]
276 @pairing.match(players)
277 assert_equal([@c,@a,@b], players)
281 class TestSortByRateWithRandomness < Test::Unit::TestCase
283 srand(10) # makes the random number generator determistic
284 @pairing = ShogiServer::SortByRateWithRandomness.new(1200, 2400)
285 @a = ShogiServer::BasicPlayer.new
290 @b = ShogiServer::BasicPlayer.new
295 @c = ShogiServer::BasicPlayer.new
303 players = [@a, @b, @c]
304 @pairing.match(players)
305 assert_equal([@c,@b,@a], players)
309 class TestExcludeSacrifice < Test::Unit::TestCase
311 @obj = ShogiServer::ExcludeSacrificeGps500.new
312 @a = ShogiServer::BasicPlayer.new
318 @a.last_game_win = false
319 @b = ShogiServer::BasicPlayer.new
320 @b.player_id = "gps500+e293220e3f8a3e59f79f6b0efffaa931"
325 @b.last_game_win = true
326 @c = ShogiServer::BasicPlayer.new
332 @c.last_game_win = true
338 assert_equal([@a], players)
344 assert_equal([], players)
350 assert_equal([@a,@b], players)
354 players = [@a, @b, @c]
356 assert_equal([@a, @c], players)
362 assert_equal([@a,@c], players)
367 class TestFloodgateHistory < Test::Unit::TestCase
369 @file = Pathname.new(File.join(File.dirname(__FILE__), "floodgate_history.yaml"))
370 @history = ShogiServer::League::Floodgate::History.new @file
374 @file.delete if @file.exist?
378 file = Pathname.new(File.join(File.dirname(__FILE__), "hoge.yaml"))
379 history = ShogiServer::League::Floodgate::History.new file
382 file.delete if file.exist?