mirror of
https://github.com/furyfire/trueskill.git
synced 2025-01-16 01:47:39 +00:00
Adding "CoversNothing" to split integration tests from unittests.
This commit is contained in:
8
README
8
README
@ -6,4 +6,10 @@ For more details on how the algorithm works, see
|
|||||||
|
|
||||||
http://www.moserware.com/2010/03/computing-your-skill.html
|
http://www.moserware.com/2010/03/computing-your-skill.html
|
||||||
|
|
||||||
For details on how to use this project, see the accompanying unit tests with this project
|
For details on how to use this project, see the accompanying example snippets with this project.
|
||||||
|
|
||||||
|
For development Composer and the following packages are used (Recommended as Phars installed via Phive)
|
||||||
|
|
||||||
|
sudo phive install -g composer phpdocumentor infection phpcs phpcbf phploc phpbench overtrue/phplint
|
||||||
|
composer install
|
||||||
|
composer all
|
60
composer.lock
generated
60
composer.lock
generated
@ -2928,16 +2928,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/polyfill-ctype",
|
"name": "symfony/polyfill-ctype",
|
||||||
"version": "v1.28.0",
|
"version": "v1.29.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/polyfill-ctype.git",
|
"url": "https://github.com/symfony/polyfill-ctype.git",
|
||||||
"reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb"
|
"reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb",
|
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ef4d7e442ca910c4764bce785146269b30cb5fc4",
|
||||||
"reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb",
|
"reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -2951,9 +2951,6 @@
|
|||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
|
||||||
"dev-main": "1.28-dev"
|
|
||||||
},
|
|
||||||
"thanks": {
|
"thanks": {
|
||||||
"name": "symfony/polyfill",
|
"name": "symfony/polyfill",
|
||||||
"url": "https://github.com/symfony/polyfill"
|
"url": "https://github.com/symfony/polyfill"
|
||||||
@ -2990,7 +2987,7 @@
|
|||||||
"portable"
|
"portable"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/polyfill-ctype/tree/v1.28.0"
|
"source": "https://github.com/symfony/polyfill-ctype/tree/v1.29.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -3006,20 +3003,20 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2023-01-26T09:26:14+00:00"
|
"time": "2024-01-29T20:11:03+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/polyfill-intl-grapheme",
|
"name": "symfony/polyfill-intl-grapheme",
|
||||||
"version": "v1.28.0",
|
"version": "v1.29.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/polyfill-intl-grapheme.git",
|
"url": "https://github.com/symfony/polyfill-intl-grapheme.git",
|
||||||
"reference": "875e90aeea2777b6f135677f618529449334a612"
|
"reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/875e90aeea2777b6f135677f618529449334a612",
|
"url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/32a9da87d7b3245e09ac426c83d334ae9f06f80f",
|
||||||
"reference": "875e90aeea2777b6f135677f618529449334a612",
|
"reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -3030,9 +3027,6 @@
|
|||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
|
||||||
"dev-main": "1.28-dev"
|
|
||||||
},
|
|
||||||
"thanks": {
|
"thanks": {
|
||||||
"name": "symfony/polyfill",
|
"name": "symfony/polyfill",
|
||||||
"url": "https://github.com/symfony/polyfill"
|
"url": "https://github.com/symfony/polyfill"
|
||||||
@ -3071,7 +3065,7 @@
|
|||||||
"shim"
|
"shim"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.28.0"
|
"source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.29.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -3087,20 +3081,20 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2023-01-26T09:26:14+00:00"
|
"time": "2024-01-29T20:11:03+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/polyfill-intl-normalizer",
|
"name": "symfony/polyfill-intl-normalizer",
|
||||||
"version": "v1.28.0",
|
"version": "v1.29.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
|
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
|
||||||
"reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92"
|
"reference": "bc45c394692b948b4d383a08d7753968bed9a83d"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92",
|
"url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/bc45c394692b948b4d383a08d7753968bed9a83d",
|
||||||
"reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92",
|
"reference": "bc45c394692b948b4d383a08d7753968bed9a83d",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -3111,9 +3105,6 @@
|
|||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
|
||||||
"dev-main": "1.28-dev"
|
|
||||||
},
|
|
||||||
"thanks": {
|
"thanks": {
|
||||||
"name": "symfony/polyfill",
|
"name": "symfony/polyfill",
|
||||||
"url": "https://github.com/symfony/polyfill"
|
"url": "https://github.com/symfony/polyfill"
|
||||||
@ -3155,7 +3146,7 @@
|
|||||||
"shim"
|
"shim"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.28.0"
|
"source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.29.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -3171,20 +3162,20 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2023-01-26T09:26:14+00:00"
|
"time": "2024-01-29T20:11:03+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/polyfill-mbstring",
|
"name": "symfony/polyfill-mbstring",
|
||||||
"version": "v1.28.0",
|
"version": "v1.29.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/polyfill-mbstring.git",
|
"url": "https://github.com/symfony/polyfill-mbstring.git",
|
||||||
"reference": "42292d99c55abe617799667f454222c54c60e229"
|
"reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/42292d99c55abe617799667f454222c54c60e229",
|
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9773676c8a1bb1f8d4340a62efe641cf76eda7ec",
|
||||||
"reference": "42292d99c55abe617799667f454222c54c60e229",
|
"reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -3198,9 +3189,6 @@
|
|||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
|
||||||
"dev-main": "1.28-dev"
|
|
||||||
},
|
|
||||||
"thanks": {
|
"thanks": {
|
||||||
"name": "symfony/polyfill",
|
"name": "symfony/polyfill",
|
||||||
"url": "https://github.com/symfony/polyfill"
|
"url": "https://github.com/symfony/polyfill"
|
||||||
@ -3238,7 +3226,7 @@
|
|||||||
"shim"
|
"shim"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.28.0"
|
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.29.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -3254,7 +3242,7 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2023-07-28T09:04:16+00:00"
|
"time": "2024-01-29T20:11:03+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/service-contracts",
|
"name": "symfony/service-contracts",
|
||||||
|
@ -1,28 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
declare(strict_types=1);
|
|
||||||
|
|
||||||
namespace DNW\Skills\Tests\TrueSkill;
|
|
||||||
|
|
||||||
use DNW\Skills\TrueSkill\FactorGraphTrueSkillCalculator;
|
|
||||||
use DNW\Skills\SkillCalculatorSupportedOptions;
|
|
||||||
use PHPUnit\Framework\TestCase;
|
|
||||||
|
|
||||||
class FactorGraphTeamTrueSkillCalculatorTest extends TestCase
|
|
||||||
{
|
|
||||||
public function testFactorGraphTrueSkillCalculator(): void
|
|
||||||
{
|
|
||||||
$calculator = new FactorGraphTrueSkillCalculator();
|
|
||||||
|
|
||||||
TrueSkillCalculatorTests::testAllTwoPlayerScenarios($this, $calculator);
|
|
||||||
TrueSkillCalculatorTests::testAllTwoTeamScenarios($this, $calculator);
|
|
||||||
TrueSkillCalculatorTests::testAllMultipleTeamScenarios($this, $calculator);
|
|
||||||
TrueSkillCalculatorTests::testPartialPlayScenarios($this, $calculator);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testMethodisSupported(): void
|
|
||||||
{
|
|
||||||
$calculator = new FactorGraphTrueSkillCalculator();
|
|
||||||
$this->assertEquals(TRUE, $calculator->isSupported(SkillCalculatorSupportedOptions::PARTIAL_PLAY));
|
|
||||||
}
|
|
||||||
}
|
|
@ -8,10 +8,13 @@ use DNW\Skills\GameInfo;
|
|||||||
use DNW\Skills\Player;
|
use DNW\Skills\Player;
|
||||||
use DNW\Skills\Team;
|
use DNW\Skills\Team;
|
||||||
use DNW\Skills\TrueSkill\FactorGraphTrueSkillCalculator;
|
use DNW\Skills\TrueSkill\FactorGraphTrueSkillCalculator;
|
||||||
|
use DNW\Skills\SkillCalculatorSupportedOptions;
|
||||||
use PHPUnit\Framework\TestCase;
|
use PHPUnit\Framework\TestCase;
|
||||||
|
use PHPUnit\Framework\Attributes\CoversNothing;
|
||||||
|
|
||||||
class FactorGraphTrueSkillCalculatorTest extends TestCase
|
class FactorGraphTrueSkillCalculatorTest extends TestCase
|
||||||
{
|
{
|
||||||
|
#[CoversNothing]
|
||||||
public function testMicrosoftResearchExample(): void
|
public function testMicrosoftResearchExample(): void
|
||||||
{
|
{
|
||||||
$gameInfo = new GameInfo();
|
$gameInfo = new GameInfo();
|
||||||
@ -53,4 +56,21 @@ class FactorGraphTrueSkillCalculatorTest extends TestCase
|
|||||||
$this->assertEqualsWithDelta($expected[$player->getId()][1], $rating->getStandardDeviation(), 0.001);
|
$this->assertEqualsWithDelta($expected[$player->getId()][1], $rating->getStandardDeviation(), 0.001);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[CoversNothing]
|
||||||
|
public function testFactorGraphTrueSkillCalculator(): void
|
||||||
|
{
|
||||||
|
$calculator = new FactorGraphTrueSkillCalculator();
|
||||||
|
|
||||||
|
TrueSkillCalculatorTests::testAllTwoPlayerScenarios($this, $calculator);
|
||||||
|
TrueSkillCalculatorTests::testAllTwoTeamScenarios($this, $calculator);
|
||||||
|
TrueSkillCalculatorTests::testAllMultipleTeamScenarios($this, $calculator);
|
||||||
|
TrueSkillCalculatorTests::testPartialPlayScenarios($this, $calculator);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testMethodisSupported(): void
|
||||||
|
{
|
||||||
|
$calculator = new FactorGraphTrueSkillCalculator();
|
||||||
|
$this->assertEquals(TRUE, $calculator->isSupported(SkillCalculatorSupportedOptions::PARTIAL_PLAY));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,9 +6,11 @@ namespace DNW\Skills\Tests\TrueSkill;
|
|||||||
|
|
||||||
use DNW\Skills\TrueSkill\TwoPlayerTrueSkillCalculator;
|
use DNW\Skills\TrueSkill\TwoPlayerTrueSkillCalculator;
|
||||||
use PHPUnit\Framework\TestCase;
|
use PHPUnit\Framework\TestCase;
|
||||||
|
use PHPUnit\Framework\Attributes\CoversNothing;
|
||||||
|
|
||||||
class TwoPlayerTrueSkillCalculatorTest extends TestCase
|
class TwoPlayerTrueSkillCalculatorTest extends TestCase
|
||||||
{
|
{
|
||||||
|
#[CoversNothing]
|
||||||
public function testTwoPlayerTrueSkillCalculator(): void
|
public function testTwoPlayerTrueSkillCalculator(): void
|
||||||
{
|
{
|
||||||
$calculator = new TwoPlayerTrueSkillCalculator();
|
$calculator = new TwoPlayerTrueSkillCalculator();
|
||||||
|
@ -6,9 +6,11 @@ namespace DNW\Skills\Tests\TrueSkill;
|
|||||||
|
|
||||||
use DNW\Skills\TrueSkill\TwoTeamTrueSkillCalculator;
|
use DNW\Skills\TrueSkill\TwoTeamTrueSkillCalculator;
|
||||||
use PHPUnit\Framework\TestCase;
|
use PHPUnit\Framework\TestCase;
|
||||||
|
use PHPUnit\Framework\Attributes\CoversNothing;
|
||||||
|
|
||||||
class TwoTeamTrueSkillCalculatorTest extends TestCase
|
class TwoTeamTrueSkillCalculatorTest extends TestCase
|
||||||
{
|
{
|
||||||
|
#[CoversNothing]
|
||||||
public function testTwoTeamTrueSkillCalculator(): void
|
public function testTwoTeamTrueSkillCalculator(): void
|
||||||
{
|
{
|
||||||
$calculator = new TwoTeamTrueSkillCalculator();
|
$calculator = new TwoTeamTrueSkillCalculator();
|
||||||
|
Reference in New Issue
Block a user