github.com/l3x/learn-fp-go@v0.0.0-20171228022418-7639825d0b71/1-functional-fundamentals/ch01-pure-fp/02_fib/src/fibonacci/memoize_test.go (about) 1 package fibonacci 2 3 import "testing" 4 5 func TestMemoized(t *testing.T) { 6 for _, ft := range FibTests { 7 if v := FibMemoized(ft.a); v != ft.expected { 8 t.Errorf("FibMemoized(%d) returned %d, expected %d", ft.a, v, ft.expected) 9 } 10 } 11 } 12 13 func BenchmarkFibMemoized(b *testing.B) { 14 fn := FibMemoized 15 for i := 0; i < b.N; i++ { 16 _ = fn(8) 17 } 18 } 19 20 func benchmarkFibMemoized(i int, b *testing.B) { 21 for n := 0; n < b.N; n++ { 22 FibMemoized(i) 23 } 24 } 25 26 func BenchmarkFibMemoized0(b *testing.B) { benchmarkFibMemoized(0, b) } 27 func BenchmarkFibMemoized1(b *testing.B) { benchmarkFibMemoized(1, b) } 28 func BenchmarkFibMemoized2(b *testing.B) { benchmarkFibMemoized(2, b) } 29 func BenchmarkFibMemoized3(b *testing.B) { benchmarkFibMemoized(3, b) } 30 func BenchmarkFibMemoized4(b *testing.B) { benchmarkFibMemoized(4, b) } 31 func BenchmarkFibMemoized5(b *testing.B) { benchmarkFibMemoized(5, b) } 32 func BenchmarkFibMemoized6(b *testing.B) { benchmarkFibMemoized(6, b) } 33 func BenchmarkFibMemoized10(b *testing.B) { benchmarkFibMemoized(10, b) } 34 func BenchmarkFibMemoized21(b *testing.B) { benchmarkFibMemoized(21, b) } 35 func BenchmarkFibMemoized43(b *testing.B) { benchmarkFibMemoized(43, b) }