aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorGravatar Peter McGoron 2025-06-17 17:09:49 -0400
committerGravatar Peter McGoron 2025-06-17 17:09:49 -0400
commit02f8a10c1f77cf75e5134b7b1d3e6de1ad0f2cfa (patch)
tree2ccab26de2d6cd8270bf606c91f914913614c230 /test
parentproducer (diff)
pattern testing
Diffstat (limited to '')
-rw-r--r--test/pattern/producer.scm27
-rw-r--r--test/pattern/producer.sld25
-rw-r--r--test/run.scm17
3 files changed, 63 insertions, 6 deletions
diff --git a/test/pattern/producer.scm b/test/pattern/producer.scm
new file mode 100644
index 0000000..eb1744e
--- /dev/null
+++ b/test/pattern/producer.scm
@@ -0,0 +1,27 @@
+#| Copyright (c) Peter McGoron 2025
+ |
+ | Licensed under the Apache License, Version 2.0 (the "License");
+ | you may not use this file except in compliance with the License.
+ | You may obtain a copy of the License at
+ |
+ | http://www.apache.org/licenses/LICENSE-2.0
+ |
+ | Unless required by applicable law or agreed to in writing, software
+ | distributed under the License is distributed on an "AS IS" BASIS,
+ | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ | See the License for the specific language governing permissions and
+ | limitations under the License.
+ |#
+
+(define (test-producers)
+ (let ((producer
+ (compile-producer '()
+ (list (empty-wrap 'x) (empty-wrap '...))
+ (hashmap bound-identifier-comparator
+ (empty-wrap 'x)
+ 1))))
+ (test-equal "produces x = '(5 4 3 2 1)"
+ '(1 2 3 4 5)
+ (producer (hashmap bound-identifier-comparator
+ (empty-wrap 'x)
+ '(5 4 3 2 1))))))
diff --git a/test/pattern/producer.sld b/test/pattern/producer.sld
new file mode 100644
index 0000000..5fd3a57
--- /dev/null
+++ b/test/pattern/producer.sld
@@ -0,0 +1,25 @@
+#| Copyright (c) Peter McGoron 2025
+ |
+ | Licensed under the Apache License, Version 2.0 (the "License");
+ | you may not use this file except in compliance with the License.
+ | You may obtain a copy of the License at
+ |
+ | http://www.apache.org/licenses/LICENSE-2.0
+ |
+ | Unless required by applicable law or agreed to in writing, software
+ | distributed under the License is distributed on an "AS IS" BASIS,
+ | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ | See the License for the specific language governing permissions and
+ | limitations under the License.
+ |#
+
+(define-library (multisyntax pattern producer test)
+ (import (scheme base) (scheme write) (srfi 113) (srfi 146 hash)
+ (multisyntax syntax-object)
+ (multisyntax pattern producer))
+ (cond-expand
+ (chicken (import (srfi 64)
+ (chicken condition)))
+ (else))
+ (export test-producers)
+ (include "producer.scm"))
diff --git a/test/run.scm b/test/run.scm
index 0b0e9d9..521b2cf 100644
--- a/test/run.scm
+++ b/test/run.scm
@@ -1,11 +1,11 @@
-(import r7rs)
-
(cond-expand
- (chicken (import (prefix (mcgoron srfi 64)
+ (chicken (import r7rs
+ (prefix (mcgoron srfi 64)
mcgoron-)
(srfi 64))
(test-runner-factory mcgoron-factory)
- (test-runner-current (mcgoron-factory))))
+ (test-runner-current (mcgoron-factory)))
+ (else (import (srfi 64))))
(load "../multisyntax/utils.sld")
(load "../multisyntax/syntax-object.sld")
@@ -14,10 +14,15 @@
(import (rename (multisyntax syntax-object test)
(test test-syntax-object)))
-(test-syntax-object)
+#;(test-syntax-object)
(load "../multisyntax/pattern/internal.sld")
(load "../multisyntax/pattern/matcher.sld")
(load "pattern/matcher.sld")
(import (multisyntax pattern matcher test))
-(test-patterns)
+#;(test-patterns)
+
+(load "../multisyntax/pattern/producer.sld")
+(load "pattern/producer.sld")
+(import (multisyntax pattern producer test))
+(test-producers)