Skip to content
Snippets Groups Projects
Commit 8d021b42 authored by Pillis's avatar Pillis
Browse files

SPARK-961. Add a Vector.random() method - update 1

parent 18147190
No related branches found
No related tags found
No related merge requests found
...@@ -126,7 +126,11 @@ object Vector { ...@@ -126,7 +126,11 @@ object Vector {
def ones(length: Int) = Vector(length, _ => 1) def ones(length: Int) = Vector(length, _ => 1)
def random(length: Int, random: Random = new Random()) = Vector(length, _ => random.nextDouble()); /**
* Creates this [[org.apache.spark.util.Vector]] of given length containing random numbers
* between 0.0 and 1.0. Optional [[scala.util.Random]] number generator can be provided.
*/
def random(length: Int, random: Random = new XORShiftRandom()) = Vector(length, _ => random.nextDouble())
class Multiplier(num: Double) { class Multiplier(num: Double) {
def * (vec: Vector) = vec * num def * (vec: Vector) = vec * num
......
...@@ -27,20 +27,18 @@ import org.scalatest.FunSuite ...@@ -27,20 +27,18 @@ import org.scalatest.FunSuite
class VectorSuite extends FunSuite { class VectorSuite extends FunSuite {
def verifyVector(vector: Vector, expectedLength: Int) = { def verifyVector(vector: Vector, expectedLength: Int) = {
assert(vector.length == expectedLength); // Array must be of expected length assert(vector.length == expectedLength)
assert(vector.length == vector.elements.distinct.length); // Values should not repeat assert(vector.elements.min > 0.0)
assert(vector.sum > 0); // All values must not be 0 assert(vector.elements.max < 1.0)
assert(vector.sum < vector.length); // All values must not be 1
assert(vector.elements.product > 0); // No value is 0
} }
test("random with default random number generator") { test("random with default random number generator") {
val vector100 = Vector.random(100); val vector100 = Vector.random(100)
verifyVector(vector100, 100); verifyVector(vector100, 100)
} }
test("random with given random number generator") { test("random with given random number generator") {
val vector100 = Vector.random(100, new Random(100)); val vector100 = Vector.random(100, new Random(100))
verifyVector(vector100, 100); verifyVector(vector100, 100)
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment