github.com/apache/beam/sdks/v2@v2.48.2/go/test/integration/primitives/flatten.go (about)

     1  // Licensed to the Apache Software Foundation (ASF) under one or more
     2  // contributor license agreements.  See the NOTICE file distributed with
     3  // this work for additional information regarding copyright ownership.
     4  // The ASF licenses this file to You under the Apache License, Version 2.0
     5  // (the "License"); you may not use this file except in compliance with
     6  // the License.  You may obtain a copy of the License at
     7  //
     8  //    http://www.apache.org/licenses/LICENSE-2.0
     9  //
    10  // Unless required by applicable law or agreed to in writing, software
    11  // distributed under the License is distributed on an "AS IS" BASIS,
    12  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13  // See the License for the specific language governing permissions and
    14  // limitations under the License.
    15  
    16  package primitives
    17  
    18  import (
    19  	"github.com/apache/beam/sdks/v2/go/pkg/beam"
    20  	"github.com/apache/beam/sdks/v2/go/pkg/beam/testing/passert"
    21  )
    22  
    23  // Flatten tests flatten.
    24  func Flatten() *beam.Pipeline {
    25  	p, s := beam.NewPipelineWithRoot()
    26  
    27  	a := beam.Create(s, 1, 2, 3)
    28  	b := beam.Create(s, 4, 5, 6)
    29  	c := beam.Create(s, 7, 8, 9)
    30  
    31  	flat := beam.Flatten(s, a, b, c)
    32  	passert.Sum(s, flat, "flat", 9, 45)
    33  
    34  	return p
    35  }
    36  
    37  // FlattenDups tests flatten with the same input multiple times.
    38  func FlattenDup() *beam.Pipeline {
    39  	p, s := beam.NewPipelineWithRoot()
    40  
    41  	a := beam.Create(s, 1, 2, 3)
    42  	b := beam.Create(s, 4, 5, 6)
    43  
    44  	flat := beam.Flatten(s, a, b, a)
    45  	passert.Sum(s, flat, "flat", 9, 27)
    46  
    47  	return p
    48  }