Add problem 14 from 99PP as a test
author |
Steve Losh <steve@stevelosh.com> |
date |
Sat, 20 Aug 2016 21:15:52 +0000 |
parents |
ab7de6629c42
|
children |
cb324d188513
|
branches/tags |
(none) |
files |
test/99.lisp |
Changes
--- a/test/99.lisp Sun Jul 24 12:44:54 2016 +0000
+++ b/test/99.lisp Sat Aug 20 21:15:52 2016 +0000
@@ -178,6 +178,8 @@
(list ?))
(?what (f cats dogs))))))
+
+
; (define-test p9
; (with-fresh-database
; (%=)
@@ -207,3 +209,22 @@
; (?what ((a a a))))
; ((pack (list a a b a) ?what)
; (?what ((a a) (b) (a)))))))
+
+
+(define-test p14
+ ;; Duplicate the elements of a list.
+ (with-fresh-database
+ (push-logic-frame-with
+ (fact (duplicate nil nil))
+ (rule (duplicate (list* ?x ?rest) (list* ?x ?x ?rest-dup))
+ (duplicate ?rest ?rest-dup)))
+
+ (should-return
+ ((duplicate nil nil)
+ empty)
+ ((duplicate (list 1) (list 1 1))
+ empty)
+ ((duplicate (list a b c d) (list a a b b c c d d))
+ empty)
+ ((duplicate ?what (list ?x 2 3 ?y))
+ (?what (2 3) ?x 2 ?y 3)))))