Skip to content

Commit 61bc089

Browse files
committed
added tests for issue #2
1 parent c731116 commit 61bc089

File tree

1 file changed

+134
-0
lines changed

1 file changed

+134
-0
lines changed

rw_test.go

Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
package wav
2+
3+
import (
4+
"io/ioutil"
5+
"math"
6+
"os"
7+
"testing"
8+
)
9+
10+
func TestWriteRead_Int32(t *testing.T) {
11+
const (
12+
bits = 32
13+
rate = 44100
14+
)
15+
16+
f, err := ioutil.TempFile("", "wavPkgtest")
17+
if err != nil {
18+
t.Fatal(err)
19+
}
20+
21+
testFname := f.Name()
22+
23+
meta := File{
24+
Channels: 1,
25+
SampleRate: rate,
26+
SignificantBits: bits,
27+
}
28+
29+
writer, err := meta.NewWriter(f)
30+
if err != nil {
31+
t.Fatal(err)
32+
}
33+
34+
var freq float64
35+
freq = 0.0001
36+
37+
// one second
38+
for n := 0; n < rate; n += 1 {
39+
y := int32(0.8 * math.Pow(2, bits-1) * math.Sin(freq*float64(n)))
40+
freq += 0.000002
41+
42+
err = writer.WriteInt32(y)
43+
if err != nil {
44+
t.Fatal(err)
45+
}
46+
}
47+
err = writer.Close()
48+
if err != nil {
49+
t.Fatal(err)
50+
}
51+
52+
f, err = os.Open(testFname)
53+
if err != nil {
54+
t.Fatal(err)
55+
}
56+
57+
stat, err := f.Stat()
58+
if err != nil {
59+
t.Fatal(err)
60+
}
61+
62+
_, err = NewReader(f, stat.Size())
63+
if err != nil {
64+
t.Fatal(err)
65+
}
66+
67+
os.Remove(testFname)
68+
}
69+
70+
func TestWriteRead_Sample(t *testing.T) {
71+
const (
72+
bits = 16
73+
rate = 44100
74+
)
75+
76+
f, err := ioutil.TempFile("", "wavPkgtest")
77+
if err != nil {
78+
t.Fatal(err)
79+
}
80+
81+
testFname := f.Name()
82+
83+
meta := File{
84+
Channels: 1,
85+
SampleRate: rate,
86+
SignificantBits: bits,
87+
}
88+
89+
writer, err := meta.NewWriter(f)
90+
if err != nil {
91+
t.Fatal(err)
92+
}
93+
94+
var freq float64
95+
freq = 0.0001
96+
97+
var s = make([]byte, 2)
98+
// one second
99+
for n := 0; n < rate; n += 1 {
100+
y := int32(0.8 * math.Pow(2, bits-1) * math.Sin(freq*float64(n)))
101+
freq += 0.000002
102+
103+
// s[3] = byte((y >> 24) & 0xFF)
104+
// s[2] = byte((y >> 16) & 0xFF)
105+
s[1] = byte((y >> 8) & 0xFF)
106+
s[0] = byte(y & 0xFF)
107+
108+
err = writer.WriteSample(s)
109+
if err != nil {
110+
t.Fatal(err)
111+
}
112+
}
113+
err = writer.Close()
114+
if err != nil {
115+
t.Fatal(err)
116+
}
117+
118+
f, err = os.Open(testFname)
119+
if err != nil {
120+
t.Fatal(err)
121+
}
122+
123+
stat, err := f.Stat()
124+
if err != nil {
125+
t.Fatal(err)
126+
}
127+
128+
_, err = NewReader(f, stat.Size())
129+
if err != nil {
130+
t.Fatal(err)
131+
}
132+
133+
os.Remove(testFname)
134+
}

0 commit comments

Comments
 (0)