tests.lisp - clic - Clic is an command line interactive client for gopher written in Common LISP
 (HTM) git clone git://bitreich.org/clic/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/clic/
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) Tags
 (DIR) README
 (DIR) LICENSE
       ---
       tests.lisp (3078B)
       ---
            1 (in-package :cl-user)
            2 
            3 (defpackage :alexandria2-tests
            4   (:use :cl :alexandria-2 #+sbcl :sb-rt #-sbcl :rtest)
            5   (:import-from #+sbcl :sb-rt #-sbcl :rtest
            6                 #:*compile-tests* #:*expected-failures*))
            7 
            8 (in-package :alexandria2-tests)
            9 
           10 (deftest delete-from-plist*.middle
           11     (let ((input (list 'a 1 'b 2 'c 3 'd 4 'd 5)))
           12       (multiple-value-list (delete-from-plist* input 'b 'c)))
           13   ((a 1 d 4 d 5)
           14    ((c . 3) (b . 2))))
           15 
           16 (deftest delete-from-plist*.start
           17     (let ((input (list 'a 1 'b 2 'c 3 'd 4 'd 5)))
           18       (multiple-value-list (delete-from-plist* input 'a 'c)))
           19   ((b 2 d 4 d 5)
           20    ((c . 3) (a . 1))))
           21 
           22 
           23 ;; Control Flow tests
           24 
           25 (deftest line-up-first.no-form
           26     (values
           27      (equal (macroexpand '(line-up-first 5))
           28             5)
           29      (equal (macroexpand '(line-up-first (+ 1 2)))
           30             '(+ 1 2)))
           31   t
           32   t)
           33 
           34 (deftest line-up-first.function-names-are-threaded
           35     (values
           36      (equal (macroexpand '(line-up-first 5 -))
           37             '(- 5))
           38      (equal (macroexpand '(line-up-first (+ 1 2) -))
           39             '(- (+ 1 2))))
           40   t
           41   t)
           42 
           43 (deftest line-up-first.list-promotion
           44     (macroexpand '(line-up-first
           45                    5
           46                    (+ 20)
           47                    (/ 25)
           48                    -
           49                    (+ 40)))
           50   (+ (- (/ (+ 5 20) 25)) 40)
           51   t)
           52 
           53 (deftest line-up-first.multiple-args
           54     (macroexpand '(line-up-first
           55                    "this-is-a-string"
           56                    (subseq 0 4)))
           57   (subseq "this-is-a-string" 0 4)
           58   t)
           59 
           60 (deftest line-up-first.several-examples
           61     (values
           62      (equal (line-up-first (+ 40 2)) 42)
           63      (equal (line-up-first
           64              5
           65              (+ 20)
           66              (/ 25)
           67              -
           68              (+ 40)) 39)
           69      (equal (line-up-first
           70              "this-is-a-string"
           71              (subseq 4 5)
           72              (string-trim  "--------good"))
           73             "good"))
           74   t
           75   t
           76   t)
           77 
           78 ;; Thread last tests
           79 
           80 (deftest line-up-last.no-forms
           81     (values
           82      (equal (macroexpand '(line-up-last 5)) 5)
           83      (equal (macroexpand '(line-up-last (+ 1 2))) '(+ 1 2)))
           84   t
           85   t)
           86 
           87 (deftest line-up-last.function-names-are-threaded
           88     (values (equal (macroexpand
           89                     '(line-up-last 5
           90                       -))
           91                    '(- 5))
           92             (equal (macroexpand
           93                     '(line-up-last (+ 1 2)
           94                       -))
           95                    '(- (+ 1 2))))
           96   t
           97   t)
           98 
           99 (deftest line-up-last.lisp-promotion
          100     (macroexpand '(line-up-last
          101                    5
          102                    (+ 20)
          103                    (/ 25)
          104                    -
          105                    (+ 40)))
          106   (+ 40 (- (/ 25 (+ 20 5))))
          107   t)
          108 
          109 (deftest line-up-last.several-examples
          110     (values (equal (line-up-last (+ 40 2)) 42)
          111             (equal (line-up-last
          112                     5
          113                     (+ 20)
          114                     (/ 25)
          115                     -
          116                     (+ 40))
          117                    39)
          118             (equal (line-up-last
          119                     (list 1 -2 3 -4 5)
          120                     (mapcar #'abs)
          121                     (reduce #'+)
          122                     (format nil "abs sum is: ~D"))
          123                    "abs sum is: 15"))
          124   t
          125   t
          126   t)