From 137294e2abeacda85bdf9036f5b09ab2a96d9cdf Mon Sep 17 00:00:00 2001 From: Ankur Dave Date: Tue, 26 Nov 2013 15:32:47 -0800 Subject: [PATCH 1/2] Test GraphImpl.subgraph and fix bug --- .../org/apache/spark/graph/impl/VertexPartition.scala | 2 +- .../test/scala/org/apache/spark/graph/GraphSuite.scala | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/graph/src/main/scala/org/apache/spark/graph/impl/VertexPartition.scala b/graph/src/main/scala/org/apache/spark/graph/impl/VertexPartition.scala index 9de57375e9..c82a290680 100644 --- a/graph/src/main/scala/org/apache/spark/graph/impl/VertexPartition.scala +++ b/graph/src/main/scala/org/apache/spark/graph/impl/VertexPartition.scala @@ -68,7 +68,7 @@ class VertexPartition[@specialized(Char, Int, Boolean, Byte, Long, Float, Double for ((k, v) <- this.iterator) { hashMap.setMerge(k, v, arbitraryMerge) } - new VertexPartition(hashMap.keySet, hashMap._values, index.getBitSet) + new VertexPartition(hashMap.keySet, hashMap._values, hashMap.keySet.getBitSet) } def iterator = mask.iterator.map(ind => (index.getValueSafe(ind), values(ind))) diff --git a/graph/src/test/scala/org/apache/spark/graph/GraphSuite.scala b/graph/src/test/scala/org/apache/spark/graph/GraphSuite.scala index da7b2bdd99..ffb47fa310 100644 --- a/graph/src/test/scala/org/apache/spark/graph/GraphSuite.scala +++ b/graph/src/test/scala/org/apache/spark/graph/GraphSuite.scala @@ -132,4 +132,14 @@ class GraphSuite extends FunSuite with LocalSparkContext { } } + test("subgraph") { + withSpark(new SparkContext("local", "test")) { sc => + val n = 10 + val star = Graph(sc.parallelize((1 to n).map(x => (0: Vid, x: Vid))), "defaultValue") + val subgraph = star.subgraph(vpred = (vid, attr) => vid % 2 == 0) + assert(subgraph.vertices.collect().toSet === + (0 to n / 2).map(x => (x * 2, "defaultValue")).toSet) + } + } + } From 9e896be375a5c0270bbdf45a2532e59bcb813efa Mon Sep 17 00:00:00 2001 From: Ankur Dave Date: Tue, 26 Nov 2013 15:58:55 -0800 Subject: [PATCH 2/2] Test edge filtering in subgraph (test fails) --- graph/src/test/scala/org/apache/spark/graph/GraphSuite.scala | 1 + 1 file changed, 1 insertion(+) diff --git a/graph/src/test/scala/org/apache/spark/graph/GraphSuite.scala b/graph/src/test/scala/org/apache/spark/graph/GraphSuite.scala index ffb47fa310..8eab9b2bc6 100644 --- a/graph/src/test/scala/org/apache/spark/graph/GraphSuite.scala +++ b/graph/src/test/scala/org/apache/spark/graph/GraphSuite.scala @@ -139,6 +139,7 @@ class GraphSuite extends FunSuite with LocalSparkContext { val subgraph = star.subgraph(vpred = (vid, attr) => vid % 2 == 0) assert(subgraph.vertices.collect().toSet === (0 to n / 2).map(x => (x * 2, "defaultValue")).toSet) + assert(subgraph.edges.collect().toSet === (1 to n / 2).map(x => Edge(0, x * 2)).toSet) } }