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)))))