+2013-12-21 Daigo Moriwaki <daigo at debian dot org>
+
+ * [shogi-server]
+ - shogi_server/pairing.rb: Impose penalty on matches between
+ likely kin players.
+
2013-12-15 Daigo Moriwaki <daigo at debian dot org>
* [webserver]
if p1.is_human? && p2.is_human?
ret += 800
end
+
+ # 2.3 a match with likely kin players
+ if (p1.player_id[0..6] == p2.player_id[0..6])
+ ret += 800
+ elsif (p1.player_id[0..3] == p2.player_id[0..3])
+ ret += 400
+ end
end
ret
@x.player_id = "x"
@x.name = "x"
+ @abcdefg1 = ShogiServer::BasicPlayer.new
+ @abcdefg1.player_id = "abcdefg1"
+ @abcdefg1.name = "abcdefg1"
+ @abcdefg1.rate = 2100
+ @abcdefg2 = ShogiServer::BasicPlayer.new
+ @abcdefg2.player_id = "abcdefg2"
+ @abcdefg2.name = "abcdefg2"
+ @abcdefg2.rate = 2200
+ @abcdxyz = ShogiServer::BasicPlayer.new
+ @abcdxyz.player_id = "abcdxyz"
+ @abcdxyz.name = "abcdxyz"
+ @abcdxyz.rate = 2300
+
$league.add(@a)
$league.add(@b)
$league.add(@c)
$league.add(@g)
$league.add(@h)
$league.add(@x)
+ $league.add(@abcdefg1)
+ $league.add(@abcdefg2)
+ $league.add(@abcdxyz)
end
def teardown
assert_equal(@b.rate-@a.rate+400+@h.rate-@g.rate+400, @pairing.calculate_diff_with_penalty(players, @history))
end
+ def test_calculate_diff_with_kin_4_players
+ players = [@abcdefg1, @abcdxyz]
+ assert_equal(@abcdxyz.rate - @abcdefg1.rate + 400, @pairing.calculate_diff_with_penalty(players,nil))
+ end
+
+ def test_calculate_diff_with_kin_7_players
+ players = [@abcdefg1, @abcdefg2]
+ assert_equal(@abcdefg2.rate - @abcdefg1.rate + 800, @pairing.calculate_diff_with_penalty(players,nil))
+ end
+
def test_get_player_rate_0
assert_equal(2150, @pairing.get_player_rate(@x, @history))