File: queue.l

package info (click to toggle)
euslisp 9.27%2Bdfsg-7
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye
  • size: 55,344 kB
  • sloc: ansic: 41,162; lisp: 3,339; makefile: 256; sh: 208; asm: 138; python: 53
file content (54 lines) | stat: -rw-r--r-- 2,218 bytes parent folder | download | duplicates (3)
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
(require :unittest "lib/llib/unittest.l")

(init-unit-test)

(deftest test-queue ;; fifo queue
  (let (q e)
    (setq q (instance queue :init))
    ;; enqueue
    (dotimes (i 5) (send q :enqueue i))
    (format t "queue ~A, length ~A~%" (car q) (send q :length))
    (assert (= (send q :length) 5) "length of ~A is 5" (car q))
    (assert (equal (car q) '(0 1 2 3 4)) "entity of queue ~A" (car q))
    ;; search
    (setq e (send q :search 3))
    (format t "queue ~A, searched item ~A~%" (car q) e)
    (assert (= e 3) "searched item is ~A" e)
    (setq e (send q :search 15))
    (format t "queue ~A, searched item ~A~%" (car q) e)
    (assert (null e) "searched item is ~A" e)
    ;; delete
    (setq e (send q :delete 3))
    (format t "queue ~A, deleteed item ~A~%" (car q) e)
    (assert (equal (car q) '(0 1 2 4))"deleteed item is ~A" e)
    (setq e (send q :delete 15))
    (format t "queue ~A, deleteed item ~A~%" (car q) e)
    (assert (equal (car q) '(0 1 2 4))"deleteed item is ~A" e)
    ;; trim
    (send q :trim 3)
    (format t "queue ~A, length ~A~%" (car q) (send q :length))
    (assert (equal (car q) '(1 2 4)) "entity of queue ~A" (car q))
    (assert (= (send q :length) 3) "length of ~A is 3" (car q))
    (send q :trim 15)
    (format t "queue ~A, length ~A~%" (car q) (send q :length))
    (assert (equal (car q) '(1 2 4)) "entity of queue ~A" (car q))
    (assert (= (send q :length) 3) "length of ~A is 3" (car q))
    ;; dequeue
    (setq e (send q :dequeue))
    (format t "queue ~A, dequeued item ~A~%" (car q) e)
    (assert (= e 1) "dequeued item is ~A" e)
    (setq e (send q :dequeue))
    (format t "queue ~A, dequeued item ~A, empty? ~A~%" (car q) e (send q :empty?))
    (assert (= e 2) "dequeued item is ~A" e)
    (assert (null (send q :empty?)) "queue is empty" (car q))
    (setq e (send q :dequeue))
    (format t "queue ~A, dequeued item ~A~%" (car q) e)
    (assert (= e 4) "dequeued item is ~A" e)
    (format t "queue ~A, length ~A, empty? ~A~%" (car q) (send q :length) (send q :empty?))
    (assert (= (send q :length) 0) "length of ~A must be 5" (car q))
    (assert (send q :empty?) "queue is empty" (car q))
    ))

(eval-when (load eval)
  (run-all-tests)
  (exit))