git.fiddlerwoaroof.com
Browse code

chore(transducers): record test dependencies

Edward authored on 09/01/2021 10:57:36
Showing 2 changed files
... ...
@@ -231,6 +231,11 @@
231 231
                             else collect (cons nil next))
232 232
                       'vector)))))
233 233
 
234
+(defun-ct inc (inc)
235
+  (declare (optimize (speed 3)))
236
+  (lambda (base)
237
+    (+ base inc)))
238
+
234 239
 (defun-ct cumsum
235 240
     (&key (add-fun #'+) (key #'identity) (combine (lambda (x y) y x)) (zero 0))
236 241
   (lambda (seq)
... ...
@@ -12,7 +12,8 @@
12 12
                                                   'data-lens.transducers:list-builder
13 13
                                                   '(1 2 3)))))
14 14
 
15
-(5am:def-test mv-mapping (:suite :data-lens.transducers)
15
+(5am:def-test mv-mapping (:suite :data-lens.transducers
16
+                          :depends-on mapping)
16 17
   (5am:is (equal '((2 0) (3 1) (4 2))
17 18
                  (data-lens.transducers:transduce (data-lens.transducers:mv-mapping
18 19
                                                    (lambda (it)
... ...
@@ -20,7 +21,8 @@
20 21
                                                   'data-lens.transducers:list-builder
21 22
                                                   '(1 2 3)))))
22 23
 
23
-(5am:def-test mv-selecting (:suite :data-lens.transducers)
24
+(5am:def-test mv-selecting (:suite :data-lens.transducers
25
+                            :depends-on mapping)
24 26
   (5am:is (equal '(2 4)
25 27
                  (data-lens.transducers:transduce (data-lens.transducers:mv-selecting
26 28
                                                    (lambda (it)
... ...
@@ -35,7 +37,8 @@
35 37
                                                   'data-lens.transducers:list-builder
36 38
                                                   '(1 2)))))
37 39
 
38
-(5am:def-test filtering (:suite :data-lens.transducers)
40
+(5am:def-test filtering (:suite :data-lens.transducers
41
+                         :depends-on mapping)
39 42
   (5am:is (equal '(1 3)
40 43
                  (data-lens.transducers:transduce (data-lens.transducers:filtering 'oddp)
41 44
                                                   'data-lens.transducers:list-builder
... ...
@@ -48,7 +51,8 @@
48 51
                                                   'data-lens.transducers:list-builder
49 52
                                                   '(1 2 3)))))
50 53
 
51
-(5am:def-test deduping (:suite :data-lens.transducers)
54
+(5am:def-test deduping (:suite :data-lens.transducers
55
+                        :depends-on mapping)
52 56
   (5am:is (equal '(1 2 1 2 3 4 1)
53 57
                  (data-lens.transducers:transduce (data-lens.transducers:deduping)
54 58
                                                   'data-lens.transducers:list-builder
... ...
@@ -67,7 +71,8 @@
67 71
                          (data-lens.transducers:repeating* third-number :count (+ 1 (random 3)))))
68 72
                   (list first-number second-number third-number)))))
69 73
 
70
-(5am:def-test compressing-runs (:suite :data-lens.transducers)
74
+(5am:def-test compressing-runs (:suite :data-lens.transducers
75
+                                :depends-on mapping)
71 76
   (5am:is (equal '(1 2 1 2 3 4 1)
72 77
                  (data-lens.transducers:transduce (data-lens.transducers:compressing-runs)
73 78
                                                   'data-lens.transducers:list-builder
... ...
@@ -107,23 +112,15 @@
107 112
              (2 4 4 4) (2 5 5 5)
108 113
              (3 6 6 6))))))
109 114
 
110
-(5am:def-test collecting (:suite :data-lens.transducers)
111
-  (5am:is (equal '(1 3 6 9 13 18 22 27 33 40)
112
-                 (data-lens.transducers:transduce (data-lens:• (data-lens.transducers:taking 5)
113
-                                                               (data-lens.transducers:mapcatting 'identity)
114
-                                                               (data-lens.transducers::collecting '+))
115
-                                                  'data-lens.transducers:list-builder
116
-                                                  (loop for x from 1
117
-                                                        repeat 4
118
-                                                        collect (data-lens.transducers:iota :start x :count x))))))
119
-
120
-(5am:def-test catting (:suite :data-lens.transducers)
115
+(5am:def-test catting (:suite :data-lens.transducers
116
+                       :depends-on mapping)
121 117
   (5am:is (equal '(1 1 2 1 2 2 3 3 4 1)
122 118
                  (data-lens.transducers:transduce (data-lens.transducers:catting)
123 119
                                                   'data-lens.transducers:list-builder
124 120
                                                   '((1 1) (2 1 2) (2) (3 3) (4 1))))))
125 121
 
126
-(5am:def-test mapcatting (:suite :data-lens.transducers)
122
+(5am:def-test mapcatting (:suite :data-lens.transducers
123
+                          :depends-on catting)
127 124
   (5am:is (equal '(1 1 2 1 2 2 3 3 4 1)
128 125
                  (data-lens.transducers:transduce (data-lens.transducers:mapcatting 'list)
129 126
                                                   'data-lens.transducers:list-builder
... ...
@@ -135,23 +132,41 @@
135 132
                                                         (data-lens.transducers:iota :count 2)
136 133
                                                         (data-lens.transducers:iota :count 3))))))
137 134
 
138
-(5am:def-test splitting (:suite :data-lens.transducers)
135
+(5am:def-test collecting (:suite :data-lens.transducers
136
+                          :depends-on mapcatting)
137
+  (5am:is (equal '(1 3 6 9 13 18 22 27 33 40)
138
+                 (data-lens.transducers:transduce (data-lens:• (data-lens.transducers:taking 5)
139
+                                                               (data-lens.transducers:mapcatting 'identity)
140
+                                                               (data-lens.transducers::collecting '+))
141
+                                                  'data-lens.transducers:list-builder
142
+                                                  (loop for x from 1
143
+                                                        repeat 4
144
+                                                        collect
145
+                                                        (data-lens.transducers:iota :start x
146
+                                                                                    :count x))))))
147
+
148
+(5am:def-test splitting (:suite :data-lens.transducers
149
+                         :depends-on mapping)
139 150
   (5am:is (equal '((2 0) (3 1) (4 2))
140 151
                  (data-lens.transducers:transduce (data-lens.transducers:splitting '1+ '1-)
141 152
                                                   'data-lens.transducers:list-builder
142 153
                                                   '(1 2 3)))))
143 154
 
144
-(5am:def-test transducer-composition (:suite :data-lens.transducers)
145
-  (5am:is (equal '(3 5 7)
155
+(5am:def-test transducer-composition (:suite :data-lens.transducers
156
+                                      :depends-on (and filtering mapping))
157
+  (5am:is (equal '(7)
146 158
                  (data-lens.transducers:transduce (data-lens:•
159
+                                                   (data-lens.transducers:filtering #'oddp)
147 160
                                                    (data-lens.transducers:mapping
148 161
                                                     (lambda (x)
149 162
                                                       (* 2 x)))
150
-                                                   (data-lens.transducers:mapping '1+))
163
+                                                   (data-lens.transducers:mapping '1+)
164
+                                                   (data-lens.transducers:dropping 1))
151 165
                                                   'data-lens.transducers:list-builder
152 166
                                                   '(1 2 3))))
153
-  (5am:is (equal '(3 5 7)
167
+  (5am:is (equal '(3 5)
154 168
                  (data-lens.transducers:transduce (data-lens:•
169
+                                                   (data-lens.transducers:taking 2)
155 170
                                                    (data-lens.transducers:mapping
156 171
                                                     (lambda (x)
157 172
                                                       (* 2 x)))
... ...
@@ -159,7 +174,9 @@
159 174
                                                   'data-lens.transducers:list-builder
160 175
                                                   '(1 2 3)))))
161 176
 
162
-(5am:def-test complicated (:suite :data-lens.transducers)
177
+(5am:def-test complicated (:suite :data-lens.transducers
178
+                           :depends-on (and catting mapping filtering splitting
179
+                                            transducer-composition))
163 180
   (let ((result (data-lens.transducers:transduce
164 181
                  (data-lens:•
165 182
                   (data-lens.transducers:catting)