github.com/l3x/learn-fp-go@v0.0.0-20171228022418-7639825d0b71/1-functional-fundamentals/ch01-pure-fp/02_fib/src/fibonacci/simple_test.go (about)

     1  package fibonacci
     2  
     3  import "testing"
     4  
     5  var FibTests = []struct {
     6  	a     int
     7  	expected int
     8  }{
     9  	{0, 0},
    10  	{1, 1},
    11  	{2, 1},
    12  	{3, 2},
    13  	{4, 3},
    14  	{5, 5},
    15  	{6, 8},
    16  	{21, 10946},
    17  	{43, 433494437},
    18  }
    19  
    20  func TestSimple(t *testing.T) {
    21  	for _, ft := range FibTests {
    22  		if v := FibSimple(ft.a); v != ft.expected {
    23  			t.Errorf("FibSimple(%d) returned %d, expected %d", ft.a, v, ft.expected)
    24  		}
    25  	}
    26  }
    27  
    28  func BenchmarkFibSimple(b *testing.B) {
    29  	fn := FibSimple
    30  	for i := 0; i < b.N; i++ {
    31  		_ = fn(8)
    32  	}
    33  }
    34  
    35  func benchmarkFibSimple(i int, b *testing.B) {
    36  	for n := 0; n < b.N; n++ {
    37  		FibSimple(i)
    38  	}
    39  }
    40  
    41  func BenchmarkFibSimple0(b *testing.B)  { benchmarkFibSimple(0, b) }
    42  func BenchmarkFibSimple1(b *testing.B)  { benchmarkFibSimple(1, b) }
    43  func BenchmarkFibSimple2(b *testing.B)  { benchmarkFibSimple(2, b) }
    44  func BenchmarkFibSimple3(b *testing.B)  { benchmarkFibSimple(3, b) }
    45  func BenchmarkFibSimple4(b *testing.B) { benchmarkFibSimple(4, b) }
    46  func BenchmarkFibSimple5(b *testing.B) { benchmarkFibSimple(5, b) }
    47  func BenchmarkFibSimple6(b *testing.B) { benchmarkFibSimple(6, b) }
    48  func BenchmarkFibSimple21(b *testing.B) { benchmarkFibSimple(21, b) }
    49  func BenchmarkFibSimple43(b *testing.B) { benchmarkFibSimple(43, b) }