org.scalatest.prop

HavingSize

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
Learn more about member selection
Visibility
  1. Public
  2. All

Abstract Value Members

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

    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]

    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]

    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: AnyRef): Boolean

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

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

    Definition Classes
    AnyRef
  5. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  6. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  7. def clone(): AnyRef

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

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

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

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

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

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

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

    Definition Classes
    AnyRef
  15. final def notify(): Unit

    Definition Classes
    AnyRef
  16. final def notifyAll(): Unit

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

    Definition Classes
    AnyRef
  18. def toString(): String

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

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

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

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped