-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy patheseq.lisp
40 lines (36 loc) · 1.89 KB
/
eseq.lisp
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
;;;; t/eseq.lisp - tests for `eseq' and related functionality.
(in-package #:cl-patterns/tests)
(in-suite cl-patterns-tests)
(test eseq
"Test basic eseq functionality"
(is (= 2
(eseq-length (eseq (list (event :foo 1) (event :foo 2)))))
"eseq-length does not return correct results")
(is (apply #'<= (mapcar #'beat
(eseq-events (eseq (list (event :beat 0)
(event :beat 1)
(event :beat 2)
(event :beat 3))))))
"eseq does not keep its events in order by beat")
(is-true (eop-p (lastcar (next-n (eseq (list (event :beat 0))) 2)))
"eseq does not yield eop at its end"))
(test bsubseq-eseq
"Test the bsubseq function on eseqs"
(is-true (every-event-equal (list (event :beat 1))
(bsubseq (eseq (list (event :beat 0)
(event :beat 1)
(event :beat 2)
(event :beat 3)))
1 2))
"every-event-equal doesn't select the correct event")
(is-true (every-event-equal (list (event :beat 1)
(event :beat 2))
(bsubseq (eseq (list (event :beat 0)
(event :beat 1)
(event :beat 2)
(event :beat 3)))
1 3))
"every-event-equal doesn't select the correct events")
(let ((source (pbind :dur (pn 1 4))))
(is (eq source (pattern-source (as-eseq source)))
"pattern-source does not return the source object for eseqs")))