-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy patheventdelay_test.go
63 lines (54 loc) · 988 Bytes
/
eventdelay_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
package audio
import "testing"
func TestEventDelay(t *testing.T) {
var d EventDelay
Init(&d, Params{SampleRate: 1})
var e, e2 delayedEvent
d.Delay(4, e.f)
e.test(t, &d, 4)
e = false
e2 = false
d.Delay(4, e.f)
d.Delay(8, e2.f)
e.test(t, &d, 4)
e2.test(t, &d, 4)
e = false
e2 = false
d.Delay(8, e2.f)
d.Delay(4, e.f)
e.test(t, &d, 4)
e2.test(t, &d, 4)
e = false
e2 = false
d.Delay(4, e.f)
d.Delay(4, e2.f)
for i := 0; i < 4; i++ {
if e == true {
t.Fatalf("true before %d", i)
}
if e2 == true {
t.Fatalf("e2 true before %d", i)
}
d.Step()
}
if e == false {
t.Fatalf("false after %d", 4)
}
if e2 == false {
t.Fatalf("e2 false after %d", 4)
}
}
type delayedEvent bool
func (e *delayedEvent) f() { *e = true }
func (e *delayedEvent) test(t *testing.T, d *EventDelay, n int) {
t.Helper()
for i := 0; i < n; i++ {
if *e == true {
t.Fatalf("true before %d", i)
}
d.Step()
}
if *e == false {
t.Fatalf("false after %d", n)
}
}