Fix comment
[jscl.git] / tests / hash-tables.lisp
1
2 (let ((ht (make-hash-table))
3       (key "foo"))
4   (setf (gethash key ht) 10)
5   (test (null (gethash "foo" ht)))
6   (test (equal (gethash key ht) 10))
7   (setf (gethash 'foo ht) "lisp")
8   (test (string= (gethash 'foo ht) "lisp")))
9
10
11 (let ((ht (make-hash-table :test #'equal)))
12   (setf (gethash "foo" ht) 10)
13   (test (equal (gethash "foo" ht) 10)))
14
15
16 (let ((ht (make-hash-table :test #'equal)))
17   (setf (gethash "foo" ht) 10)
18   (test (eq (remhash "foo" ht) t))
19   (test (eq (remhash "foo" ht) nil))
20   (test (null (gethash "foo" ht))))
21
22
23 ;;; MAPHASH
24
25 (let ((ht (make-hash-table))
26       (count 0))
27   (maphash (lambda (key value)
28              (declare (ignore key value))
29              (inct count))
30            ht)
31   (test (zerop count)))
32
33 (let ((ht (make-hash-table))
34       (count 0))
35   (setf (gethash :x ht) 10)
36   (maphash (lambda (key value)
37              (setq count (1+ count)))
38            ht)
39   (test (= count 1)))
40
41 (let ((ht (make-hash-table)))
42   (setf (gethash :x ht) 10)
43   (setf (gethash :y ht) 20)
44   (maphash (lambda (key value)
45              (when (eq key :x)
46                (test (= value 10)))
47              (when (eq key :y)
48                (test (= value 20))))
49            ht))
50
51 (let ((ht (make-hash-table)))
52   (test
53    (eq nil (maphash (lambda (key value)
54                       (declare (ignore key value)))
55                     ht))))