diff options
author | Zach Smith <zach@driver.xyz> | 2017-06-21 16:31:21 -0700 |
---|---|---|
committer | Zach Smith <zach@driver.xyz> | 2017-06-21 16:31:21 -0700 |
commit | c5bc3df97dd7670d6271efe440068b44f6521562 (patch) | |
tree | 23180d18da15786456ad9548493af836445dd88d /src | |
parent | 7bacb8f4bc4337e3045507f47c5f8f1b0447041a (diff) | |
download | driver-core-c5bc3df97dd7670d6271efe440068b44f6521562.tar.gz driver-core-c5bc3df97dd7670d6271efe440068b44f6521562.tar.bz2 driver-core-c5bc3df97dd7670d6271efe440068b44f6521562.zip |
Add minLength attribute to generatorsv0.13.14
Diffstat (limited to 'src')
-rw-r--r-- | src/main/scala/xyz/driver/core/generators.scala | 29 | ||||
-rw-r--r-- | src/test/scala/xyz/driver/core/GeneratorsTest.scala | 6 |
2 files changed, 19 insertions, 16 deletions
diff --git a/src/main/scala/xyz/driver/core/generators.scala b/src/main/scala/xyz/driver/core/generators.scala index 8f3ff13..9242fd9 100644 --- a/src/main/scala/xyz/driver/core/generators.scala +++ b/src/main/scala/xyz/driver/core/generators.scala @@ -19,7 +19,7 @@ object generators { def nextToken(length: Int): String = List.fill(length)(oneOf(NonAmbigiousCharacters)).mkString - def nextInt(maxValue: Int): Int = random.nextInt(maxValue) + def nextInt(maxValue: Int, minValue: Int = 0): Int = random.nextInt(maxValue - minValue) + minValue def nextBoolean(): Boolean = random.nextBoolean() @@ -67,21 +67,24 @@ object generators { def oneOf[T](items: Set[T]): T = items.toSeq(nextInt(items.size)) - def arrayOf[T: ClassTag](generator: => T, maxLength: Int = DefaultMaxLength): Array[T] = - Array.fill(nextInt(maxLength))(generator) + def arrayOf[T: ClassTag](generator: => T, maxLength: Int = DefaultMaxLength, minLength: Int = 0): Array[T] = + Array.fill(nextInt(maxLength, minLength))(generator) - def seqOf[T](generator: => T, maxLength: Int = DefaultMaxLength): Seq[T] = - Seq.fill(nextInt(maxLength))(generator) + def seqOf[T](generator: => T, maxLength: Int = DefaultMaxLength, minLength: Int = 0): Seq[T] = + Seq.fill(nextInt(maxLength, minLength))(generator) - def vectorOf[T](generator: => T, maxLength: Int = DefaultMaxLength): Vector[T] = - Vector.fill(nextInt(maxLength))(generator) + def vectorOf[T](generator: => T, maxLength: Int = DefaultMaxLength, minLength: Int = 0): Vector[T] = + Vector.fill(nextInt(maxLength, minLength))(generator) - def listOf[T](generator: => T, maxLength: Int = DefaultMaxLength): List[T] = - List.fill(nextInt(maxLength))(generator) + def listOf[T](generator: => T, maxLength: Int = DefaultMaxLength, minLength: Int = 0): List[T] = + List.fill(nextInt(maxLength, minLength))(generator) - def setOf[T](generator: => T, maxLength: Int = DefaultMaxLength): Set[T] = - seqOf(generator, maxLength).toSet + def setOf[T](generator: => T, maxLength: Int = DefaultMaxLength, minLength: Int = 0): Set[T] = + seqOf(generator, maxLength, minLength).toSet - def mapOf[K, V](maxLength: Int, keyGenerator: => K, valueGenerator: => V): Map[K, V] = - seqOf(nextPair(keyGenerator, valueGenerator), maxLength).toMap + def mapOf[K, V](keyGenerator: => K, + valueGenerator: => V, + maxLength: Int = DefaultMaxLength, + minLength: Int = 0): Map[K, V] = + seqOf(nextPair(keyGenerator, valueGenerator), maxLength, minLength).toMap } diff --git a/src/test/scala/xyz/driver/core/GeneratorsTest.scala b/src/test/scala/xyz/driver/core/GeneratorsTest.scala index 4ec73ec..737cbcb 100644 --- a/src/test/scala/xyz/driver/core/GeneratorsTest.scala +++ b/src/test/scala/xyz/driver/core/GeneratorsTest.scala @@ -212,19 +212,19 @@ class GeneratorsTest extends FlatSpec with Matchers with Assertions { it should "be able to generate maps with keys and values generated by generators" in { - val generatedConstantMap = mapOf(10, "key", 123) + val generatedConstantMap = mapOf("key", 123, 10) generatedConstantMap.size should be <= 1 assert(generatedConstantMap.keys.forall(_ == "key")) assert(generatedConstantMap.values.forall(_ == 123)) - val generatedMap = mapOf(10, nextString(10), nextBigDecimal()) + val generatedMap = mapOf(nextString(10), nextBigDecimal(), 10) assert(generatedMap.keys.forall(_.length <= 10)) assert(generatedMap.values.forall(_ >= BigDecimal(0.00))) } it should "compose deeply" in { - val generatedNestedMap = mapOf(10, nextString(10), nextPair(nextBigDecimal(), nextOption(123))) + val generatedNestedMap = mapOf(nextString(10), nextPair(nextBigDecimal(), nextOption(123)), 10) generatedNestedMap.size should be <= 10 generatedNestedMap.keySet.size should be <= 10 |