Interface SetArbitrary<T>

All Superinterfaces:
Arbitrary<Set<T>>, SizableArbitrary<Set<T>>, StreamableArbitrary<T,Set<T>>

@API(status=MAINTAINED, since="1.3.2") public interface SetArbitrary<T> extends Arbitrary<Set<T>>, StreamableArbitrary<T,Set<T>>
Fluent interface to add functionality to arbitraries that generate instances of type Set
  • Method Details

    • ofSize

      default SetArbitrary<T> ofSize(int size)
      Fix the size to size.
      Specified by:
      ofSize in interface SizableArbitrary<T>
      Specified by:
      ofSize in interface StreamableArbitrary<T,Set<T>>
      Parameters:
      size - The size of the generated set
      Returns:
      new arbitrary instance
    • ofMinSize

      SetArbitrary<T> ofMinSize(int minSize)
      Set lower size boundary minSize (included).
      Specified by:
      ofMinSize in interface SizableArbitrary<T>
      Specified by:
      ofMinSize in interface StreamableArbitrary<T,Set<T>>
      Parameters:
      minSize - The minimum size of the generated set
      Returns:
      new arbitrary instance
    • ofMaxSize

      SetArbitrary<T> ofMaxSize(int maxSize)
      Set upper size boundary maxSize (included).
      Specified by:
      ofMaxSize in interface SizableArbitrary<T>
      Specified by:
      ofMaxSize in interface StreamableArbitrary<T,Set<T>>
      Parameters:
      maxSize - The maximum size of the generated set
      Returns:
      new arbitrary instance
    • withSizeDistribution

      @API(status=EXPERIMENTAL, since="1.5.3") SetArbitrary<T> withSizeDistribution(RandomDistribution uniform)
      Set random distribution distribution of size of generated set. The distribution's center is the minimum size of the generated set.
      Specified by:
      withSizeDistribution in interface SizableArbitrary<T>
      Specified by:
      withSizeDistribution in interface StreamableArbitrary<T,Set<T>>
    • mapEach

      @API(status=MAINTAINED, since="1.4.0") <U> Arbitrary<Set<U>> mapEach(BiFunction<Set<T>,T,U> mapper)
      Map over each element of the generated set giving access to all elements of the set. The number of the mapped elements within the set will stay the same.
      Type Parameters:
      U - The target type of a set to generate
      Parameters:
      mapper - Mapper function to element type U
      Returns:
      arbitrary of a set of Us
    • flatMapEach

      @API(status=MAINTAINED, since="1.4.0") <U> Arbitrary<Set<U>> flatMapEach(BiFunction<Set<T>,T,Arbitrary<U>> flatMapper)
      Flat-map over each element of the generated set giving access to all elements of the set. The number of the mapped elements within the set will stay the same.
      Type Parameters:
      U - The target type of a set to generate
      Parameters:
      flatMapper - Mapper function to arbitrary of element type U
      Returns:
      arbitrary of a set of Us
    • uniqueElements

      @API(status=MAINTAINED, since="1.7.3") SetArbitrary<T> uniqueElements()
      Do not use. Sets have unique elements anyway. It only exists for purposes of symmetry.
      Specified by:
      uniqueElements in interface StreamableArbitrary<T,Set<T>>
      Returns:
      same instance of arbitrary
    • uniqueElements

      @API(status=MAINTAINED, since="1.4.0") SetArbitrary<T> uniqueElements(Function<T,Object> by)
      Add the constraint that elements of the generated set must be unique relating to an element's "feature" being extracted using the by function. The extracted features are being compared using Object.equals(Object).

      The constraint can be combined with other uniqueElements(Function) constraints.

      Specified by:
      uniqueElements in interface StreamableArbitrary<T,Set<T>>
      Returns:
      new arbitrary instance