public void TestGetPlayerRating() { var testSubject = new EloRatingSystem(); var testResult = testSubject.GetPlayerRating(true, false, 1200, 1000, 20); Assert.AreEqual(1205, testResult.Item1); Assert.AreEqual(995, testResult.Item2); testResult = testSubject.GetPlayerRating(false, true, 1200, 1000, 20); Assert.AreEqual(1185, testResult.Item1); Assert.AreEqual(1015, testResult.Item2); }
public void BasicExample() { //an adjacency graph where [i,j], [j,i] would be the two choices // [i,j] playerA likes playerB and [j,i] playerB likes playerA var games = new[, ] { { 0, 0, 0, 1, 1 }, { 1, 0, 1, 1, 1 }, { 1, 0, 0, 0, 0 }, { 0, 1, 0, 0, 0 }, { 1, 0, 1, 1, 0 } }; var players = new[] { new EloPlayer("A"), new EloPlayer("B"), new EloPlayer("C"), new EloPlayer("D"), new EloPlayer("E") }; var testSubject = new EloRatingSystem(); testSubject.PlayGame(players, games); Assert.AreEqual(908D, players[0].Rating); Assert.AreEqual(1011D, players[1].Rating); Assert.AreEqual(843D, players[2].Rating); Assert.AreEqual(847D, players[3].Rating); Assert.AreEqual(955D, players[4].Rating); testSubject = new EloRatingSystem(true); testSubject.PlayGame(players, games); Assert.AreEqual(941D, players[0].Rating); Assert.AreEqual(1005D, players[1].Rating); Assert.AreEqual(843D, players[2].Rating); Assert.AreEqual(874D, players[3].Rating); Assert.AreEqual(965D, players[4].Rating); Console.WriteLine(string.Join(",", players.Select(p => p.ToString()))); }