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  }