{"action":"created","issue":{"url":"https://api.github.com/repos/giorgiosironi/eris/issues/47","labels_url":"https://api.github.com/repos/giorgiosironi/eris/issues/47/labels{/name}","comments_url":"https://api.github.com/repos/giorgiosironi/eris/issues/47/comments","events_url":"https://api.github.com/repos/giorgiosironi/eris/issues/47/events","html_url":"https://github.com/giorgiosironi/eris/pull/47","id":99463025,"number":47,"title":"Using size to quickcheck","user":{"login":"MirkoBonadei","id":233235,"avatar_url":"https://avatars.githubusercontent.com/u/233235?v=3","gravatar_id":"","url":"https://api.github.com/users/MirkoBonadei","html_url":"https://github.com/MirkoBonadei","followers_url":"https://api.github.com/users/MirkoBonadei/followers","following_url":"https://api.github.com/users/MirkoBonadei/following{/other_user}","gists_url":"https://api.github.com/users/MirkoBonadei/gists{/gist_id}","starred_url":"https://api.github.com/users/MirkoBonadei/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MirkoBonadei/subscriptions","organizations_url":"https://api.github.com/users/MirkoBonadei/orgs","repos_url":"https://api.github.com/users/MirkoBonadei/repos","events_url":"https://api.github.com/users/MirkoBonadei/events{/privacy}","received_events_url":"https://api.github.com/users/MirkoBonadei/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-08-06T15:31:39Z","updated_at":"2015-08-07T13:32:50Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/giorgiosironi/eris/pulls/47","html_url":"https://github.com/giorgiosironi/eris/pull/47","diff_url":"https://github.com/giorgiosironi/eris/pull/47.diff","patch_url":"https://github.com/giorgiosironi/eris/pull/47.patch"},"body":"The goal of this pull request is to have \"sized generators\" so that we can start a `ForAll` evaluation generating small values and increase their size as the property continues to hold.\r\nThis is the first step to improve our shrinking performances.\r\n\r\nNotes of interest:\r\n- the `Generator\\int` and the `Generator\\float` in other quickcheck's implementations are not generators based on a range , so now we are alligned with the others and if we want to create a generator based on a range we can use `Generator\\choose` which is part of this pull request;\r\n- `Generator\\Natural` is not needed anymore, it's functionality is carried out by `Generator\\Integer`\r\n\r\nSome stuff must be improved before the merge:\r\n- [ ] the use of the size from the `ForAll` now grows linearly but it is not a big deal , we have to be more smart on that (exponential growth vs quadratic growth vs contigurable strategy);\r\n- [ ] fix `ShrinkingTimeLimitTest.php`, it is failing because now it takes more time to reach to counter-example. It should be fixed by the previous point or maybe it has to be tuned;\r\n- [ ] add configurable `maxSize` to `ForAll`, as default value 200 seems good;\r\n- [ ] rename `Sample::withSize` because now `size` term is overloaded;\r\n- [ ] `Sample::shrink` is ok, I can remove the todo because 10 is a good sample size to shrink from;\r\n- [ ] remove the skip flag to `examples/FloatTest.php`;\r\n- [ ] `Generator\\Name` should exploit the generation size when invoked\r\n- [ ] review some TODOs\r\n- [ ] look some samples of generated values and improve the feature on the generators which are not using it at their best\r\n- [ ] write some tests to accumulate metrics on the performance improvements (at which iteration we reach the counter-example? how long does it take to shrink it?)"},"comment":{"url":"https://api.github.com/repos/giorgiosironi/eris/issues/comments/128699618","html_url":"https://github.com/giorgiosironi/eris/pull/47#issuecomment-128699618","issue_url":"https://api.github.com/repos/giorgiosironi/eris/issues/47","id":128699618,"user":{"login":"MirkoBonadei","id":233235,"avatar_url":"https://avatars.githubusercontent.com/u/233235?v=3","gravatar_id":"","url":"https://api.github.com/users/MirkoBonadei","html_url":"https://github.com/MirkoBonadei","followers_url":"https://api.github.com/users/MirkoBonadei/followers","following_url":"https://api.github.com/users/MirkoBonadei/following{/other_user}","gists_url":"https://api.github.com/users/MirkoBonadei/gists{/gist_id}","starred_url":"https://api.github.com/users/MirkoBonadei/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MirkoBonadei/subscriptions","organizations_url":"https://api.github.com/users/MirkoBonadei/orgs","repos_url":"https://api.github.com/users/MirkoBonadei/repos","events_url":"https://api.github.com/users/MirkoBonadei/events{/privacy}","received_events_url":"https://api.github.com/users/MirkoBonadei/received_events","type":"User","site_admin":false},"created_at":"2015-08-07T13:32:50Z","updated_at":"2015-08-07T13:32:50Z","body":"I have updated the todo list above after a live review."}}