Start of the long road towards debugging it to work

This commit is contained in:
Jeff Moser 2010-09-23 22:14:56 -04:00
parent 99e1adf7df
commit f081a6a70a
5 changed files with 41 additions and 14 deletions

@ -1,13 +1,13 @@
<?php <?php
namespace Moserware\Skills\FactorGraphs; namespace Moserware\Skills\FactorGraphs;
require_once(dirname(__FILE__) . "../Guard.php"); require_once(dirname(__FILE__) . "./../Guard.php");
require_once(dirname(__FILE__) . "../HashMap.php"); require_once(dirname(__FILE__) . "./../HashMap.php");
use Moserware\Skills\Guard; use Moserware\Skills\Guard;
use Moserware\Skills\HashMap; use Moserware\Skills\HashMap;
class Factor abstract class Factor
{ {
private $_messages = array(); private $_messages = array();
private $_messageToVariableBinding; private $_messageToVariableBinding;
@ -78,11 +78,11 @@ class Factor
public abstract function createVariableToMessageBinding($variable); public abstract function createVariableToMessageBinding($variable);
protected function createVariableToMessageBinding($variable, $message) protected function createVariableToMessageBindingWithMessage($variable, $message)
{ {
$index = count($this->_messages); $index = count($this->_messages);
$this->_messages[] = $message; $this->_messages[] = $message;
$this->_messageToVariableBinding->setValue($message) = $variable; $this->_messageToVariableBinding->setValue($message, $variable);
$this->_variables[] = $variable; $this->_variables[] = $variable;
return $message; return $message;
} }

@ -2,7 +2,7 @@
namespace Moserware\Skills\FactorGraphs; namespace Moserware\Skills\FactorGraphs;
require_once(dirname(__FILE__) . "Factor.php"); require_once(dirname(__FILE__) . "./Factor.php");
/// <summary> /// <summary>
/// Helper class for computing the factor graph's normalization constant. /// Helper class for computing the factor graph's normalization constant.

@ -30,7 +30,7 @@ class ScheduleStep extends Schedule
$this->_index = $index; $this->_index = $index;
} }
public function visit($depth, $maxDepth) public function visit($depth = -1, $maxDepth = 0)
{ {
$delta = $this->_factor->updateMessageIndex($this->_index); $delta = $this->_factor->updateMessageIndex($this->_index);
return $delta; return $delta;
@ -47,7 +47,7 @@ class ScheduleSequence extends Schedule
$this->_schedules = $schedules; $this->_schedules = $schedules;
} }
public function visit($depth, $maxDepth) public function visit($depth = -1, $maxDepth = 0)
{ {
$maxDelta = 0; $maxDelta = 0;
@ -72,7 +72,7 @@ class ScheduleLoop extends Schedule
$this->_maxDelta = $maxDelta; $this->_maxDelta = $maxDelta;
} }
public function visit($depth, $maxDepth) public function visit($depth = -1, $maxDepth = 0)
{ {
$totalIterations = 1; $totalIterations = 1;
$delta = $this->_scheduleToLoop->visit($depth + 1, $maxDepth); $delta = $this->_scheduleToLoop->visit($depth + 1, $maxDepth);

@ -1,11 +1,11 @@
<?php <?php
namespace Moserware\Skills\TrueSkill; namespace Moserware\Skills\TrueSkill;
require_once(dirname(__FILE__) . '../Rating.php'); require_once(dirname(__FILE__) . './../Rating.php');
require_once(dirname(__FILE__) . '../FactorGraphs/FactorList.php'); require_once(dirname(__FILE__) . './../FactorGraphs/FactorList.php');
require_once(dirname(__FILE__) . '../FactorGraphs/Schedule.php'); require_once(dirname(__FILE__) . './../FactorGraphs/Schedule.php');
require_once(dirname(__FILE__) . '../FactorGraphs/VariableFactory.php'); require_once(dirname(__FILE__) . './../FactorGraphs/VariableFactory.php');
require_once(dirname(__FILE__) . '../Numerics/GaussianDistribution.php'); require_once(dirname(__FILE__) . './../Numerics/GaussianDistribution.php');
require_once(dirname(__FILE__) . '/Layers/PlayerPriorValuesToSkillsLayer.php'); require_once(dirname(__FILE__) . '/Layers/PlayerPriorValuesToSkillsLayer.php');
require_once(dirname(__FILE__) . '/Layers/PlayerSkillsToPerformancesLayer.php'); require_once(dirname(__FILE__) . '/Layers/PlayerSkillsToPerformancesLayer.php');
require_once(dirname(__FILE__) . '/Layers/IteratedTeamDifferencesInnerLayer.php'); require_once(dirname(__FILE__) . '/Layers/IteratedTeamDifferencesInnerLayer.php');

@ -0,0 +1,27 @@
<?php
require_once 'PHPUnit/Framework.php';
require_once 'PHPUnit/TextUI/TestRunner.php';
require_once(dirname(__FILE__) . '/../../PHPSkills/TrueSkill/FactorGraphTrueSkillCalculator.php');
require_once(dirname(__FILE__) . '/TrueSkillCalculatorTests.php');
use \PHPUnit_Framework_TestCase;
use Moserware\Skills\TrueSkill\FactorGraphTrueSkillCalculator;
class FactorGraphTrueSkillCalculatorTest extends PHPUnit_Framework_TestCase
{
public function testFactorGraphTrueSkillCalculator()
{
$calculator = new FactorGraphTrueSkillCalculator();
// We only support two players
TrueSkillCalculatorTests::testAllTwoPlayerScenarios($this, $calculator);
TrueSkillCalculatorTests::testAllTwoTeamScenarios($this, $calculator);
}
}
$testSuite = new \PHPUnit_Framework_TestSuite();
$testSuite->addTest( new TwoTeamTrueSkillCalculatorTest("testFactorGraphTrueSkillCalculator"));
\PHPUnit_TextUI_TestRunner::run($testSuite);
?>