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