Skip to content

Commit 8d9d064

Browse files
committed
Add test/priority-queue.l for euslisp/EusLisp#270
1 parent 51bded9 commit 8d9d064

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

irteus/test/priority-queue.l

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
(require :unittest "lib/llib/unittest.l")
2+
3+
(init-unit-test)
4+
5+
(deftest test-priority-queue
6+
(let (q e)
7+
(setq q (instance priority-queue :init))
8+
;; push
9+
(dolist (i (list 1 5 3 2 0 4 2)) (send q :push i))
10+
(format t "priority-queue ~A, length ~A~%"
11+
(send q :get-val 'lisp::heap)
12+
(send q :length))
13+
(assert (= (send q :length) 7) "length of ~A is 7" (send q :get-val 'lisp::heap))
14+
;; pop
15+
(dolist (i (list 0 1 2 2 3 4 5))
16+
(assert (not (send q :empty)) "queue is not empty")
17+
(setq e (send q :pop))
18+
(format t "queue ~A, popped item ~A~%"
19+
(send q :get-val 'lisp::heap) e)
20+
(assert (= e i) "dequeued item is ~A" e))
21+
(assert (send q :empty) "queue is empty")))
22+
23+
(run-all-tests)
24+
(exit)

0 commit comments

Comments
 (0)