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) }