chore: begin to add tests

This commit is contained in:
Edward
2021-01-02 22:24:31 -08:00
parent 1259838639
commit 6aebcfe4dc
2 changed files with 51 additions and 0 deletions

View File

@ -21,5 +21,17 @@
:depends-on (:data-lens :depends-on (:data-lens
:alexandria) :alexandria)
:serial t :serial t
:in-order-to ((test-op (test-op :data-lens/transducer/test)))
:components ((:file "package") :components ((:file "package")
(:file "transducers"))) (:file "transducers")))
(asdf:defsystem #:data-lens/transducer/test
:description "tests for the transducers"
:author "Edward Langley <el-cl@elangley.org>"
:license "MIT"
:depends-on (:data-lens/beta/transducer
:fiveam)
:serial t
:perform (test-op (o c) (symbol-call :fiveam '#:run! :data-lens.transducers))
:components ((:module "t"
:components ((:file "transducer")))))

39
t/transducer.lisp Normal file
View File

@ -0,0 +1,39 @@
(defpackage :fwoar.lisp-sandbox.t.transducer
(:use :cl )
(:export ))
(in-package :fwoar.lisp-sandbox.t.transducer)
(5am:def-suite :data-lens.transducers)
(5am:in-suite :data-lens.transducers)
(5am:def-test mapping (:suite :data-lens.transducers)
(5am:is (equal '(2 3 4)
(data-lens.transducers:transduce (data-lens.transducers:mapping '1+)
'data-lens.transducers:list-builder
'(1 2 3)))))
(5am:def-test mv-mapping (:suite :data-lens.transducers)
(5am:is (equal '((2 0) (3 1) (4 2))
(data-lens.transducers:transduce (data-lens.transducers:mv-mapping
(lambda (it)
(values (1+ it) (1- it))))
'data-lens.transducers:list-builder
'(1 2 3)))))
(5am:def-test transducer-composition (:suite :data-lens.transducers)
(5am:is (equal '(3 5 7)
(data-lens.transducers:transduce (data-lens:
(data-lens.transducers:mapping
(lambda (x)
(* 2 x)))
(data-lens.transducers:mapping '1+))
'data-lens.transducers:list-builder
'(1 2 3))))
(5am:is (equal '(3 5 7)
(data-lens.transducers:transduce (data-lens:
(data-lens.transducers:mapping
(lambda (x)
(* 2 x)))
(data-lens.transducers:mapping '1+))
'data-lens.transducers:list-builder
'(1 2 3)))))