206937c6 | (in-package :patmatch/test) |
012d021d | (define-test let-pat*) |
206937c6 | (define-test let-pat*-handles-cons |
012d021d | :parent let-pat* (is = 2 (let-pat* (((cons a b) '(2 . 3))) |
206937c6 | (declare (ignore b)) a)) |
012d021d | (is = 3 (let-pat* (((cons a b) '(2 . 3))) |
206937c6 | (declare (ignore a)) b))) |
012d021d | (define-test let-pat*-handles-vector :parent let-pat* (is = 2 (let-pat* (((vector a b) #(2 3))) |
206937c6 | (declare (ignore b)) a)) |
012d021d | (is = 3 (let-pat* (((vector a b) #(2 3))) |
206937c6 | (declare (ignore a)) b))) |
012d021d | (define-test let-pat*-handles-hash-table :parent let-pat* (is = 2 (let-pat* (((hash-table (:a a) (:b b)) (alexandria:plist-hash-table '(:a 2 :b 3)))) (declare (ignore b)) a)) |
206937c6 | |
012d021d | (is = 3 (let-pat* (((hash-table (:a a) (:b b)) (alexandria:plist-hash-table '(:a 2 :b 3)))) (declare (ignore a)) b))) |
206937c6 | |
012d021d | (define-test let-pat*-handles-object-destructuring :parent let-pat* (is = 1 (let-pat* (((test-base :a a) (make-instance 'test-base))) |
206937c6 | a))) |
012d021d | (define-test let-pat*-handles-inheritance :parent let-pat* (is = 1 (let-pat* (((test-base :a a) (make-instance 'test-sub1))) a)) |
206937c6 | |
012d021d | (is = 1 (let-pat* (((test-sub1 :a a) (make-instance 'test-sub1))) a)) |
206937c6 | |
012d021d | (is = 1 (let-pat* (((test-sub2 :a a) (make-instance 'test-sub2))) a)) |
206937c6 | |
012d021d | (is equal '(1 2) (let-pat* (((test-sub2 :a a :b b) (make-instance 'test-sub2))) (list a b)))) |