diff options
| author | 2025-06-20 09:54:43 -0400 | |
|---|---|---|
| committer | 2025-06-20 09:54:43 -0400 | |
| commit | d0051120a3bc92901adab7d956cd199b04148f93 (patch) | |
| tree | 6ef8979d5b0cbc33dd01a5e9f06fdf630b53e0b8 /test/pattern/producer.scm | |
| parent | add 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.scm | 36 |
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 |
