aboutsummaryrefslogtreecommitdiffstats
path: root/test/pattern/producer.scm
diff options
context:
space:
mode:
authorGravatar Peter McGoron 2025-06-20 09:54:43 -0400
committerGravatar Peter McGoron 2025-06-20 09:54:43 -0400
commitd0051120a3bc92901adab7d956cd199b04148f93 (patch)
tree6ef8979d5b0cbc33dd01a5e9f06fdf630b53e0b8 /test/pattern/producer.scm
parentadd extra tests and fix temporary generation for renaming (diff)
add vector patterns
Diffstat (limited to 'test/pattern/producer.scm')
-rw-r--r--test/pattern/producer.scm36
1 files changed, 35 insertions, 1 deletions
diff --git a/test/pattern/producer.scm b/test/pattern/producer.scm
index e7b9f20..7b61fd8 100644
--- a/test/pattern/producer.scm
+++ b/test/pattern/producer.scm
@@ -147,9 +147,43 @@
(producer (idmap (empty-wrap 'x)
'((4 3) (2 1))))))))
+(define (test-vector)
+ (let ((producer
+ (compile-producer '()
+ (vector 1 2 3 4)
+ (idmap))))
+ (test-equal "#(1 2 3 4)"
+ #(1 2 3 4)
+ (producer (idmap))))
+ (let ((producer
+ (compile-producer '()
+ (vector (empty-wrap 'x) (empty-wrap 'y))
+ (idmap (empty-wrap 'x) 0
+ (empty-wrap 'y) 0))))
+ (test-equal "#(x y)"
+ #(10 20)
+ (producer (idmap (empty-wrap 'x) 10
+ (empty-wrap 'y) 20))))
+ (let ((producer
+ (compile-producer '()
+ (vector (empty-wrap 'x) (empty-wrap '...))
+ (idmap (empty-wrap 'x) 1))))
+ (test-equal "#(x ...)"
+ #(10 20 30)
+ (producer (idmap (empty-wrap 'x) '(30 20 10)))))
+ (let ((producer
+ (compile-producer '()
+ (vector (empty-wrap 'x) (empty-wrap '...) 100)
+ (idmap (empty-wrap 'x) 1))))
+ (test-equal "#(x ... 100)"
+ #(80 90 100)
+ (producer (idmap (empty-wrap 'x) '(90 80))))))
+
(define (test-producers)
(test-group "producers"
(test-group "self-syntax"
(test-self-syntax))
(test-group "list ellipses"
- (test-list-ellipses)))) \ No newline at end of file
+ (test-list-ellipses))
+ (test-group "vector patterns"
+ (test-vector)))) \ No newline at end of file