{"action":"created","comment":{"url":"https://api.github.com/repos/padraic/humbug/pulls/comments/25827644","id":25827644,"diff_hunk":"@@ -0,0 +1,227 @@\n+<?php\n+\n+namespace Humbug;\n+\n+/**\n+ * Class collecting all mutants and their results.\n+ *\n+ * @category   Humbug\n+ * @package    Humbug\n+ * @copyright  Copyright (c) 2015 Pádraic Brady (http://blog.astrumfutura.com)\n+ * @license    https://github.com/padraic/humbug/blob/master/LICENSE New BSD License\n+ * @author     Thibaud Fabre\n+ */\n+class Collector\n+{\n+\n+    /**\n+     * @var int Total mutant count collected\n+     */\n+    private $totalCount = 0;\n+\n+    /**\n+     * @var int Count of mutants not covered by a test case.\n+     */\n+    private $shadowCount = 0;\n+\n+    /**\n+     * @var int Count of mutants killed by a test case.\n+     */\n+    private $killedCount = 0;\n+\n+    /**\n+     * @var Mutant[] Mutants killed by a test case.\n+     */\n+    private $killed = [];\n+\n+    /**\n+     * @var int Count of mutants that timed out.\n+     */\n+    private $timeoutCount = 0;\n+\n+    /**\n+     * @var Mutant[] Mutants that resulted in a timeout.\n+     */\n+    private $timeouts = [];\n+\n+    /**\n+     * @var int Count of mutants that triggered an error.\n+     */\n+    private $errorCount = 0;\n+\n+    /**\n+     * @var Mutant[] Mutants that triggered an error.\n+     */\n+    private $errors = [];\n+\n+    /**\n+     * @var int Count of mutants that escaped tests.\n+     */\n+    private $escapeCount = 0;\n+\n+    /**\n+     * @var Mutant[] Mutants that escaped tests.\n+     */\n+    private $escaped = [];\n+\n+    /**\n+     * Collects a result associated with a mutant.\n+     *\n+     * @param Mutant $mutant\n+     * @param array $result\n+     */\n+    public function collect(Mutant $mutant, array $result)","path":"src/Collector.php","position":73,"original_position":73,"commit_id":"7951dba7f17c1d01ad928069f95f5b9a34a74f97","original_commit_id":"7951dba7f17c1d01ad928069f95f5b9a34a74f97","user":{"login":"padraic","id":19780,"avatar_url":"https://avatars.githubusercontent.com/u/19780?v=3","gravatar_id":"","url":"https://api.github.com/users/padraic","html_url":"https://github.com/padraic","followers_url":"https://api.github.com/users/padraic/followers","following_url":"https://api.github.com/users/padraic/following{/other_user}","gists_url":"https://api.github.com/users/padraic/gists{/gist_id}","starred_url":"https://api.github.com/users/padraic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/padraic/subscriptions","organizations_url":"https://api.github.com/users/padraic/orgs","repos_url":"https://api.github.com/users/padraic/repos","events_url":"https://api.github.com/users/padraic/events{/privacy}","received_events_url":"https://api.github.com/users/padraic/received_events","type":"User","site_admin":false},"body":"Can you log an issue referring here, and I'll revisit tomorrow as needed? For now, time to catch a long nap ;).","created_at":"2015-03-04T23:58:07Z","updated_at":"2015-03-04T23:58:07Z","html_url":"https://github.com/padraic/humbug/pull/115#discussion_r25827644","pull_request_url":"https://api.github.com/repos/padraic/humbug/pulls/115","_links":{"self":{"href":"https://api.github.com/repos/padraic/humbug/pulls/comments/25827644"},"html":{"href":"https://github.com/padraic/humbug/pull/115#discussion_r25827644"},"pull_request":{"href":"https://api.github.com/repos/padraic/humbug/pulls/115"}}},"pull_request":{"url":"https://api.github.com/repos/padraic/humbug/pulls/115","id":30497657,"html_url":"https://github.com/padraic/humbug/pull/115","diff_url":"https://github.com/padraic/humbug/pull/115.diff","patch_url":"https://github.com/padraic/humbug/pull/115.patch","issue_url":"https://api.github.com/repos/padraic/humbug/issues/115","number":115,"state":"closed","locked":false,"title":"Improve result collection & logging","user":{"login":"aztech-dev","id":5682430,"avatar_url":"https://avatars.githubusercontent.com/u/5682430?v=3","gravatar_id":"","url":"https://api.github.com/users/aztech-dev","html_url":"https://github.com/aztech-dev","followers_url":"https://api.github.com/users/aztech-dev/followers","following_url":"https://api.github.com/users/aztech-dev/following{/other_user}","gists_url":"https://api.github.com/users/aztech-dev/gists{/gist_id}","starred_url":"https://api.github.com/users/aztech-dev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aztech-dev/subscriptions","organizations_url":"https://api.github.com/users/aztech-dev/orgs","repos_url":"https://api.github.com/users/aztech-dev/repos","events_url":"https://api.github.com/users/aztech-dev/events{/privacy}","received_events_url":"https://api.github.com/users/aztech-dev/received_events","type":"User","site_admin":false},"body":"A few minor improvements to the log generator routines. If anything needs changing, let me know.\r\n\r\n- Refactors result collection to a Collector class\r\n- Adds `errored`, `timeouts`, `killed` keys to JSON log file\r\n\r\nIt may be necessary to discuss whether JSON logs should incude all error output by default, as it leads to a big increase in the log files (on my test project with errors, size went roughly from 65K to 650K due to the stack traces included in `stderr` property of each mutant data).","created_at":"2015-03-04T19:46:58Z","updated_at":"2015-03-04T23:58:07Z","closed_at":"2015-03-04T22:30:59Z","merged_at":"2015-03-04T22:30:59Z","merge_commit_sha":"5d3330bdea03cf29bfb5fb5a140afab10c973863","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/padraic/humbug/pulls/115/commits","review_comments_url":"https://api.github.com/repos/padraic/humbug/pulls/115/comments","review_comment_url":"https://api.github.com/repos/padraic/humbug/pulls/comments{/number}","comments_url":"https://api.github.com/repos/padraic/humbug/issues/115/comments","statuses_url":"https://api.github.com/repos/padraic/humbug/statuses/7951dba7f17c1d01ad928069f95f5b9a34a74f97","head":{"label":"aztech-forks:master","ref":"master","sha":"7951dba7f17c1d01ad928069f95f5b9a34a74f97","user":{"login":"aztech-forks","id":10974052,"avatar_url":"https://avatars.githubusercontent.com/u/10974052?v=3","gravatar_id":"","url":"https://api.github.com/users/aztech-forks","html_url":"https://github.com/aztech-forks","followers_url":"https://api.github.com/users/aztech-forks/followers","following_url":"https://api.github.com/users/aztech-forks/following{/other_user}","gists_url":"https://api.github.com/users/aztech-forks/gists{/gist_id}","starred_url":"https://api.github.com/users/aztech-forks/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aztech-forks/subscriptions","organizations_url":"https://api.github.com/users/aztech-forks/orgs","repos_url":"https://api.github.com/users/aztech-forks/repos","events_url":"https://api.github.com/users/aztech-forks/events{/privacy}","received_events_url":"https://api.github.com/users/aztech-forks/received_events","type":"Organization","site_admin":false},"repo":{"id":31669776,"name":"humbug","full_name":"aztech-forks/humbug","owner":{"login":"aztech-forks","id":10974052,"avatar_url":"https://avatars.githubusercontent.com/u/10974052?v=3","gravatar_id":"","url":"https://api.github.com/users/aztech-forks","html_url":"https://github.com/aztech-forks","followers_url":"https://api.github.com/users/aztech-forks/followers","following_url":"https://api.github.com/users/aztech-forks/following{/other_user}","gists_url":"https://api.github.com/users/aztech-forks/gists{/gist_id}","starred_url":"https://api.github.com/users/aztech-forks/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aztech-forks/subscriptions","organizations_url":"https://api.github.com/users/aztech-forks/orgs","repos_url":"https://api.github.com/users/aztech-forks/repos","events_url":"https://api.github.com/users/aztech-forks/events{/privacy}","received_events_url":"https://api.github.com/users/aztech-forks/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/aztech-forks/humbug","description":"Mutation Testing for PHP. Making your unit tests scream...loudly.","fork":true,"url":"https://api.github.com/repos/aztech-forks/humbug","forks_url":"https://api.github.com/repos/aztech-forks/humbug/forks","keys_url":"https://api.github.com/repos/aztech-forks/humbug/keys{/key_id}","collaborators_url":"https://api.github.com/repos/aztech-forks/humbug/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/aztech-forks/humbug/teams","hooks_url":"https://api.github.com/repos/aztech-forks/humbug/hooks","issue_events_url":"https://api.github.com/repos/aztech-forks/humbug/issues/events{/number}","events_url":"https://api.github.com/repos/aztech-forks/humbug/events","assignees_url":"https://api.github.com/repos/aztech-forks/humbug/assignees{/user}","branches_url":"https://api.github.com/repos/aztech-forks/humbug/branches{/branch}","tags_url":"https://api.github.com/repos/aztech-forks/humbug/tags","blobs_url":"https://api.github.com/repos/aztech-forks/humbug/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/aztech-forks/humbug/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/aztech-forks/humbug/git/refs{/sha}","trees_url":"https://api.github.com/repos/aztech-forks/humbug/git/trees{/sha}","statuses_url":"https://api.github.com/repos/aztech-forks/humbug/statuses/{sha}","languages_url":"https://api.github.com/repos/aztech-forks/humbug/languages","stargazers_url":"https://api.github.com/repos/aztech-forks/humbug/stargazers","contributors_url":"https://api.github.com/repos/aztech-forks/humbug/contributors","subscribers_url":"https://api.github.com/repos/aztech-forks/humbug/subscribers","subscription_url":"https://api.github.com/repos/aztech-forks/humbug/subscription","commits_url":"https://api.github.com/repos/aztech-forks/humbug/commits{/sha}","git_commits_url":"https://api.github.com/repos/aztech-forks/humbug/git/commits{/sha}","comments_url":"https://api.github.com/repos/aztech-forks/humbug/comments{/number}","issue_comment_url":"https://api.github.com/repos/aztech-forks/humbug/issues/comments{/number}","contents_url":"https://api.github.com/repos/aztech-forks/humbug/contents/{+path}","compare_url":"https://api.github.com/repos/aztech-forks/humbug/compare/{base}...{head}","merges_url":"https://api.github.com/repos/aztech-forks/humbug/merges","archive_url":"https://api.github.com/repos/aztech-forks/humbug/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/aztech-forks/humbug/downloads","issues_url":"https://api.github.com/repos/aztech-forks/humbug/issues{/number}","pulls_url":"https://api.github.com/repos/aztech-forks/humbug/pulls{/number}","milestones_url":"https://api.github.com/repos/aztech-forks/humbug/milestones{/number}","notifications_url":"https://api.github.com/repos/aztech-forks/humbug/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/aztech-forks/humbug/labels{/name}","releases_url":"https://api.github.com/repos/aztech-forks/humbug/releases{/id}","created_at":"2015-03-04T17:22:48Z","updated_at":"2015-03-04T22:47:32Z","pushed_at":"2015-03-04T22:47:32Z","git_url":"git://github.com/aztech-forks/humbug.git","ssh_url":"git@github.com:aztech-forks/humbug.git","clone_url":"https://github.com/aztech-forks/humbug.git","svn_url":"https://github.com/aztech-forks/humbug","homepage":"","size":2167,"stargazers_count":0,"watchers_count":0,"language":"PHP","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"padraic:master","ref":"master","sha":"e1dd164259117b95b2d798146be17299c8e8cd52","user":{"login":"padraic","id":19780,"avatar_url":"https://avatars.githubusercontent.com/u/19780?v=3","gravatar_id":"","url":"https://api.github.com/users/padraic","html_url":"https://github.com/padraic","followers_url":"https://api.github.com/users/padraic/followers","following_url":"https://api.github.com/users/padraic/following{/other_user}","gists_url":"https://api.github.com/users/padraic/gists{/gist_id}","starred_url":"https://api.github.com/users/padraic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/padraic/subscriptions","organizations_url":"https://api.github.com/users/padraic/orgs","repos_url":"https://api.github.com/users/padraic/repos","events_url":"https://api.github.com/users/padraic/events{/privacy}","received_events_url":"https://api.github.com/users/padraic/received_events","type":"User","site_admin":false},"repo":{"id":28300862,"name":"humbug","full_name":"padraic/humbug","owner":{"login":"padraic","id":19780,"avatar_url":"https://avatars.githubusercontent.com/u/19780?v=3","gravatar_id":"","url":"https://api.github.com/users/padraic","html_url":"https://github.com/padraic","followers_url":"https://api.github.com/users/padraic/followers","following_url":"https://api.github.com/users/padraic/following{/other_user}","gists_url":"https://api.github.com/users/padraic/gists{/gist_id}","starred_url":"https://api.github.com/users/padraic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/padraic/subscriptions","organizations_url":"https://api.github.com/users/padraic/orgs","repos_url":"https://api.github.com/users/padraic/repos","events_url":"https://api.github.com/users/padraic/events{/privacy}","received_events_url":"https://api.github.com/users/padraic/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/padraic/humbug","description":"Mutation Testing for PHP. Making your unit tests scream...loudly.","fork":false,"url":"https://api.github.com/repos/padraic/humbug","forks_url":"https://api.github.com/repos/padraic/humbug/forks","keys_url":"https://api.github.com/repos/padraic/humbug/keys{/key_id}","collaborators_url":"https://api.github.com/repos/padraic/humbug/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/padraic/humbug/teams","hooks_url":"https://api.github.com/repos/padraic/humbug/hooks","issue_events_url":"https://api.github.com/repos/padraic/humbug/issues/events{/number}","events_url":"https://api.github.com/repos/padraic/humbug/events","assignees_url":"https://api.github.com/repos/padraic/humbug/assignees{/user}","branches_url":"https://api.github.com/repos/padraic/humbug/branches{/branch}","tags_url":"https://api.github.com/repos/padraic/humbug/tags","blobs_url":"https://api.github.com/repos/padraic/humbug/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/padraic/humbug/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/padraic/humbug/git/refs{/sha}","trees_url":"https://api.github.com/repos/padraic/humbug/git/trees{/sha}","statuses_url":"https://api.github.com/repos/padraic/humbug/statuses/{sha}","languages_url":"https://api.github.com/repos/padraic/humbug/languages","stargazers_url":"https://api.github.com/repos/padraic/humbug/stargazers","contributors_url":"https://api.github.com/repos/padraic/humbug/contributors","subscribers_url":"https://api.github.com/repos/padraic/humbug/subscribers","subscription_url":"https://api.github.com/repos/padraic/humbug/subscription","commits_url":"https://api.github.com/repos/padraic/humbug/commits{/sha}","git_commits_url":"https://api.github.com/repos/padraic/humbug/git/commits{/sha}","comments_url":"https://api.github.com/repos/padraic/humbug/comments{/number}","issue_comment_url":"https://api.github.com/repos/padraic/humbug/issues/comments{/number}","contents_url":"https://api.github.com/repos/padraic/humbug/contents/{+path}","compare_url":"https://api.github.com/repos/padraic/humbug/compare/{base}...{head}","merges_url":"https://api.github.com/repos/padraic/humbug/merges","archive_url":"https://api.github.com/repos/padraic/humbug/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/padraic/humbug/downloads","issues_url":"https://api.github.com/repos/padraic/humbug/issues{/number}","pulls_url":"https://api.github.com/repos/padraic/humbug/pulls{/number}","milestones_url":"https://api.github.com/repos/padraic/humbug/milestones{/number}","notifications_url":"https://api.github.com/repos/padraic/humbug/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/padraic/humbug/labels{/name}","releases_url":"https://api.github.com/repos/padraic/humbug/releases{/id}","created_at":"2014-12-21T13:42:47Z","updated_at":"2015-03-04T23:56:13Z","pushed_at":"2015-03-04T23:56:13Z","git_url":"git://github.com/padraic/humbug.git","ssh_url":"git@github.com:padraic/humbug.git","clone_url":"https://github.com/padraic/humbug.git","svn_url":"https://github.com/padraic/humbug","homepage":"","size":2167,"stargazers_count":348,"watchers_count":348,"language":"PHP","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":21,"mirror_url":null,"open_issues_count":14,"forks":21,"open_issues":14,"watchers":348,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/padraic/humbug/pulls/115"},"html":{"href":"https://github.com/padraic/humbug/pull/115"},"issue":{"href":"https://api.github.com/repos/padraic/humbug/issues/115"},"comments":{"href":"https://api.github.com/repos/padraic/humbug/issues/115/comments"},"review_comments":{"href":"https://api.github.com/repos/padraic/humbug/pulls/115/comments"},"review_comment":{"href":"https://api.github.com/repos/padraic/humbug/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/padraic/humbug/pulls/115/commits"},"statuses":{"href":"https://api.github.com/repos/padraic/humbug/statuses/7951dba7f17c1d01ad928069f95f5b9a34a74f97"}}}}