Trait

org.scalatest.prop

HavingSize

Related Doc: package prop

Permalink

trait HavingSize[T] extends AnyRef

This trait is mixed in to Generators that have a well-defined notion of "size".

Broadly speaking, this applies when T is a type that has a size method. For example, Generator.setGenerator (also known as CommonGenerators.sets) has the HavingSize trait because Set has a size method.

Generators with this trait provide several functions that allow you to create more-specialized Generators, with specific size bounds.

T

the type that this Generator produces

Source
HavingSize.scala
Linear Supertypes
AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. HavingSize
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract def havingSize(len: PosZInt): Generator[T]

    Permalink

    Create a version of this Generator that produces values of exactly the specified size.

    Create a version of this Generator that produces values of exactly the specified size.

    For example, consider:

    val stringSets: Generator[Set[String]] =
      Generator.setGenerator[String]
    
    val singleStringSets: Generator[Set[String]] =
      stringSets.havingSize(1)

    The singleStringSets Generator will always produce Sets of exactly one String.

    len

    the size of the values to produce

    returns

    a new Generator that produces values of that size

  2. abstract def havingSizesBetween(from: PosZInt, to: PosZInt): Generator[T]

    Permalink

    Create a version of this Generator that produces values within the specified size range.

    Create a version of this Generator that produces values within the specified size range.

    The bounds are inclusive: the resulting Generator may produce values with a size of to or from.

    For example, consider:

    val stringSets: Generator[Set[String]] =
      Generator.setGenerator[String]
    
    val smallStringSets: Generator[Set[String]] =
      stringSets.havingSizesBetween(0, 3)

    The smallStringSets Generator will always produce Sets of zero through three Strings.

    from

    The smallest desired size to produce

    to

    The largest desired size to produce

    returns

    a Generator that will only produce values within that size range

  3. abstract def havingSizesDeterminedBy(f: (SizeParam) ⇒ SizeParam): Generator[T]

    Permalink

    Create a version of this Generator whose legal sizes are adjusted by a specified function.

    Create a version of this Generator whose legal sizes are adjusted by a specified function.

    For example:

    def currentLimit: PosZInt = ...
    
    def limitedSize(szp: SizeParam): SizeParam = {
      val limit = currentLimit
      val sz = if (szp.maxSize < limit) szp.maxSize else limit
      szp.copy(size = sz)
    }
    
    val sizelimitedLists = lists[Int].havingSizesDeterminedBy(limitedSize)

    This doesn't hard-code the size of the sizeLimitedLists Generator, but allows the maximum size to be clamped based on a dynamic currentLimit function.

    f

    a transformation function that takes the current SizeParam and returns a new one

    returns

    a Generator that will base its sizes on the given function

Concrete Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  5. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  6. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  7. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  8. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  9. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  10. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  11. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  12. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  13. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  14. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  15. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  16. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  17. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  18. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  19. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped