damccorm commented on code in PR #17813:
URL: https://github.com/apache/beam/pull/17813#discussion_r888079762


##########
sdks/go/pkg/beam/testing/passert/count.go:
##########
@@ -30,6 +30,10 @@ func Count(s beam.Scope, col beam.PCollection, name string, 
count int) {
        if typex.IsKV(col.Type()) {
                col = beam.DropKey(s, col)
        }
+
+       if count > 0 {
+               NonEmpty(s, col)

Review Comment:
   Do we need to add the same thing to 
[Hash](https://github.com/apache/beam/blob/9e986e74efff2a7293ec5c7a86917479882d9590/sdks/go/pkg/beam/testing/passert/hash.go#L36)
 and 
[Sum](https://github.com/apache/beam/blob/9e986e74efff2a7293ec5c7a86917479882d9590/sdks/go/pkg/beam/testing/passert/sum.go#L33)?
 I think an empty pcollection would silently pass for both of those as well



##########
sdks/go/pkg/beam/testing/passert/count_test.go:
##########
@@ -22,24 +22,62 @@ import (
        "github.com/apache/beam/sdks/v2/go/pkg/beam/testing/ptest"
 )
 
-func TestCount_Good(t *testing.T) {
-       p, s := beam.NewPipelineWithRoot()
-       col := beam.Create(s, "a", "b", "c", "d", "e")
-       count := 5
+func TestCount(t *testing.T) {
+       var tests = []struct {
+               name     string
+               elements []string
+               count    int
+       }{
+               {
+                       "full",
+                       []string{"a", "b", "c", "d", "e"},
+                       5,
+               },
+               {
+                       "empty",
+                       []string{},
+                       0,
+               },
+       }
+       for _, test := range tests {
+               t.Run(test.name, func(t *testing.T) {
+                       p, s := beam.NewPipelineWithRoot()
+                       col := beam.CreateList(s, test.elements)
 
-       Count(s, col, "TestCount_Good", count)
-       if err := ptest.Run(p); err != nil {
-               t.Errorf("Pipeline failed: %v", err)
+                       Count(s, col, test.name, test.count)
+                       if err := ptest.Run(p); err != nil {
+                               t.Errorf("Pipeline failed: %v", err)
+                       }
+               })
        }
 }
 
 func TestCount_Bad(t *testing.T) {

Review Comment:
   Can we simplify and combine these tests into 1 by adding a `expectErr` 
variable to the tests struct?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to