github.com/packtpublishing/learning-functional-programming-in-go@v0.0.0-20230130084745-8b849f6d58c4/Chapter01/02_fib/03_channel_test.go (about) 1 package fib 2 3 import "testing" 4 5 func TestChanneled(t *testing.T) { 6 for _, ft := range fibTests { 7 if v := FibChanneled(ft.a); v != ft.expected { 8 t.Errorf("FibChanneled(%d) returned %d, expected %d", ft.a, v, ft.expected) 9 } 10 } 11 } 12 13 func BenchmarkFibChanneled(b *testing.B) { 14 fn := FibChanneled 15 for i := 0; i < b.N; i++ { 16 _ = fn(8) 17 } 18 } 19 20 func benchmarkFibChanneled(i int, b *testing.B) { 21 for n := 0; n < b.N; n++ { 22 FibChanneled(i) 23 } 24 } 25 26 func BenchmarkFibChanneled1(b *testing.B) { benchmarkFibChanneled(1, b) } 27 func BenchmarkFibChanneled2(b *testing.B) { benchmarkFibChanneled(2, b) } 28 func BenchmarkFibChanneled3(b *testing.B) { benchmarkFibChanneled(3, b) } 29 func BenchmarkFibChanneled10(b *testing.B) { benchmarkFibChanneled(4, b) } 30 func BenchmarkFibChanneled20(b *testing.B) { benchmarkFibChanneled(20, b) } 31 func BenchmarkFibChanneled40(b *testing.B) { benchmarkFibChanneled(42, b) }