-
Notifications
You must be signed in to change notification settings - Fork 1
/
int32_test.go
84 lines (76 loc) · 2.29 KB
/
int32_test.go
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
package blas
import (
"github.com/stretchr/testify/assert"
"testing"
)
const nInts = 255
var int32Data1 [nInts]int32
var expectedAddInt32s Int32s
var expectedSubInt32s Int32s
var expectedMulInt32s Int32s
var expectedDivInt32s Int32s
var int32Data2 [nInts]int32
func init() {
for i := 0; i < len(int32Data1); i++ {
int32Data1[i] = int32(i)
int32Data2[i] = int32(2 * (i + 1))
}
expectedAddInt32s = make([]int32, len(int32Data1))
expectedSubInt32s = make([]int32, len(int32Data1))
expectedMulInt32s = make([]int32, len(int32Data1))
expectedDivInt32s = make([]int32, len(int32Data1))
expectedAddInt32s.addInt32(int32Data1[:], int32Data2[:])
expectedSubInt32s.subInt32(int32Data1[:], int32Data2[:])
expectedMulInt32s.mulInt32(int32Data1[:], int32Data2[:])
}
func TestAddlInt32(t *testing.T) {
out := Int32s(make([]int32, len(int32Data1)))
out.AddInt32(int32Data1[:], int32Data2[:])
assert.EqualValues(t, expectedAddInt32s, out, "TestAddInt32")
}
func TestSubInt32(t *testing.T) {
out := Int32s(make([]int32, len(int32Data1)))
out.SubInt32(int32Data1[:], int32Data2[:])
assert.EqualValues(t, expectedSubInt32s, out, "TestSubInt32")
}
func TestMulInt32(t *testing.T) {
out := Int32s(make([]int32, len(int32Data1)))
out.MulInt32(int32Data1[:], int32Data2[:])
assert.EqualValues(t, expectedMulInt32s, out, "TestMulInt32")
}
func BenchmarkAddInt32Naive(b *testing.B) {
out := Int32s(make([]int32, len(int32Data1)))
for i := 0; i < b.N; i++ {
out.addInt32(int32Data1[:], int32Data2[:])
}
}
func BenchmarkAddInt32(b *testing.B) {
out := Int32s(make([]int32, len(int32Data1)))
for i := 0; i < b.N; i++ {
out.AddInt32(int32Data1[:], int32Data2[:])
}
}
func BenchmarkSubInt32Naive(b *testing.B) {
out := Int32s(make([]int32, len(int32Data1)))
for i := 0; i < b.N; i++ {
out.subInt32(int32Data1[:], int32Data2[:])
}
}
func BenchmarkSubInt32(b *testing.B) {
out := Int32s(make([]int32, len(int32Data1)))
for i := 0; i < b.N; i++ {
out.SubInt32(int32Data1[:], int32Data2[:])
}
}
func BenchmarkMulInt32Naive(b *testing.B) {
out := Int32s(make([]int32, len(int32Data1)))
for i := 0; i < b.N; i++ {
out.mulInt32(int32Data1[:], int32Data2[:])
}
}
func BenchmarkMulInt32(b *testing.B) {
out := Int32s(make([]int32, len(int32Data1)))
for i := 0; i < b.N; i++ {
out.MulInt32(int32Data1[:], int32Data2[:])
}
}