github.com/vmware/govmomi@v0.51.0/vim25/progress/scale_test.go (about) 1 // © Broadcom. All Rights Reserved. 2 // The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. 3 // SPDX-License-Identifier: Apache-2.0 4 5 package progress 6 7 import "testing" 8 9 func TestScaleMany(t *testing.T) { 10 ch := make(chan Report) 11 a := NewAggregator(dummySinker{ch}) 12 defer a.Done() 13 14 s := Scale(a, 5) 15 16 go func() { 17 for i := 0; i < 5; i++ { 18 go func(ch chan<- Report) { 19 ch <- dummyReport{p: 0.0} 20 ch <- dummyReport{p: 50.0} 21 close(ch) 22 }(s.Sink()) 23 } 24 }() 25 26 // Expect percentages to be scaled across sinks 27 for p := float32(0.0); p < 100.0; p += 10.0 { 28 r := <-ch 29 if r.Percentage() != p { 30 t.Errorf("Expected percentage to be: %.0f%%", p) 31 } 32 } 33 }