8cf220c55f13 v1.2.1

Make copy-digraph actually copy the data
[view raw] [browse files]
author Steve Losh <steve@stevelosh.com>
date Sat, 03 Nov 2018 15:37:35 -0400
parents 10d265927e33
children 4a86a78b3de6
branches/tags v1.2.1
files cl-digraph.asd docs/05-changelog.markdown src/directed-graph.lisp test/tests.lisp

Changes

--- a/cl-digraph.asd	Sat Nov 03 15:30:06 2018 -0400
+++ b/cl-digraph.asd	Sat Nov 03 15:37:35 2018 -0400
@@ -4,7 +4,7 @@
   :homepage "https://sjl.bitbucket.io/cl-digraph/"
 
   :license "MIT/X11"
-  :version "1.2.0"
+  :version "1.2.1"
 
   :depends-on ()
 
--- a/docs/05-changelog.markdown	Sat Nov 03 15:30:06 2018 -0400
+++ b/docs/05-changelog.markdown	Sat Nov 03 15:37:35 2018 -0400
@@ -5,6 +5,11 @@
 
 [TOC]
 
+v1.2.1
+------
+
+Fixed a bug in `copy-digraph`.
+
 v1.2.0
 ------
 
--- a/src/directed-graph.lisp	Sat Nov 03 15:30:06 2018 -0400
+++ b/src/directed-graph.lisp	Sat Nov 03 15:37:35 2018 -0400
@@ -285,7 +285,7 @@
   (let ((copy (make-digraph :test (digraph-test digraph)
                             :hash-function (digraph-hash-function digraph)
                             :initial-vertices (vertices digraph))))
-    (do-edges (p s digraph) (insert-edge digraph p s))
+    (do-edges (p s digraph) (insert-edge copy p s))
     copy))
 
 
--- a/test/tests.lisp	Sat Nov 03 15:30:06 2018 -0400
+++ b/test/tests.lisp	Sat Nov 03 15:37:35 2018 -0400
@@ -33,6 +33,23 @@
     (is (same () (edges g)))
     (is (not (emptyp g)))))
 
+(define-test copy-digraph
+  (let ((g (make-digraph :initial-vertices '(a b c)))
+        (h nil))
+    (insert-edge g 'a 'b)
+    (is (same '(a b c) (vertices g)))
+    (is (same '((a . b)) (edges g)))
+    (setf h (copy-digraph g))
+    (is (same '(a b c) (vertices h)))
+    (is (same '((a . b)) (edges h)))
+    (remove-edge h 'a 'b)
+    (remove-vertex h 'c)
+    (is (same '(a b) (vertices h)))
+    (is (same '() (edges h)))
+    ;; make sure the original didn't change
+    (is (same '(a b c) (vertices g)))
+    (is (same '((a . b)) (edges g)))))
+
 
 (define-test roots-and-leafs
   (let ((g (make-digraph)))