mirror of
https://github.com/fiddlerwoaroof/data-lens.git
synced 2025-11-08 18:26:32 +00:00
chore: begin to add tests
This commit is contained in:
@ -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
39
t/transducer.lisp
Normal 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)))))
|
||||||
Reference in New Issue
Block a user