1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
| package gotest
import ( "testing" )
func TestMyFib(t *testing.T) { cases := []struct { n int result int32 }{ { 0, 0, }, { 1, 1, }, { 2, 1, }, { 3, 2, }, { 4, 3, }, { 5, 5, }, { 10, 55, }, { 20, 6765, }, }
_, err := MyFib(-1) if err == nil { t.Errorf("error should not be nil\n") }
for _, c := range cases { result, err := MyFib(c.n) if err != nil { t.Errorf("MyFib error: %v\n", err) }
t.Logf("result: %d\n", result)
if result != c.result { t.Errorf("expected %d, get: %d\n", c.result, result) } } }
func BenchmarkMyFib5(b *testing.B) { for n := 0; n < b.N; n++ { MyFib(5) } }
func BenchmarkMyFib10(b *testing.B) { for n := 0; n < b.N; n++ { MyFib(10) } }
func BenchmarkMyFib20(b *testing.B) { for n := 0; n < b.N; n++ { MyFib(20) } }
func BenchmarkMyFib30(b *testing.B) { for n := 0; n < b.N; n++ { MyFib(30) } }
|