lota things

This commit is contained in:
Felix Brendel
2019-06-27 11:11:18 +02:00
parent 6f5ecc87b0
commit efded2f9b8
13 changed files with 3211 additions and 199 deletions
+49
View File
@@ -0,0 +1,49 @@
(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))
(pprint-alist a)
(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))