Skip to content

Commit d129a66

Browse files
committed
Add test for sparse breeze by vector builder
1 parent 64e7198 commit d129a66

File tree

2 files changed

+14
-3
lines changed

2 files changed

+14
-3
lines changed

mllib/src/main/scala/org/apache/spark/mllib/linalg/Vectors.scala

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -138,8 +138,7 @@ object Vectors {
138138
case v: BSV[Double] =>
139139
if (v.index.length == v.used) {
140140
new SparseVector(v.length, v.index, v.data)
141-
}
142-
else {
141+
} else {
143142
new SparseVector(v.length, v.index.slice(0, v.used), v.data.slice(0, v.used))
144143
}
145144
case v: BV[_] =>

mllib/src/test/scala/org/apache/spark/mllib/linalg/BreezeVectorConversionSuite.scala

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ package org.apache.spark.mllib.linalg
1919

2020
import org.scalatest.FunSuite
2121

22-
import breeze.linalg.{DenseVector => BDV, SparseVector => BSV}
22+
import breeze.linalg.{DenseVector => BDV, SparseVector => BSV, VectorBuilder => BVB}
2323

2424
/**
2525
* Test Breeze vector conversions.
@@ -55,4 +55,16 @@ class BreezeVectorConversionSuite extends FunSuite {
5555
assert(vec.indices.eq(indices), "should not copy data")
5656
assert(vec.values.eq(values), "should not copy data")
5757
}
58+
59+
test("sparse breeze by vector builder to vector") {
60+
val builder = new BVB[Double](n)
61+
for (i <- 0 until indices.length) {
62+
builder.add(indices(i), values(i))
63+
}
64+
val breeze = builder.toSparseVector
65+
val vec = Vectors.fromBreeze(breeze).asInstanceOf[SparseVector]
66+
assert(vec.size === n)
67+
assert(vec.indices === indices)
68+
assert(vec.values === values)
69+
}
5870
}

0 commit comments

Comments
 (0)