{"action":"created","comment":{"url":"https://api.github.com/repos/panoplyio/ep/pulls/comments/176062389","pull_request_review_id":105693441,"id":176062389,"diff_hunk":"@@ -57,12 +59,77 @@ func VerifyDataInterfaceInvariant(t *testing.T, data ep.Data) {\n \trequire.Equal(t, dataString, fmt.Sprintf(\"%+v\", data))\n }\n \n-// VerifyDataMarkNull makes sure null marking updates the input data\n-func VerifyDataMarkNull(t *testing.T, data ep.Data) {\n-\tif _, isDataset := data.(ep.Dataset); !isDataset {\n-\t\tidx := 1\n-\t\trequire.False(t, data.IsNull(idx))\n-\t\tdata.MarkNull(idx)\n-\t\trequire.True(t, data.IsNull(idx))\n-\t}\n+// VerifyNullsHandling makes sure all functions handel nulls\n+func VerifyNullsHandling(t *testing.T, typ ep.Type) {\n+\tdata := typ.Data(dataLength)\n+\tnullIdx := 1\n+\n+\tt.Run(\"TestData_IsNull_NoNulls\", func(t *testing.T) {\n+\t\tisNull := data.IsNull(nullIdx)\n+\t\trequire.False(t, isNull)\n+\t})\n+\n+\tdata.MarkNull(nullIdx)\n+\n+\tt.Run(\"TestData_IsNull_WithNulls\", func(t *testing.T) {\n+\t\tisNull := data.IsNull(nullIdx)\n+\t\trequire.True(t, isNull)\n+\t})\n+\n+\tt.Run(\"TestData_Equal_WithNulls\", func(t *testing.T) {\n+\t\tisEqual := data.Equal(data)\n+\t\trequire.True(t, isEqual)\n+\t})\n+\n+\tt.Run(\"TestData_IsNull_WithNulls\", func(t *testing.T) {\n+\t\tsize := data.Len()\n+\t\trequire.Equal(t, dataLength, size)\n+\t})\n+\n+\tt.Run(\"TestData_Swap_WithNulls\", func(t *testing.T) {\n+\t\tdata.Swap(0, nullIdx)\n+\t\trequire.True(t, data.IsNull(0))\n+\t\trequire.False(t, data.IsNull(nullIdx))\n+\t\tdata.Swap(0, nullIdx)\n+\t\trequire.True(t, data.IsNull(nullIdx))\n+\t\trequire.False(t, data.IsNull(0))\n+\t})\n+\n+\tt.Run(\"TestData_IsLess_WithNulls\", func(t *testing.T) {\n+\t\tisLess := data.Less(0, nullIdx)\n+\t\trequire.True(t, isLess)\n+\t\tisLess = data.Less(nullIdx, 0)\n+\t\trequire.False(t, isLess)\n+\t\tisLess = data.Less(nullIdx, nullIdx)\n+\t\trequire.False(t, isLess)\n+\t})\n+\n+\tt.Run(\"TestData_Type_WithNulls\", func(t *testing.T) {\n+\t\tdataType := data.Type()\n+\t\trequire.Equal(t, typ, dataType)\n+\t})\n+\n+\tt.Run(\"TestData_Slice_WithNulls\", func(t *testing.T) {\n+\t\tslicedData := data.Slice(0, data.Len()/2)\n+\t\trequire.True(t, slicedData.IsNull(nullIdx))\n+\t})\n+\n+\tt.Run(\"TestData_Append_WithNulls\", func(t *testing.T) {\n+\t\tappendData := data.Append(data)\n+\t\trequire.True(t, appendData.IsNull(nullIdx))\n+\t\trequire.True(t, appendData.IsNull(nullIdx+dataLength))\n+\t})\n+\n+\tt.Run(\"TestData_Duplicate_WithNulls\", func(t *testing.T) {\n+\t\tduplicateData := data.Duplicate(3)\n+\t\trequire.True(t, duplicateData.IsNull(nullIdx))\n+\t\trequire.True(t, duplicateData.IsNull(nullIdx+dataLength))\n+\t\trequire.True(t, duplicateData.IsNull(nullIdx+2*dataLength))\n+\t\trequire.False(t, duplicateData.IsNull(2*dataLength))\n+\t})\n+\n+\tt.Run(\"TestData_Strings_WithNulls\", func(t *testing.T) {\n+\t\ts := data.Strings()","path":"eptest/data.go","position":91,"original_position":91,"commit_id":"9eff4e1b6e9885ce87644cea3b09557009aeb2fa","original_commit_id":"9eff4e1b6e9885ce87644cea3b09557009aeb2fa","user":{"login":"aviaoh","id":22256371,"avatar_url":"https://avatars2.githubusercontent.com/u/22256371?v=4","gravatar_id":"","url":"https://api.github.com/users/aviaoh","html_url":"https://github.com/aviaoh","followers_url":"https://api.github.com/users/aviaoh/followers","following_url":"https://api.github.com/users/aviaoh/following{/other_user}","gists_url":"https://api.github.com/users/aviaoh/gists{/gist_id}","starred_url":"https://api.github.com/users/aviaoh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aviaoh/subscriptions","organizations_url":"https://api.github.com/users/aviaoh/orgs","repos_url":"https://api.github.com/users/aviaoh/repos","events_url":"https://api.github.com/users/aviaoh/events{/privacy}","received_events_url":"https://api.github.com/users/aviaoh/received_events","type":"User","site_admin":false},"body":"please rename to strings or something like that..","created_at":"2018-03-21T12:21:08Z","updated_at":"2018-03-21T12:22:32Z","html_url":"https://github.com/panoplyio/ep/pull/59#discussion_r176062389","pull_request_url":"https://api.github.com/repos/panoplyio/ep/pulls/59","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/panoplyio/ep/pulls/comments/176062389"},"html":{"href":"https://github.com/panoplyio/ep/pull/59#discussion_r176062389"},"pull_request":{"href":"https://api.github.com/repos/panoplyio/ep/pulls/59"}}},"pull_request":{"url":"https://api.github.com/repos/panoplyio/ep/pulls/59","id":176151085,"html_url":"https://github.com/panoplyio/ep/pull/59","diff_url":"https://github.com/panoplyio/ep/pull/59.diff","patch_url":"https://github.com/panoplyio/ep/pull/59.patch","issue_url":"https://api.github.com/repos/panoplyio/ep/issues/59","number":59,"state":"open","locked":false,"title":"Add test for all data Api function with null data","user":{"login":"shirHornstein","id":34413453,"avatar_url":"https://avatars0.githubusercontent.com/u/34413453?v=4","gravatar_id":"","url":"https://api.github.com/users/shirHornstein","html_url":"https://github.com/shirHornstein","followers_url":"https://api.github.com/users/shirHornstein/followers","following_url":"https://api.github.com/users/shirHornstein/following{/other_user}","gists_url":"https://api.github.com/users/shirHornstein/gists{/gist_id}","starred_url":"https://api.github.com/users/shirHornstein/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shirHornstein/subscriptions","organizations_url":"https://api.github.com/users/shirHornstein/orgs","repos_url":"https://api.github.com/users/shirHornstein/repos","events_url":"https://api.github.com/users/shirHornstein/events{/privacy}","received_events_url":"https://api.github.com/users/shirHornstein/received_events","type":"User","site_admin":false},"body":"","created_at":"2018-03-20T10:47:57Z","updated_at":"2018-03-21T12:22:32Z","closed_at":null,"merged_at":null,"merge_commit_sha":"a70d4f0126dd20b7061f666f2b05dc55d246d11b","assignee":{"login":"shirHornstein","id":34413453,"avatar_url":"https://avatars0.githubusercontent.com/u/34413453?v=4","gravatar_id":"","url":"https://api.github.com/users/shirHornstein","html_url":"https://github.com/shirHornstein","followers_url":"https://api.github.com/users/shirHornstein/followers","following_url":"https://api.github.com/users/shirHornstein/following{/other_user}","gists_url":"https://api.github.com/users/shirHornstein/gists{/gist_id}","starred_url":"https://api.github.com/users/shirHornstein/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shirHornstein/subscriptions","organizations_url":"https://api.github.com/users/shirHornstein/orgs","repos_url":"https://api.github.com/users/shirHornstein/repos","events_url":"https://api.github.com/users/shirHornstein/events{/privacy}","received_events_url":"https://api.github.com/users/shirHornstein/received_events","type":"User","site_admin":false},"assignees":[{"login":"shirHornstein","id":34413453,"avatar_url":"https://avatars0.githubusercontent.com/u/34413453?v=4","gravatar_id":"","url":"https://api.github.com/users/shirHornstein","html_url":"https://github.com/shirHornstein","followers_url":"https://api.github.com/users/shirHornstein/followers","following_url":"https://api.github.com/users/shirHornstein/following{/other_user}","gists_url":"https://api.github.com/users/shirHornstein/gists{/gist_id}","starred_url":"https://api.github.com/users/shirHornstein/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shirHornstein/subscriptions","organizations_url":"https://api.github.com/users/shirHornstein/orgs","repos_url":"https://api.github.com/users/shirHornstein/repos","events_url":"https://api.github.com/users/shirHornstein/events{/privacy}","received_events_url":"https://api.github.com/users/shirHornstein/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/panoplyio/ep/pulls/59/commits","review_comments_url":"https://api.github.com/repos/panoplyio/ep/pulls/59/comments","review_comment_url":"https://api.github.com/repos/panoplyio/ep/pulls/comments{/number}","comments_url":"https://api.github.com/repos/panoplyio/ep/issues/59/comments","statuses_url":"https://api.github.com/repos/panoplyio/ep/statuses/9eff4e1b6e9885ce87644cea3b09557009aeb2fa","head":{"label":"shirHornstein:typesTest","ref":"typesTest","sha":"9eff4e1b6e9885ce87644cea3b09557009aeb2fa","user":{"login":"shirHornstein","id":34413453,"avatar_url":"https://avatars0.githubusercontent.com/u/34413453?v=4","gravatar_id":"","url":"https://api.github.com/users/shirHornstein","html_url":"https://github.com/shirHornstein","followers_url":"https://api.github.com/users/shirHornstein/followers","following_url":"https://api.github.com/users/shirHornstein/following{/other_user}","gists_url":"https://api.github.com/users/shirHornstein/gists{/gist_id}","starred_url":"https://api.github.com/users/shirHornstein/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shirHornstein/subscriptions","organizations_url":"https://api.github.com/users/shirHornstein/orgs","repos_url":"https://api.github.com/users/shirHornstein/repos","events_url":"https://api.github.com/users/shirHornstein/events{/privacy}","received_events_url":"https://api.github.com/users/shirHornstein/received_events","type":"User","site_admin":false},"repo":{"id":116241562,"name":"ep","full_name":"shirHornstein/ep","owner":{"login":"shirHornstein","id":34413453,"avatar_url":"https://avatars0.githubusercontent.com/u/34413453?v=4","gravatar_id":"","url":"https://api.github.com/users/shirHornstein","html_url":"https://github.com/shirHornstein","followers_url":"https://api.github.com/users/shirHornstein/followers","following_url":"https://api.github.com/users/shirHornstein/following{/other_user}","gists_url":"https://api.github.com/users/shirHornstein/gists{/gist_id}","starred_url":"https://api.github.com/users/shirHornstein/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shirHornstein/subscriptions","organizations_url":"https://api.github.com/users/shirHornstein/orgs","repos_url":"https://api.github.com/users/shirHornstein/repos","events_url":"https://api.github.com/users/shirHornstein/events{/privacy}","received_events_url":"https://api.github.com/users/shirHornstein/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/shirHornstein/ep","description":"Distributed Query Processing & Execution Framework","fork":true,"url":"https://api.github.com/repos/shirHornstein/ep","forks_url":"https://api.github.com/repos/shirHornstein/ep/forks","keys_url":"https://api.github.com/repos/shirHornstein/ep/keys{/key_id}","collaborators_url":"https://api.github.com/repos/shirHornstein/ep/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/shirHornstein/ep/teams","hooks_url":"https://api.github.com/repos/shirHornstein/ep/hooks","issue_events_url":"https://api.github.com/repos/shirHornstein/ep/issues/events{/number}","events_url":"https://api.github.com/repos/shirHornstein/ep/events","assignees_url":"https://api.github.com/repos/shirHornstein/ep/assignees{/user}","branches_url":"https://api.github.com/repos/shirHornstein/ep/branches{/branch}","tags_url":"https://api.github.com/repos/shirHornstein/ep/tags","blobs_url":"https://api.github.com/repos/shirHornstein/ep/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/shirHornstein/ep/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/shirHornstein/ep/git/refs{/sha}","trees_url":"https://api.github.com/repos/shirHornstein/ep/git/trees{/sha}","statuses_url":"https://api.github.com/repos/shirHornstein/ep/statuses/{sha}","languages_url":"https://api.github.com/repos/shirHornstein/ep/languages","stargazers_url":"https://api.github.com/repos/shirHornstein/ep/stargazers","contributors_url":"https://api.github.com/repos/shirHornstein/ep/contributors","subscribers_url":"https://api.github.com/repos/shirHornstein/ep/subscribers","subscription_url":"https://api.github.com/repos/shirHornstein/ep/subscription","commits_url":"https://api.github.com/repos/shirHornstein/ep/commits{/sha}","git_commits_url":"https://api.github.com/repos/shirHornstein/ep/git/commits{/sha}","comments_url":"https://api.github.com/repos/shirHornstein/ep/comments{/number}","issue_comment_url":"https://api.github.com/repos/shirHornstein/ep/issues/comments{/number}","contents_url":"https://api.github.com/repos/shirHornstein/ep/contents/{+path}","compare_url":"https://api.github.com/repos/shirHornstein/ep/compare/{base}...{head}","merges_url":"https://api.github.com/repos/shirHornstein/ep/merges","archive_url":"https://api.github.com/repos/shirHornstein/ep/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/shirHornstein/ep/downloads","issues_url":"https://api.github.com/repos/shirHornstein/ep/issues{/number}","pulls_url":"https://api.github.com/repos/shirHornstein/ep/pulls{/number}","milestones_url":"https://api.github.com/repos/shirHornstein/ep/milestones{/number}","notifications_url":"https://api.github.com/repos/shirHornstein/ep/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/shirHornstein/ep/labels{/name}","releases_url":"https://api.github.com/repos/shirHornstein/ep/releases{/id}","deployments_url":"https://api.github.com/repos/shirHornstein/ep/deployments","created_at":"2018-01-04T09:33:53Z","updated_at":"2018-03-20T10:34:39Z","pushed_at":"2018-03-21T10:14:31Z","git_url":"git://github.com/shirHornstein/ep.git","ssh_url":"git@github.com:shirHornstein/ep.git","clone_url":"https://github.com/shirHornstein/ep.git","svn_url":"https://github.com/shirHornstein/ep","homepage":"http://godoc.org/github.com/panoplyio/ep","size":331,"stargazers_count":0,"watchers_count":0,"language":"Go","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":null,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"panoplyio:master","ref":"master","sha":"e1f7473fb64d1d38274b2994c788b7ea0e6cf956","user":{"login":"panoplyio","id":13719543,"avatar_url":"https://avatars2.githubusercontent.com/u/13719543?v=4","gravatar_id":"","url":"https://api.github.com/users/panoplyio","html_url":"https://github.com/panoplyio","followers_url":"https://api.github.com/users/panoplyio/followers","following_url":"https://api.github.com/users/panoplyio/following{/other_user}","gists_url":"https://api.github.com/users/panoplyio/gists{/gist_id}","starred_url":"https://api.github.com/users/panoplyio/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/panoplyio/subscriptions","organizations_url":"https://api.github.com/users/panoplyio/orgs","repos_url":"https://api.github.com/users/panoplyio/repos","events_url":"https://api.github.com/users/panoplyio/events{/privacy}","received_events_url":"https://api.github.com/users/panoplyio/received_events","type":"Organization","site_admin":false},"repo":{"id":93925299,"name":"ep","full_name":"panoplyio/ep","owner":{"login":"panoplyio","id":13719543,"avatar_url":"https://avatars2.githubusercontent.com/u/13719543?v=4","gravatar_id":"","url":"https://api.github.com/users/panoplyio","html_url":"https://github.com/panoplyio","followers_url":"https://api.github.com/users/panoplyio/followers","following_url":"https://api.github.com/users/panoplyio/following{/other_user}","gists_url":"https://api.github.com/users/panoplyio/gists{/gist_id}","starred_url":"https://api.github.com/users/panoplyio/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/panoplyio/subscriptions","organizations_url":"https://api.github.com/users/panoplyio/orgs","repos_url":"https://api.github.com/users/panoplyio/repos","events_url":"https://api.github.com/users/panoplyio/events{/privacy}","received_events_url":"https://api.github.com/users/panoplyio/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/panoplyio/ep","description":"Distributed Query Processing & Execution Framework","fork":false,"url":"https://api.github.com/repos/panoplyio/ep","forks_url":"https://api.github.com/repos/panoplyio/ep/forks","keys_url":"https://api.github.com/repos/panoplyio/ep/keys{/key_id}","collaborators_url":"https://api.github.com/repos/panoplyio/ep/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/panoplyio/ep/teams","hooks_url":"https://api.github.com/repos/panoplyio/ep/hooks","issue_events_url":"https://api.github.com/repos/panoplyio/ep/issues/events{/number}","events_url":"https://api.github.com/repos/panoplyio/ep/events","assignees_url":"https://api.github.com/repos/panoplyio/ep/assignees{/user}","branches_url":"https://api.github.com/repos/panoplyio/ep/branches{/branch}","tags_url":"https://api.github.com/repos/panoplyio/ep/tags","blobs_url":"https://api.github.com/repos/panoplyio/ep/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/panoplyio/ep/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/panoplyio/ep/git/refs{/sha}","trees_url":"https://api.github.com/repos/panoplyio/ep/git/trees{/sha}","statuses_url":"https://api.github.com/repos/panoplyio/ep/statuses/{sha}","languages_url":"https://api.github.com/repos/panoplyio/ep/languages","stargazers_url":"https://api.github.com/repos/panoplyio/ep/stargazers","contributors_url":"https://api.github.com/repos/panoplyio/ep/contributors","subscribers_url":"https://api.github.com/repos/panoplyio/ep/subscribers","subscription_url":"https://api.github.com/repos/panoplyio/ep/subscription","commits_url":"https://api.github.com/repos/panoplyio/ep/commits{/sha}","git_commits_url":"https://api.github.com/repos/panoplyio/ep/git/commits{/sha}","comments_url":"https://api.github.com/repos/panoplyio/ep/comments{/number}","issue_comment_url":"https://api.github.com/repos/panoplyio/ep/issues/comments{/number}","contents_url":"https://api.github.com/repos/panoplyio/ep/contents/{+path}","compare_url":"https://api.github.com/repos/panoplyio/ep/compare/{base}...{head}","merges_url":"https://api.github.com/repos/panoplyio/ep/merges","archive_url":"https://api.github.com/repos/panoplyio/ep/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/panoplyio/ep/downloads","issues_url":"https://api.github.com/repos/panoplyio/ep/issues{/number}","pulls_url":"https://api.github.com/repos/panoplyio/ep/pulls{/number}","milestones_url":"https://api.github.com/repos/panoplyio/ep/milestones{/number}","notifications_url":"https://api.github.com/repos/panoplyio/ep/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/panoplyio/ep/labels{/name}","releases_url":"https://api.github.com/repos/panoplyio/ep/releases{/id}","deployments_url":"https://api.github.com/repos/panoplyio/ep/deployments","created_at":"2017-06-10T08:10:41Z","updated_at":"2018-03-20T10:04:30Z","pushed_at":"2018-03-21T10:14:32Z","git_url":"git://github.com/panoplyio/ep.git","ssh_url":"git@github.com:panoplyio/ep.git","clone_url":"https://github.com/panoplyio/ep.git","svn_url":"https://github.com/panoplyio/ep","homepage":"http://godoc.org/github.com/panoplyio/ep","size":323,"stargazers_count":0,"watchers_count":0,"language":"Go","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":5,"mirror_url":null,"archived":false,"open_issues_count":2,"license":null,"forks":5,"open_issues":2,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/panoplyio/ep/pulls/59"},"html":{"href":"https://github.com/panoplyio/ep/pull/59"},"issue":{"href":"https://api.github.com/repos/panoplyio/ep/issues/59"},"comments":{"href":"https://api.github.com/repos/panoplyio/ep/issues/59/comments"},"review_comments":{"href":"https://api.github.com/repos/panoplyio/ep/pulls/59/comments"},"review_comment":{"href":"https://api.github.com/repos/panoplyio/ep/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/panoplyio/ep/pulls/59/commits"},"statuses":{"href":"https://api.github.com/repos/panoplyio/ep/statuses/9eff4e1b6e9885ce87644cea3b09557009aeb2fa"}},"author_association":"COLLABORATOR"}}
{"actor":{"display_login":"aviaoh"}}