2 load '../shogi-server/shogi-server'
3 require '../shogi-server/pairing'
17 $logger = MockLogger.new
19 class TestFloodgate < Test::Unit::TestCase
21 @fg = ShogiServer::League::Floodgate.new(nil)
29 assert(ShogiServer::League::Floodgate.game_name?("floodgate-900-0"))
30 assert(ShogiServer::League::Floodgate.game_name?("floodgate-0-10"))
31 assert(!ShogiServer::League::Floodgate.game_name?("floodgat-900-0"))
36 class TestPairing < Test::Unit::TestCase
38 @pairing= ShogiServer::Pairing.new
39 @a = ShogiServer::BasicPlayer.new
43 @b = ShogiServer::BasicPlayer.new
47 @c = ShogiServer::BasicPlayer.new
53 def test_delete_most_playing_player
54 players = [@a, @b, @c]
55 @pairing.delete_most_playing_player(players)
56 assert_equal([@a,@b], players)
59 def test_delete_least_rate_player
60 players = [@a, @b, @c]
61 @pairing.delete_least_rate_player(players)
62 assert_equal([@b,@c], players)
66 class TestRandomPairing < Test::Unit::TestCase
68 @pairing= ShogiServer::RandomPairing.new
70 def @pairing.start_game(p1,p2)
73 @a = ShogiServer::BasicPlayer.new
76 @b = ShogiServer::BasicPlayer.new
79 @c = ShogiServer::BasicPlayer.new
84 def test_random_match_1
86 @pairing.match(players)
87 assert_equal(0, $called)
90 def test_random_match_2
92 @pairing.match(players)
93 assert_equal(1, $called)
96 def test_random_match_3
97 players = [@a, @b, @c]
98 @pairing.match(players)
99 assert_equal(1, $called)
103 class TestSwissPairing < Test::Unit::TestCase
105 @pairing= ShogiServer::SwissPairing.new
107 def @pairing.start_game(p1,p2)
110 @a = ShogiServer::BasicPlayer.new
115 @a.last_game_win = false
116 @b = ShogiServer::BasicPlayer.new
121 @b.last_game_win = true
122 @c = ShogiServer::BasicPlayer.new
127 @c.last_game_win = true
128 @d = ShogiServer::BasicPlayer.new
133 @d.last_game_win = true
137 return players.sort{|a,b| a.name <=> b.name}
140 def test_include_newbie
141 assert(@pairing.include_newbie?([@a]))
142 assert(!@pairing.include_newbie?([@b]))
143 assert(@pairing.include_newbie?([@b,@a]))
144 assert(!@pairing.include_newbie?([@b,@c]))
149 assert_equal(0, $pairs.size)
154 assert_equal(0, $pairs.size)
158 @pairing.match([@a,@b])
159 assert_equal(1, $pairs.size)
160 assert_equal(sort([@a,@b]), sort($pairs.first))
164 @pairing.match([@c,@b])
165 assert_equal(1, $pairs.size)
166 assert_equal(sort([@b,@c]), sort($pairs.first))
170 @pairing.match([@c,@b,@a])
171 assert_equal(1, $pairs.size)
172 assert_equal(sort([@b,@c]), sort($pairs.first))
176 @pairing.match([@c,@b,@a,@d])
177 assert_equal(2, $pairs.size)
178 assert_equal(sort([@b,@d]), sort($pairs.first))
179 assert_equal(sort([@a,@c]), sort($pairs.last))
183 class TestExcludeSacrifice < Test::Unit::TestCase
193 @obj = ShogiServer::ExcludeSacrifice.new(@dummy)
194 @a = ShogiServer::BasicPlayer.new
200 @a.last_game_win = false
201 @b = ShogiServer::BasicPlayer.new
202 @b.player_id = "gps500+e293220e3f8a3e59f79f6b0efffaa931"
207 @b.last_game_win = true
208 @c = ShogiServer::BasicPlayer.new
214 @c.last_game_win = true
219 assert_equal(1, @dummy.players.size)
224 assert_equal(0, @dummy.players.size)
229 assert_equal(2, @dummy.players.size)
233 @obj.match([@a, @b, @c])
234 assert_equal(2, @dummy.players.size)
239 assert_equal(2, @dummy.players.size)