{"action":"created","comment":{"url":"https://api.github.com/repos/gemini-hlsw/gem/pulls/comments/133334704","pull_request_review_id":56504365,"id":133334704,"diff_hunk":"@@ -32,6 +32,9 @@ trait Arbitraries extends gem.config.Arbitraries  {\n       )\n     }\n \n+  implicit val cogLocation: Cogen[Location] =","path":"modules/core/src/test/scala/gem/Arbitraries.scala","position":4,"original_position":4,"commit_id":"c1bfbebc89ce1cb9287cc2652cdc736810c1310e","original_commit_id":"c1bfbebc89ce1cb9287cc2652cdc736810c1310e","user":{"login":"tpolecat","id":1200131,"avatar_url":"https://avatars0.githubusercontent.com/u/1200131?v=4","gravatar_id":"","url":"https://api.github.com/users/tpolecat","html_url":"https://github.com/tpolecat","followers_url":"https://api.github.com/users/tpolecat/followers","following_url":"https://api.github.com/users/tpolecat/following{/other_user}","gists_url":"https://api.github.com/users/tpolecat/gists{/gist_id}","starred_url":"https://api.github.com/users/tpolecat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tpolecat/subscriptions","organizations_url":"https://api.github.com/users/tpolecat/orgs","repos_url":"https://api.github.com/users/tpolecat/repos","events_url":"https://api.github.com/users/tpolecat/events{/privacy}","received_events_url":"https://api.github.com/users/tpolecat/received_events","type":"User","site_admin":false},"body":"`Cogen` is the dual of `Gen`. It's needed in order to generate \"interesting\" arbitrary functions. See [Erik's talk](https://www.youtube.com/watch?v=UlZGZh7hfbs) at about 36:00 for a really good explanation. ","created_at":"2017-08-16T00:16:32Z","updated_at":"2017-08-16T00:16:32Z","html_url":"https://github.com/gemini-hlsw/gem/pull/116#discussion_r133334704","pull_request_url":"https://api.github.com/repos/gemini-hlsw/gem/pulls/116","_links":{"self":{"href":"https://api.github.com/repos/gemini-hlsw/gem/pulls/comments/133334704"},"html":{"href":"https://github.com/gemini-hlsw/gem/pull/116#discussion_r133334704"},"pull_request":{"href":"https://api.github.com/repos/gemini-hlsw/gem/pulls/116"}}},"pull_request":{"url":"https://api.github.com/repos/gemini-hlsw/gem/pulls/116","id":135879094,"html_url":"https://github.com/gemini-hlsw/gem/pull/116","diff_url":"https://github.com/gemini-hlsw/gem/pull/116.diff","patch_url":"https://github.com/gemini-hlsw/gem/pull/116.patch","issue_url":"https://api.github.com/repos/gemini-hlsw/gem/issues/116","number":116,"state":"open","locked":false,"title":"Switch to CatsSuite, add law checking","user":{"login":"tpolecat","id":1200131,"avatar_url":"https://avatars0.githubusercontent.com/u/1200131?v=4","gravatar_id":"","url":"https://api.github.com/users/tpolecat","html_url":"https://github.com/tpolecat","followers_url":"https://api.github.com/users/tpolecat/followers","following_url":"https://api.github.com/users/tpolecat/following{/other_user}","gists_url":"https://api.github.com/users/tpolecat/gists{/gist_id}","starred_url":"https://api.github.com/users/tpolecat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tpolecat/subscriptions","organizations_url":"https://api.github.com/users/tpolecat/orgs","repos_url":"https://api.github.com/users/tpolecat/repos","events_url":"https://api.github.com/users/tpolecat/events{/privacy}","received_events_url":"https://api.github.com/users/tpolecat/received_events","type":"User","site_admin":false},"body":"This changes the `Angle` tests to use [`CatsSuite`](https://github.com/typelevel/cats/blob/6fefa30bfb85e90d193b53300b8313c4dd6c0201/testkit/src/main/scala/cats/tests/CatsSuite.scala), which provides some useful defaults and machinery, specifically for taking advantage of laws defined for cats typeclasses. The five cases in the Abelian group tests are now just\r\n\r\n```scala\r\ncheckAll(\"Angle\", GroupLaws[Angle].commutativeGroup)\r\n```\r\n\r\nThis also makes gem consistent with testing in other Typelevel libs like http4s, which means there's one less thing to think about. I don't have strong feelings about it but it seems ok to me.\r\n\r\nIf this looks ok I will switch all the tests to use `CatsSuite`.\r\n","created_at":"2017-08-15T20:01:18Z","updated_at":"2017-08-16T00:16:32Z","closed_at":null,"merged_at":null,"merge_commit_sha":"891868f30194199539e9a2ff2044545a56f5c5ba","assignee":null,"assignees":[],"requested_reviewers":[],"milestone":null,"commits_url":"https://api.github.com/repos/gemini-hlsw/gem/pulls/116/commits","review_comments_url":"https://api.github.com/repos/gemini-hlsw/gem/pulls/116/comments","review_comment_url":"https://api.github.com/repos/gemini-hlsw/gem/pulls/comments{/number}","comments_url":"https://api.github.com/repos/gemini-hlsw/gem/issues/116/comments","statuses_url":"https://api.github.com/repos/gemini-hlsw/gem/statuses/c1bfbebc89ce1cb9287cc2652cdc736810c1310e","head":{"label":"tpolecat:laws2","ref":"laws2","sha":"c1bfbebc89ce1cb9287cc2652cdc736810c1310e","user":{"login":"tpolecat","id":1200131,"avatar_url":"https://avatars0.githubusercontent.com/u/1200131?v=4","gravatar_id":"","url":"https://api.github.com/users/tpolecat","html_url":"https://github.com/tpolecat","followers_url":"https://api.github.com/users/tpolecat/followers","following_url":"https://api.github.com/users/tpolecat/following{/other_user}","gists_url":"https://api.github.com/users/tpolecat/gists{/gist_id}","starred_url":"https://api.github.com/users/tpolecat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tpolecat/subscriptions","organizations_url":"https://api.github.com/users/tpolecat/orgs","repos_url":"https://api.github.com/users/tpolecat/repos","events_url":"https://api.github.com/users/tpolecat/events{/privacy}","received_events_url":"https://api.github.com/users/tpolecat/received_events","type":"User","site_admin":false},"repo":{"id":65769385,"name":"gem","full_name":"tpolecat/gem","owner":{"login":"tpolecat","id":1200131,"avatar_url":"https://avatars0.githubusercontent.com/u/1200131?v=4","gravatar_id":"","url":"https://api.github.com/users/tpolecat","html_url":"https://github.com/tpolecat","followers_url":"https://api.github.com/users/tpolecat/followers","following_url":"https://api.github.com/users/tpolecat/following{/other_user}","gists_url":"https://api.github.com/users/tpolecat/gists{/gist_id}","starred_url":"https://api.github.com/users/tpolecat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tpolecat/subscriptions","organizations_url":"https://api.github.com/users/tpolecat/orgs","repos_url":"https://api.github.com/users/tpolecat/repos","events_url":"https://api.github.com/users/tpolecat/events{/privacy}","received_events_url":"https://api.github.com/users/tpolecat/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/tpolecat/gem","description":"prototype postgres back-end for ocs","fork":true,"url":"https://api.github.com/repos/tpolecat/gem","forks_url":"https://api.github.com/repos/tpolecat/gem/forks","keys_url":"https://api.github.com/repos/tpolecat/gem/keys{/key_id}","collaborators_url":"https://api.github.com/repos/tpolecat/gem/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/tpolecat/gem/teams","hooks_url":"https://api.github.com/repos/tpolecat/gem/hooks","issue_events_url":"https://api.github.com/repos/tpolecat/gem/issues/events{/number}","events_url":"https://api.github.com/repos/tpolecat/gem/events","assignees_url":"https://api.github.com/repos/tpolecat/gem/assignees{/user}","branches_url":"https://api.github.com/repos/tpolecat/gem/branches{/branch}","tags_url":"https://api.github.com/repos/tpolecat/gem/tags","blobs_url":"https://api.github.com/repos/tpolecat/gem/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/tpolecat/gem/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/tpolecat/gem/git/refs{/sha}","trees_url":"https://api.github.com/repos/tpolecat/gem/git/trees{/sha}","statuses_url":"https://api.github.com/repos/tpolecat/gem/statuses/{sha}","languages_url":"https://api.github.com/repos/tpolecat/gem/languages","stargazers_url":"https://api.github.com/repos/tpolecat/gem/stargazers","contributors_url":"https://api.github.com/repos/tpolecat/gem/contributors","subscribers_url":"https://api.github.com/repos/tpolecat/gem/subscribers","subscription_url":"https://api.github.com/repos/tpolecat/gem/subscription","commits_url":"https://api.github.com/repos/tpolecat/gem/commits{/sha}","git_commits_url":"https://api.github.com/repos/tpolecat/gem/git/commits{/sha}","comments_url":"https://api.github.com/repos/tpolecat/gem/comments{/number}","issue_comment_url":"https://api.github.com/repos/tpolecat/gem/issues/comments{/number}","contents_url":"https://api.github.com/repos/tpolecat/gem/contents/{+path}","compare_url":"https://api.github.com/repos/tpolecat/gem/compare/{base}...{head}","merges_url":"https://api.github.com/repos/tpolecat/gem/merges","archive_url":"https://api.github.com/repos/tpolecat/gem/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/tpolecat/gem/downloads","issues_url":"https://api.github.com/repos/tpolecat/gem/issues{/number}","pulls_url":"https://api.github.com/repos/tpolecat/gem/pulls{/number}","milestones_url":"https://api.github.com/repos/tpolecat/gem/milestones{/number}","notifications_url":"https://api.github.com/repos/tpolecat/gem/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/tpolecat/gem/labels{/name}","releases_url":"https://api.github.com/repos/tpolecat/gem/releases{/id}","deployments_url":"https://api.github.com/repos/tpolecat/gem/deployments","created_at":"2016-08-15T22:32:39Z","updated_at":"2016-08-15T22:32:40Z","pushed_at":"2017-08-15T23:08:13Z","git_url":"git://github.com/tpolecat/gem.git","ssh_url":"git@github.com:tpolecat/gem.git","clone_url":"https://github.com/tpolecat/gem.git","svn_url":"https://github.com/tpolecat/gem","homepage":null,"size":8251,"stargazers_count":0,"watchers_count":0,"language":"Scala","has_issues":false,"has_projects":true,"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":"gemini-hlsw:master","ref":"master","sha":"77bb0f8b7bce9096b9da1c8d2c884e4b7b4394ca","user":{"login":"gemini-hlsw","id":8593735,"avatar_url":"https://avatars2.githubusercontent.com/u/8593735?v=4","gravatar_id":"","url":"https://api.github.com/users/gemini-hlsw","html_url":"https://github.com/gemini-hlsw","followers_url":"https://api.github.com/users/gemini-hlsw/followers","following_url":"https://api.github.com/users/gemini-hlsw/following{/other_user}","gists_url":"https://api.github.com/users/gemini-hlsw/gists{/gist_id}","starred_url":"https://api.github.com/users/gemini-hlsw/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gemini-hlsw/subscriptions","organizations_url":"https://api.github.com/users/gemini-hlsw/orgs","repos_url":"https://api.github.com/users/gemini-hlsw/repos","events_url":"https://api.github.com/users/gemini-hlsw/events{/privacy}","received_events_url":"https://api.github.com/users/gemini-hlsw/received_events","type":"Organization","site_admin":false},"repo":{"id":65769268,"name":"gem","full_name":"gemini-hlsw/gem","owner":{"login":"gemini-hlsw","id":8593735,"avatar_url":"https://avatars2.githubusercontent.com/u/8593735?v=4","gravatar_id":"","url":"https://api.github.com/users/gemini-hlsw","html_url":"https://github.com/gemini-hlsw","followers_url":"https://api.github.com/users/gemini-hlsw/followers","following_url":"https://api.github.com/users/gemini-hlsw/following{/other_user}","gists_url":"https://api.github.com/users/gemini-hlsw/gists{/gist_id}","starred_url":"https://api.github.com/users/gemini-hlsw/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gemini-hlsw/subscriptions","organizations_url":"https://api.github.com/users/gemini-hlsw/orgs","repos_url":"https://api.github.com/users/gemini-hlsw/repos","events_url":"https://api.github.com/users/gemini-hlsw/events{/privacy}","received_events_url":"https://api.github.com/users/gemini-hlsw/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/gemini-hlsw/gem","description":"prototype postgres back-end for ocs","fork":false,"url":"https://api.github.com/repos/gemini-hlsw/gem","forks_url":"https://api.github.com/repos/gemini-hlsw/gem/forks","keys_url":"https://api.github.com/repos/gemini-hlsw/gem/keys{/key_id}","collaborators_url":"https://api.github.com/repos/gemini-hlsw/gem/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/gemini-hlsw/gem/teams","hooks_url":"https://api.github.com/repos/gemini-hlsw/gem/hooks","issue_events_url":"https://api.github.com/repos/gemini-hlsw/gem/issues/events{/number}","events_url":"https://api.github.com/repos/gemini-hlsw/gem/events","assignees_url":"https://api.github.com/repos/gemini-hlsw/gem/assignees{/user}","branches_url":"https://api.github.com/repos/gemini-hlsw/gem/branches{/branch}","tags_url":"https://api.github.com/repos/gemini-hlsw/gem/tags","blobs_url":"https://api.github.com/repos/gemini-hlsw/gem/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/gemini-hlsw/gem/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/gemini-hlsw/gem/git/refs{/sha}","trees_url":"https://api.github.com/repos/gemini-hlsw/gem/git/trees{/sha}","statuses_url":"https://api.github.com/repos/gemini-hlsw/gem/statuses/{sha}","languages_url":"https://api.github.com/repos/gemini-hlsw/gem/languages","stargazers_url":"https://api.github.com/repos/gemini-hlsw/gem/stargazers","contributors_url":"https://api.github.com/repos/gemini-hlsw/gem/contributors","subscribers_url":"https://api.github.com/repos/gemini-hlsw/gem/subscribers","subscription_url":"https://api.github.com/repos/gemini-hlsw/gem/subscription","commits_url":"https://api.github.com/repos/gemini-hlsw/gem/commits{/sha}","git_commits_url":"https://api.github.com/repos/gemini-hlsw/gem/git/commits{/sha}","comments_url":"https://api.github.com/repos/gemini-hlsw/gem/comments{/number}","issue_comment_url":"https://api.github.com/repos/gemini-hlsw/gem/issues/comments{/number}","contents_url":"https://api.github.com/repos/gemini-hlsw/gem/contents/{+path}","compare_url":"https://api.github.com/repos/gemini-hlsw/gem/compare/{base}...{head}","merges_url":"https://api.github.com/repos/gemini-hlsw/gem/merges","archive_url":"https://api.github.com/repos/gemini-hlsw/gem/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/gemini-hlsw/gem/downloads","issues_url":"https://api.github.com/repos/gemini-hlsw/gem/issues{/number}","pulls_url":"https://api.github.com/repos/gemini-hlsw/gem/pulls{/number}","milestones_url":"https://api.github.com/repos/gemini-hlsw/gem/milestones{/number}","notifications_url":"https://api.github.com/repos/gemini-hlsw/gem/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/gemini-hlsw/gem/labels{/name}","releases_url":"https://api.github.com/repos/gemini-hlsw/gem/releases{/id}","deployments_url":"https://api.github.com/repos/gemini-hlsw/gem/deployments","created_at":"2016-08-15T22:29:54Z","updated_at":"2017-08-15T20:16:15Z","pushed_at":"2017-08-15T23:08:14Z","git_url":"git://github.com/gemini-hlsw/gem.git","ssh_url":"git@github.com:gemini-hlsw/gem.git","clone_url":"https://github.com/gemini-hlsw/gem.git","svn_url":"https://github.com/gemini-hlsw/gem","homepage":null,"size":8242,"stargazers_count":1,"watchers_count":1,"language":"Scala","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":4,"mirror_url":null,"open_issues_count":13,"forks":4,"open_issues":13,"watchers":1,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/gemini-hlsw/gem/pulls/116"},"html":{"href":"https://github.com/gemini-hlsw/gem/pull/116"},"issue":{"href":"https://api.github.com/repos/gemini-hlsw/gem/issues/116"},"comments":{"href":"https://api.github.com/repos/gemini-hlsw/gem/issues/116/comments"},"review_comments":{"href":"https://api.github.com/repos/gemini-hlsw/gem/pulls/116/comments"},"review_comment":{"href":"https://api.github.com/repos/gemini-hlsw/gem/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/gemini-hlsw/gem/pulls/116/commits"},"statuses":{"href":"https://api.github.com/repos/gemini-hlsw/gem/statuses/c1bfbebc89ce1cb9287cc2652cdc736810c1310e"}}}}
{"actor":{"display_login":"tpolecat"}}