|
- (import "alist.slime")
-
- (define a (make-alist))
- ;; a == ()
-
- (assert (= (first a) ()))
-
- (alist-set! a 'key1 'value1)
- ;; a == (key1: value1)
-
- (assert (= (alist-get a 'key1) 'value1))
- (assert (alist-key-exists? a 'key1))
- (assert (not (alist-key-exists? a 'key2)))
-
- (alist-set! a 'key2 'value2)
- ;; a == (key2: value2,
- ;; key1: value1)
-
- (assert (= (alist-get a 'key2) 'value2))
- (assert (alist-key-exists? a 'key2))
- (assert (= (alist-find a 'key2) 0))
- (assert (= (alist-find a 'key1) 1))
- (assert (= (length (first a)) 2))
-
-
- (alist-set! a 'key1 'value3)
- ;; a == (key1: value3,
- ;; key2: value2,
- ;; key1: value1)
-
- (assert (= (length (first a)) 3))
- (assert (= (alist-get a 'key1) 'value3))
-
- (alist-set-overwrite! a 'key1 'value4)
- ;; a == (key1: value4,
- ;; key2: value2,
- ;; key1: value1)
-
- (assert (= (length (first a)) 3))
- (assert (= (alist-get a 'key1) 'value4))
-
- (alist-remove! a 'key1)
- ;; a == (key2: value2,
- ;; key1: value1)
-
- (assert (= (length (first a)) 2))
- (assert (= (alist-get a 'key1) 'value1))
- (assert (= (alist-get a 'key2) 'value2))
|