github.com/Nixolay/training@v0.0.0-20220925080335-7dfc7a5893e8/golang/practice_unsafe/sum/sum_test.go (about) 1 package sum_test 2 3 import ( 4 "testing" 5 6 . "github.com/Nixolay/training/golang/practice_unsafe/sum" 7 . "github.com/smartystreets/goconvey/convey" 8 ) 9 10 const numberOfChecks = 100 11 12 func TestSum(t *testing.T) { 13 Convey("Test sum int range", t, func() { 14 data := []int{1, 2, 3, 4, 5, 6, 7, 8, 9} 15 actual := 45 16 Convey("Test function sum", func() { 17 expected := Sum(data) 18 So(expected, ShouldEqual, actual) 19 }) 20 Convey("Test function sum by range", func() { 21 expected := ByRange(data) 22 So(expected, ShouldEqual, actual) 23 }) 24 Convey("Test function sum by unsafe", func() { 25 expected := UnsafeSum(data) 26 So(expected, ShouldEqual, actual) 27 }) 28 }) 29 } 30 31 func BenchmarkSum(b *testing.B) { 32 data := []int{1, 2, 3, 4, 5, 6, 7, 8, 9} 33 34 for i := 0; i < numberOfChecks; i++ { 35 Sum(data) 36 } 37 } 38 39 func BenchmarkSumByRange(b *testing.B) { 40 data := []int{1, 2, 3, 4, 5, 6, 7, 8, 9} 41 42 for i := 0; i < numberOfChecks; i++ { 43 ByRange(data) 44 } 45 } 46 47 func BenchmarkUnsafeSum(b *testing.B) { 48 data := []int{1, 2, 3, 4, 5, 6, 7, 8, 9} 49 50 for i := 0; i < numberOfChecks; i++ { 51 UnsafeSum(data) 52 } 53 }