<?php namespace Moserware\Skills\Elo; require_once(dirname(__FILE__) . '/../../PHPSkills/Elo/EloRating.php'); require_once(dirname(__FILE__) . '/../../PHPSkills/GameInfo.php'); require_once(dirname(__FILE__) . '/../../PHPSkills/PairwiseComparison.php'); use Moserware\Skills\GameInfo; use Moserware\Skills\PairwiseComparison; class EloAssert { const ERROR_TOLERANCE = 0.1; public static function assertChessRating( $testClass, $twoPlayerEloCalculator, $player1BeforeRating, $player2BeforeRating, $player1Result, $player1AfterRating, $player2AfterRating) { $player1 = "Player1"; $player2 = "Player2"; $teams = array( array( $player1 => new EloRating($player1BeforeRating) ), array( $player2 => new EloRating($player2BeforeRating) ) ); $chessGameInfo = new GameInfo(1200, 0, 200); $ranks = PairwiseComparison::getRankFromComparison($player1Result); $result = $twoPlayerEloCalculator->calculateNewRatings( $chessGameInfo, $teams, $ranks); $testClass->assertEquals($player1AfterRating, $result[$player1]->getMean(), '', self::ERROR_TOLERANCE); $testClass->assertEquals($player2AfterRating, $result[$player2]->getMean(), '', self::ERROR_TOLERANCE); } } ?>