Compare commits

..

No commits in common. "5dc0c7058dd0a1d99802d7e34d4622544796a87b" and "de6a414d2b50cc6846c30881d614d8d6b72af4d4" have entirely different histories.

12 changed files with 196 additions and 128 deletions

@ -10,10 +10,8 @@ use DNW\Skills\TrueSkill\FactorGraphTrueSkillCalculator;
use DNW\Skills\GameInfo; use DNW\Skills\GameInfo;
use DNW\Skills\Player; use DNW\Skills\Player;
use DNW\Skills\Team; use DNW\Skills\Team;
use DNW\Skills\Teams;
/**
* Basic Benchmarks.
*/
class BasicBench class BasicBench
{ {
/** /**

@ -51,7 +51,6 @@
"@benchmark", "@benchmark",
"@lint", "@lint",
"@analyze", "@analyze",
"@metrics",
"@html" "@html"
] ]
} }

276
composer.lock generated

@ -242,16 +242,16 @@
}, },
{ {
"name": "composer/pcre", "name": "composer/pcre",
"version": "3.1.4", "version": "3.1.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/composer/pcre.git", "url": "https://github.com/composer/pcre.git",
"reference": "04229f163664973f68f38f6f73d917799168ef24" "reference": "5b16e25a5355f1f3afdfc2f954a0a80aec4826a8"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/composer/pcre/zipball/04229f163664973f68f38f6f73d917799168ef24", "url": "https://api.github.com/repos/composer/pcre/zipball/5b16e25a5355f1f3afdfc2f954a0a80aec4826a8",
"reference": "04229f163664973f68f38f6f73d917799168ef24", "reference": "5b16e25a5355f1f3afdfc2f954a0a80aec4826a8",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -293,7 +293,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/composer/pcre/issues", "issues": "https://github.com/composer/pcre/issues",
"source": "https://github.com/composer/pcre/tree/3.1.4" "source": "https://github.com/composer/pcre/tree/3.1.3"
}, },
"funding": [ "funding": [
{ {
@ -309,7 +309,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2024-05-27T13:40:54+00:00" "time": "2024-03-19T10:26:25+00:00"
}, },
{ {
"name": "composer/semver", "name": "composer/semver",
@ -706,39 +706,40 @@
}, },
{ {
"name": "league/csv", "name": "league/csv",
"version": "9.16.0", "version": "9.15.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/thephpleague/csv.git", "url": "https://github.com/thephpleague/csv.git",
"reference": "998280c6c34bd67d8125fdc8b45bae28d761b440" "reference": "fa7e2441c0bc9b2360f4314fd6c954f7ff40d435"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/thephpleague/csv/zipball/998280c6c34bd67d8125fdc8b45bae28d761b440", "url": "https://api.github.com/repos/thephpleague/csv/zipball/fa7e2441c0bc9b2360f4314fd6c954f7ff40d435",
"reference": "998280c6c34bd67d8125fdc8b45bae28d761b440", "reference": "fa7e2441c0bc9b2360f4314fd6c954f7ff40d435",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"ext-filter": "*", "ext-filter": "*",
"ext-json": "*",
"ext-mbstring": "*",
"php": "^8.1.2" "php": "^8.1.2"
}, },
"require-dev": { "require-dev": {
"doctrine/collections": "^2.2.2", "doctrine/collections": "^2.1.4",
"ext-dom": "*", "ext-dom": "*",
"ext-xdebug": "*", "ext-xdebug": "*",
"friendsofphp/php-cs-fixer": "^3.57.1", "friendsofphp/php-cs-fixer": "^v3.22.0",
"phpbench/phpbench": "^1.2.15", "phpbench/phpbench": "^1.2.15",
"phpstan/phpstan": "^1.11.1", "phpstan/phpstan": "^1.10.57",
"phpstan/phpstan-deprecation-rules": "^1.2.0", "phpstan/phpstan-deprecation-rules": "^1.1.4",
"phpstan/phpstan-phpunit": "^1.4.0", "phpstan/phpstan-phpunit": "^1.3.15",
"phpstan/phpstan-strict-rules": "^1.6.0", "phpstan/phpstan-strict-rules": "^1.5.2",
"phpunit/phpunit": "^10.5.16 || ^11.1.3", "phpunit/phpunit": "^10.5.9",
"symfony/var-dumper": "^6.4.6 || ^7.0.7" "symfony/var-dumper": "^6.4.2"
}, },
"suggest": { "suggest": {
"ext-dom": "Required to use the XMLConverter and the HTMLConverter classes", "ext-dom": "Required to use the XMLConverter and the HTMLConverter classes",
"ext-iconv": "Needed to ease transcoding CSV using iconv stream filters", "ext-iconv": "Needed to ease transcoding CSV using iconv stream filters"
"ext-mbstring": "Needed to ease transcoding CSV using mb stream filters"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
@ -790,20 +791,20 @@
"type": "github" "type": "github"
} }
], ],
"time": "2024-05-24T11:04:54+00:00" "time": "2024-02-20T20:00:00+00:00"
}, },
{ {
"name": "myclabs/deep-copy", "name": "myclabs/deep-copy",
"version": "1.12.0", "version": "1.11.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/myclabs/DeepCopy.git", "url": "https://github.com/myclabs/DeepCopy.git",
"reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c" "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c", "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c",
"reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c", "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -811,12 +812,11 @@
}, },
"conflict": { "conflict": {
"doctrine/collections": "<1.6.8", "doctrine/collections": "<1.6.8",
"doctrine/common": "<2.13.3 || >=3 <3.2.2" "doctrine/common": "<2.13.3 || >=3,<3.2.2"
}, },
"require-dev": { "require-dev": {
"doctrine/collections": "^1.6.8", "doctrine/collections": "^1.6.8",
"doctrine/common": "^2.13.3 || ^3.2.2", "doctrine/common": "^2.13.3 || ^3.2.2",
"phpspec/prophecy": "^1.10",
"phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13"
}, },
"type": "library", "type": "library",
@ -842,7 +842,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/myclabs/DeepCopy/issues", "issues": "https://github.com/myclabs/DeepCopy/issues",
"source": "https://github.com/myclabs/DeepCopy/tree/1.12.0" "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1"
}, },
"funding": [ "funding": [
{ {
@ -850,7 +850,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2024-06-12T14:39:25+00:00" "time": "2023-03-08T13:26:56+00:00"
}, },
{ {
"name": "netresearch/jsonmapper", "name": "netresearch/jsonmapper",
@ -1330,16 +1330,16 @@
}, },
{ {
"name": "phpstan/phpdoc-parser", "name": "phpstan/phpdoc-parser",
"version": "1.29.1", "version": "1.29.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/phpstan/phpdoc-parser.git", "url": "https://github.com/phpstan/phpdoc-parser.git",
"reference": "fcaefacf2d5c417e928405b71b400d4ce10daaf4" "reference": "536889f2b340489d328f5ffb7b02bb6b183ddedc"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/fcaefacf2d5c417e928405b71b400d4ce10daaf4", "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/536889f2b340489d328f5ffb7b02bb6b183ddedc",
"reference": "fcaefacf2d5c417e928405b71b400d4ce10daaf4", "reference": "536889f2b340489d328f5ffb7b02bb6b183ddedc",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -1371,22 +1371,22 @@
"description": "PHPDoc parser with support for nullable, intersection and generic types", "description": "PHPDoc parser with support for nullable, intersection and generic types",
"support": { "support": {
"issues": "https://github.com/phpstan/phpdoc-parser/issues", "issues": "https://github.com/phpstan/phpdoc-parser/issues",
"source": "https://github.com/phpstan/phpdoc-parser/tree/1.29.1" "source": "https://github.com/phpstan/phpdoc-parser/tree/1.29.0"
}, },
"time": "2024-05-31T08:52:43+00:00" "time": "2024-05-06T12:04:23+00:00"
}, },
{ {
"name": "phpstan/phpstan", "name": "phpstan/phpstan",
"version": "1.11.5", "version": "1.11.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/phpstan/phpstan.git", "url": "https://github.com/phpstan/phpstan.git",
"reference": "490f0ae1c92b082f154681d7849aee776a7c1443" "reference": "e524358f930e41a2b4cca1320e3b04fc26b39e0b"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/490f0ae1c92b082f154681d7849aee776a7c1443", "url": "https://api.github.com/repos/phpstan/phpstan/zipball/e524358f930e41a2b4cca1320e3b04fc26b39e0b",
"reference": "490f0ae1c92b082f154681d7849aee776a7c1443", "reference": "e524358f930e41a2b4cca1320e3b04fc26b39e0b",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -1431,20 +1431,20 @@
"type": "github" "type": "github"
} }
], ],
"time": "2024-06-17T15:10:54+00:00" "time": "2024-05-15T08:00:59+00:00"
}, },
{ {
"name": "phpunit/php-code-coverage", "name": "phpunit/php-code-coverage",
"version": "10.1.15", "version": "10.1.14",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
"reference": "5da8b1728acd1e6ffdf2ff32ffbdfd04307f26ae" "reference": "e3f51450ebffe8e0efdf7346ae966a656f7d5e5b"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/5da8b1728acd1e6ffdf2ff32ffbdfd04307f26ae", "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/e3f51450ebffe8e0efdf7346ae966a656f7d5e5b",
"reference": "5da8b1728acd1e6ffdf2ff32ffbdfd04307f26ae", "reference": "e3f51450ebffe8e0efdf7346ae966a656f7d5e5b",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -1501,7 +1501,7 @@
"support": { "support": {
"issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
"security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy",
"source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.15" "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.14"
}, },
"funding": [ "funding": [
{ {
@ -1509,7 +1509,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2024-06-29T08:25:15+00:00" "time": "2024-03-12T15:33:41+00:00"
}, },
{ {
"name": "phpunit/php-file-iterator", "name": "phpunit/php-file-iterator",
@ -1756,16 +1756,16 @@
}, },
{ {
"name": "phpunit/phpunit", "name": "phpunit/phpunit",
"version": "10.5.24", "version": "10.5.20",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git", "url": "https://github.com/sebastianbergmann/phpunit.git",
"reference": "5f124e3e3e561006047b532fd0431bf5bb6b9015" "reference": "547d314dc24ec1e177720d45c6263fb226cc2ae3"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/5f124e3e3e561006047b532fd0431bf5bb6b9015", "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/547d314dc24ec1e177720d45c6263fb226cc2ae3",
"reference": "5f124e3e3e561006047b532fd0431bf5bb6b9015", "reference": "547d314dc24ec1e177720d45c6263fb226cc2ae3",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -1837,7 +1837,7 @@
"support": { "support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues", "issues": "https://github.com/sebastianbergmann/phpunit/issues",
"security": "https://github.com/sebastianbergmann/phpunit/security/policy", "security": "https://github.com/sebastianbergmann/phpunit/security/policy",
"source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.24" "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.20"
}, },
"funding": [ "funding": [
{ {
@ -1853,7 +1853,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2024-06-20T13:09:54+00:00" "time": "2024-04-24T06:32:35+00:00"
}, },
{ {
"name": "psalm/plugin-phpunit", "name": "psalm/plugin-phpunit",
@ -2020,16 +2020,16 @@
}, },
{ {
"name": "rector/rector", "name": "rector/rector",
"version": "1.1.1", "version": "1.1.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/rectorphp/rector.git", "url": "https://github.com/rectorphp/rector.git",
"reference": "c930cdb21294f10955ddfc31b720971e8333943d" "reference": "556509e2dcf527369892b7d411379c4a02f31859"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/rectorphp/rector/zipball/c930cdb21294f10955ddfc31b720971e8333943d", "url": "https://api.github.com/repos/rectorphp/rector/zipball/556509e2dcf527369892b7d411379c4a02f31859",
"reference": "c930cdb21294f10955ddfc31b720971e8333943d", "reference": "556509e2dcf527369892b7d411379c4a02f31859",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2067,7 +2067,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/rectorphp/rector/issues", "issues": "https://github.com/rectorphp/rector/issues",
"source": "https://github.com/rectorphp/rector/tree/1.1.1" "source": "https://github.com/rectorphp/rector/tree/1.1.0"
}, },
"funding": [ "funding": [
{ {
@ -2075,7 +2075,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2024-06-21T07:51:17+00:00" "time": "2024-05-18T09:40:27+00:00"
}, },
{ {
"name": "sebastian/cli-parser", "name": "sebastian/cli-parser",
@ -3063,16 +3063,16 @@
}, },
{ {
"name": "symfony/console", "name": "symfony/console",
"version": "v7.1.2", "version": "v7.0.7",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/console.git", "url": "https://github.com/symfony/console.git",
"reference": "0aa29ca177f432ab68533432db0de059f39c92ae" "reference": "c981e0e9380ce9f146416bde3150c79197ce9986"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/console/zipball/0aa29ca177f432ab68533432db0de059f39c92ae", "url": "https://api.github.com/repos/symfony/console/zipball/c981e0e9380ce9f146416bde3150c79197ce9986",
"reference": "0aa29ca177f432ab68533432db0de059f39c92ae", "reference": "c981e0e9380ce9f146416bde3150c79197ce9986",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3136,7 +3136,7 @@
"terminal" "terminal"
], ],
"support": { "support": {
"source": "https://github.com/symfony/console/tree/v7.1.2" "source": "https://github.com/symfony/console/tree/v7.0.7"
}, },
"funding": [ "funding": [
{ {
@ -3152,7 +3152,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2024-06-28T10:03:55+00:00" "time": "2024-04-18T09:29:19+00:00"
}, },
{ {
"name": "symfony/deprecation-contracts", "name": "symfony/deprecation-contracts",
@ -3223,24 +3223,22 @@
}, },
{ {
"name": "symfony/filesystem", "name": "symfony/filesystem",
"version": "v7.1.2", "version": "v7.0.7",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/filesystem.git", "url": "https://github.com/symfony/filesystem.git",
"reference": "92a91985250c251de9b947a14bb2c9390b1a562c" "reference": "cc168be6fbdcdf3401f50ae863ee3818ed4338f5"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/filesystem/zipball/92a91985250c251de9b947a14bb2c9390b1a562c", "url": "https://api.github.com/repos/symfony/filesystem/zipball/cc168be6fbdcdf3401f50ae863ee3818ed4338f5",
"reference": "92a91985250c251de9b947a14bb2c9390b1a562c", "reference": "cc168be6fbdcdf3401f50ae863ee3818ed4338f5",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=8.2", "php": ">=8.2",
"symfony/polyfill-ctype": "~1.8", "symfony/polyfill-ctype": "~1.8",
"symfony/polyfill-mbstring": "~1.8" "symfony/polyfill-mbstring": "~1.8",
},
"require-dev": {
"symfony/process": "^6.4|^7.0" "symfony/process": "^6.4|^7.0"
}, },
"type": "library", "type": "library",
@ -3269,7 +3267,7 @@
"description": "Provides basic utilities for the filesystem", "description": "Provides basic utilities for the filesystem",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/filesystem/tree/v7.1.2" "source": "https://github.com/symfony/filesystem/tree/v7.0.7"
}, },
"funding": [ "funding": [
{ {
@ -3285,20 +3283,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2024-06-28T10:03:55+00:00" "time": "2024-04-18T09:29:19+00:00"
}, },
{ {
"name": "symfony/polyfill-ctype", "name": "symfony/polyfill-ctype",
"version": "v1.30.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": "0424dff1c58f028c451efff2045f5d92410bd540" "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/0424dff1c58f028c451efff2045f5d92410bd540", "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ef4d7e442ca910c4764bce785146269b30cb5fc4",
"reference": "0424dff1c58f028c451efff2045f5d92410bd540", "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3348,7 +3346,7 @@
"portable" "portable"
], ],
"support": { "support": {
"source": "https://github.com/symfony/polyfill-ctype/tree/v1.30.0" "source": "https://github.com/symfony/polyfill-ctype/tree/v1.29.0"
}, },
"funding": [ "funding": [
{ {
@ -3364,20 +3362,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2024-05-31T15:07:36+00:00" "time": "2024-01-29T20:11:03+00:00"
}, },
{ {
"name": "symfony/polyfill-intl-grapheme", "name": "symfony/polyfill-intl-grapheme",
"version": "v1.30.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": "64647a7c30b2283f5d49b874d84a18fc22054b7a" "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/64647a7c30b2283f5d49b874d84a18fc22054b7a", "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/32a9da87d7b3245e09ac426c83d334ae9f06f80f",
"reference": "64647a7c30b2283f5d49b874d84a18fc22054b7a", "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3426,7 +3424,7 @@
"shim" "shim"
], ],
"support": { "support": {
"source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.30.0" "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.29.0"
}, },
"funding": [ "funding": [
{ {
@ -3442,20 +3440,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2024-05-31T15:07:36+00:00" "time": "2024-01-29T20:11:03+00:00"
}, },
{ {
"name": "symfony/polyfill-intl-normalizer", "name": "symfony/polyfill-intl-normalizer",
"version": "v1.30.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": "a95281b0be0d9ab48050ebd988b967875cdb9fdb" "reference": "bc45c394692b948b4d383a08d7753968bed9a83d"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/a95281b0be0d9ab48050ebd988b967875cdb9fdb", "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/bc45c394692b948b4d383a08d7753968bed9a83d",
"reference": "a95281b0be0d9ab48050ebd988b967875cdb9fdb", "reference": "bc45c394692b948b4d383a08d7753968bed9a83d",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3507,7 +3505,7 @@
"shim" "shim"
], ],
"support": { "support": {
"source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.30.0" "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.29.0"
}, },
"funding": [ "funding": [
{ {
@ -3523,20 +3521,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2024-05-31T15:07:36+00:00" "time": "2024-01-29T20:11:03+00:00"
}, },
{ {
"name": "symfony/polyfill-mbstring", "name": "symfony/polyfill-mbstring",
"version": "v1.30.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": "fd22ab50000ef01661e2a31d850ebaa297f8e03c" "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/fd22ab50000ef01661e2a31d850ebaa297f8e03c", "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9773676c8a1bb1f8d4340a62efe641cf76eda7ec",
"reference": "fd22ab50000ef01661e2a31d850ebaa297f8e03c", "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3587,7 +3585,7 @@
"shim" "shim"
], ],
"support": { "support": {
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.30.0" "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.29.0"
}, },
"funding": [ "funding": [
{ {
@ -3603,7 +3601,68 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2024-06-19T12:30:46+00:00" "time": "2024-01-29T20:11:03+00:00"
},
{
"name": "symfony/process",
"version": "v7.0.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
"reference": "3839e56b94dd1dbd13235d27504e66baf23faba0"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/process/zipball/3839e56b94dd1dbd13235d27504e66baf23faba0",
"reference": "3839e56b94dd1dbd13235d27504e66baf23faba0",
"shasum": ""
},
"require": {
"php": ">=8.2"
},
"type": "library",
"autoload": {
"psr-4": {
"Symfony\\Component\\Process\\": ""
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Executes commands in sub-processes",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/process/tree/v7.0.7"
},
"funding": [
{
"url": "https://symfony.com/sponsor",
"type": "custom"
},
{
"url": "https://github.com/fabpot",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
"time": "2024-04-18T09:29:19+00:00"
}, },
{ {
"name": "symfony/service-contracts", "name": "symfony/service-contracts",
@ -3690,16 +3749,16 @@
}, },
{ {
"name": "symfony/string", "name": "symfony/string",
"version": "v7.1.2", "version": "v7.0.7",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/string.git", "url": "https://github.com/symfony/string.git",
"reference": "14221089ac66cf82e3cf3d1c1da65de305587ff8" "reference": "e405b5424dc2528e02e31ba26b83a79fd4eb8f63"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/string/zipball/14221089ac66cf82e3cf3d1c1da65de305587ff8", "url": "https://api.github.com/repos/symfony/string/zipball/e405b5424dc2528e02e31ba26b83a79fd4eb8f63",
"reference": "14221089ac66cf82e3cf3d1c1da65de305587ff8", "reference": "e405b5424dc2528e02e31ba26b83a79fd4eb8f63",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3713,7 +3772,6 @@
"symfony/translation-contracts": "<2.5" "symfony/translation-contracts": "<2.5"
}, },
"require-dev": { "require-dev": {
"symfony/emoji": "^7.1",
"symfony/error-handler": "^6.4|^7.0", "symfony/error-handler": "^6.4|^7.0",
"symfony/http-client": "^6.4|^7.0", "symfony/http-client": "^6.4|^7.0",
"symfony/intl": "^6.4|^7.0", "symfony/intl": "^6.4|^7.0",
@ -3757,7 +3815,7 @@
"utf8" "utf8"
], ],
"support": { "support": {
"source": "https://github.com/symfony/string/tree/v7.1.2" "source": "https://github.com/symfony/string/tree/v7.0.7"
}, },
"funding": [ "funding": [
{ {
@ -3773,7 +3831,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2024-06-28T09:27:18+00:00" "time": "2024-04-18T09:29:19+00:00"
}, },
{ {
"name": "theseer/tokenizer", "name": "theseer/tokenizer",
@ -3827,16 +3885,16 @@
}, },
{ {
"name": "vimeo/psalm", "name": "vimeo/psalm",
"version": "5.25.0", "version": "5.24.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/vimeo/psalm.git", "url": "https://github.com/vimeo/psalm.git",
"reference": "01a8eb06b9e9cc6cfb6a320bf9fb14331919d505" "reference": "462c80e31c34e58cc4f750c656be3927e80e550e"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/vimeo/psalm/zipball/01a8eb06b9e9cc6cfb6a320bf9fb14331919d505", "url": "https://api.github.com/repos/vimeo/psalm/zipball/462c80e31c34e58cc4f750c656be3927e80e550e",
"reference": "01a8eb06b9e9cc6cfb6a320bf9fb14331919d505", "reference": "462c80e31c34e58cc4f750c656be3927e80e550e",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3933,7 +3991,7 @@
"issues": "https://github.com/vimeo/psalm/issues", "issues": "https://github.com/vimeo/psalm/issues",
"source": "https://github.com/vimeo/psalm" "source": "https://github.com/vimeo/psalm"
}, },
"time": "2024-06-16T15:08:35+00:00" "time": "2024-05-01T19:32:08+00:00"
}, },
{ {
"name": "webmozart/assert", "name": "webmozart/assert",

@ -30,9 +30,9 @@ Links
* `Project README <README.html>`_ * `Project README <README.html>`_
* `API Documentations <docs/>`_ * `API Documentations <docs/>`_
* `CodeCoverage <coverage/>`_ * `CodeCoverage <coverage/>`_
* `Metrics <metrics/>`_
* `Test report <test/index.html>`_ * `Test report <test/index.html>`_
* `Mutation testing <mutation/infection.html>`_ * `Mutation testing <mutation/>`_
* `Code metrics <metrics/index.html>`_
Standard Tools Standard Tools

@ -2,7 +2,7 @@
"$schema": "https://raw.githubusercontent.com/infection/infection/0.27.9/resources/schema.json", "$schema": "https://raw.githubusercontent.com/infection/infection/0.27.9/resources/schema.json",
"source": { "source": {
"directories": [ "directories": [
"src/" "src"
] ]
}, },
"logs": { "logs": {

@ -11,4 +11,5 @@
"title": "Benchmarking" "title": "Benchmarking"
} }
} }
} }

@ -11,12 +11,6 @@ use Exception;
*/ */
abstract class SkillCalculator abstract class SkillCalculator
{ {
public const NONE = 0x00;
public const PARTIAL_PLAY = 0x01;
public const PARTIAL_UPDATE = 0x02;
protected function __construct( protected function __construct(
private readonly int $supportedOptions, private readonly int $supportedOptions,
private readonly TeamsRange $totalTeamsAllowed, private readonly TeamsRange $totalTeamsAllowed,

@ -0,0 +1,14 @@
<?php
declare(strict_types=1);
namespace DNW\Skills;
class SkillCalculatorSupportedOptions
{
public const NONE = 0x00;
public const PARTIAL_PLAY = 0x01;
public const PARTIAL_UPDATE = 0x02;
}

@ -14,6 +14,7 @@ use DNW\Skills\PartialPlay;
use DNW\Skills\PlayersRange; use DNW\Skills\PlayersRange;
use DNW\Skills\RankSorter; use DNW\Skills\RankSorter;
use DNW\Skills\SkillCalculator; use DNW\Skills\SkillCalculator;
use DNW\Skills\SkillCalculatorSupportedOptions;
use DNW\Skills\Team; use DNW\Skills\Team;
use DNW\Skills\TeamsRange; use DNW\Skills\TeamsRange;
use DNW\Skills\RatingContainer; use DNW\Skills\RatingContainer;
@ -26,7 +27,7 @@ class FactorGraphTrueSkillCalculator extends SkillCalculator
{ {
public function __construct() public function __construct()
{ {
parent::__construct(SkillCalculator::PARTIAL_PLAY | SkillCalculator::PARTIAL_UPDATE, TeamsRange::atLeast(2), PlayersRange::atLeast(1)); parent::__construct(SkillCalculatorSupportedOptions::PARTIAL_PLAY | SkillCalculatorSupportedOptions::PARTIAL_UPDATE, TeamsRange::atLeast(2), PlayersRange::atLeast(1));
} }
/** /**

@ -13,7 +13,9 @@ use DNW\Skills\RankSorter;
use DNW\Skills\Rating; use DNW\Skills\Rating;
use DNW\Skills\RatingContainer; use DNW\Skills\RatingContainer;
use DNW\Skills\SkillCalculator; use DNW\Skills\SkillCalculator;
use DNW\Skills\SkillCalculatorSupportedOptions;
use DNW\Skills\TeamsRange; use DNW\Skills\TeamsRange;
use DNW\Skills\Team;
/** /**
* Calculates the new ratings for only two players. * Calculates the new ratings for only two players.
@ -25,7 +27,7 @@ class TwoPlayerTrueSkillCalculator extends SkillCalculator
{ {
public function __construct() public function __construct()
{ {
parent::__construct(SkillCalculator::NONE, TeamsRange::exactly(2), PlayersRange::exactly(1)); parent::__construct(SkillCalculatorSupportedOptions::NONE, TeamsRange::exactly(2), PlayersRange::exactly(1));
} }
/** /**

@ -13,6 +13,7 @@ use DNW\Skills\RankSorter;
use DNW\Skills\Rating; use DNW\Skills\Rating;
use DNW\Skills\RatingContainer; use DNW\Skills\RatingContainer;
use DNW\Skills\SkillCalculator; use DNW\Skills\SkillCalculator;
use DNW\Skills\SkillCalculatorSupportedOptions;
use DNW\Skills\Team; use DNW\Skills\Team;
use DNW\Skills\TeamsRange; use DNW\Skills\TeamsRange;
@ -25,7 +26,7 @@ class TwoTeamTrueSkillCalculator extends SkillCalculator
{ {
public function __construct() public function __construct()
{ {
parent::__construct(SkillCalculator::NONE, TeamsRange::exactly(2), PlayersRange::atLeast(1)); parent::__construct(SkillCalculatorSupportedOptions::NONE, TeamsRange::exactly(2), PlayersRange::atLeast(1));
} }
/** /**

@ -8,7 +8,7 @@ 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\SkillCalculator; use DNW\Skills\SkillCalculatorSupportedOptions;
use PHPUnit\Framework\TestCase; use PHPUnit\Framework\TestCase;
use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\CoversNothing; use PHPUnit\Framework\Attributes\CoversNothing;
@ -78,6 +78,6 @@ class FactorGraphTrueSkillCalculatorTest extends TestCase
public function testMethodisSupported(): void public function testMethodisSupported(): void
{ {
$calculator = new FactorGraphTrueSkillCalculator(); $calculator = new FactorGraphTrueSkillCalculator();
$this->assertEquals(TRUE, $calculator->isSupported(SkillCalculator::PARTIAL_PLAY)); $this->assertEquals(TRUE, $calculator->isSupported(SkillCalculatorSupportedOptions::PARTIAL_PLAY));
} }
} }