@@ -81,7 +81,7 @@ def test_calculate_rankings(model) -> None:
8181 assert model ._calculate_rankings ([]) == []
8282 assert model ._calculate_rankings ([], []) == []
8383 assert model ._calculate_rankings ([a , b , c , d ]) == [0 , 1 , 2 , 3 ]
84- assert model ._calculate_rankings ([a , b ], [0 , 0 ]) == [0 , 1 ]
84+ assert model ._calculate_rankings ([a , b ], [0 , 0 ]) == [0 , 0 ]
8585 assert model ._calculate_rankings ([a , b , c , d ], [1 , 2 , 3 , 4 ]) == [0 , 1 , 2 , 3 ]
8686 assert model ._calculate_rankings ([a , b , c , d ], [1 , 1 , 3 , 4 ]) == [0 , 0 , 2 , 3 ]
8787 assert model ._calculate_rankings ([a , b , c , d ], [1 , 2 , 3 , 3 ]) == [0 , 1 , 2 , 2 ]
@@ -201,3 +201,24 @@ def test_ladder_pairs():
201201 assert _ladder_pairs ([1 , 2 ]) == [[2 ], [1 ]]
202202 assert _ladder_pairs ([1 , 2 , 3 ]) == [[2 ], [1 , 3 ], [2 ]]
203203 assert _ladder_pairs ([1 , 2 , 3 , 4 ]) == [[2 ], [1 , 3 ], [2 , 4 ], [3 ]]
204+
205+
206+ @pytest .mark .parametrize ("model" , MODELS )
207+ @pytest .mark .parametrize ("tie_score" , [- 1 , 0 , 0.1 , 10 , 13.4 ])
208+ def test_ties (model , tie_score ):
209+ model_instance = model ()
210+
211+ player_1 = model_instance .rating ()
212+ player_2 = model_instance .rating ()
213+
214+ result = model_instance .rate (
215+ [[player_1 ], [player_2 ]], scores = [tie_score , tie_score ]
216+ )
217+
218+ # Both players should have the same rating change
219+ assert (
220+ result [0 ][0 ].mu == result [1 ][0 ].mu
221+ ), f"Model { model .__name__ } with score { tie_score } : Players should have equal mu after tie"
222+ assert (
223+ result [0 ][0 ].sigma == result [1 ][0 ].sigma
224+ ), f"Model { model .__name__ } with score { tie_score } : Players should have equal sigma after tie"
0 commit comments