Source file
src/simd/testdata/tostring_test.go
1
2
3
4
5
6
7 package testdata_test
8
9 import (
10 "fmt"
11 "simd"
12 "testing"
13 )
14
15 func fillUint8s(f func(i int) uint8) simd.Uint8s {
16 l := simd.Uint8s{}.Len()
17 x := make([]uint8, l, l)
18 for i := range l {
19 x[i] = f(i)
20 }
21 return simd.LoadUint8s(x)
22 }
23
24 func fillFloat32s(f func(i int) float32) simd.Float32s {
25 l := simd.Float32s{}.Len()
26 x := make([]float32, l, l)
27 for i := range l {
28 x[i] = f(i)
29 }
30 return simd.LoadFloat32s(x)
31 }
32
33 func stringFor(l int, f func(i int) int) string {
34 pfx := "{"
35 var want string
36 for i := range l {
37 want += pfx
38 pfx = ","
39 want += fmt.Sprintf("%d", f(i))
40 }
41 want += "}"
42 return want
43 }
44
45 func TestToString(t *testing.T) {
46 a := fillUint8s(func(i int) uint8 { return uint8(i) & 1 })
47 b := fillUint8s(func(i int) uint8 { return uint8(i>>1) & 1 })
48 m := a.Equal(b)
49 wantM := stringFor(a.Len(),
50 func(i int) int {
51 if i&1 == (i>>1)&1 {
52 return 1
53 }
54 return 0
55 })
56 if got := m.String(); wantM != got {
57 t.Errorf("wantM=%s, got=%s", wantM, got)
58 }
59 wantA := stringFor(a.Len(),
60 func(i int) int {
61 return i & 1
62 })
63 if got := a.String(); wantA != got {
64 t.Errorf("wantA=%s, got=%s", wantA, got)
65 }
66
67 f := fillFloat32s(func(i int) float32 { return float32(i) })
68 wantF := stringFor(f.Len(),
69 func(i int) int {
70 return i
71 })
72 if got := f.String(); wantF != got {
73 t.Errorf("wantF=%s, got=%s", wantF, got)
74 }
75 }
76
View as plain text