Cons an element on to the front of a list unless it is already there.
Produce a list containing the progressive halving of an integral.
Produce a list containing the progressive halving of an integral.
scala> halves(15) List(15, 7, 3, 1) scala> halves(100) List(100, 50, 25, 12, 6, 3, 1) scala> halves(-26) List(-26, -13, -6, -3, -1)
Shrink a list by edging towards the empty list.
Shrink a list by edging towards the empty list.
scala> list(List(1, 2, 3)) List(List(), List(2, 3), List(1, 3), List(1, 2)) >>> list("abcd".toList) List("", "cd", "ab", "bcd", "acd", "abd", "abc")
Note we always try the empty list first, as that is the optimal shrink.
Produce all permutations of removing 'k' elements from a list.
Produce all permutations of removing 'k' elements from a list.
scala> removes(2, "abcdef".toList) List("cdef", "abef", "abcd")
Shrink an integral number by edging towards a destination.
Shrink an integral number by edging towards a destination.
scala> towards(0, 100) List(0, 50, 75, 88, 94, 97, 99) scala> towards(500, 1000) List(500, 750, 875, 938, 969, 985, 993, 997, 999) scala> towards(-50, -26) List(-50, -38, -32, -29, -27)
Note we always try the destination first, as that is the optimal shrink.
Shrink a floating-point number by edging towards a destination.
Shrink a floating-point number by edging towards a destination.
scala> towards(0.0, 100) List(0.0, 50.0, 75.0, 87.5, 93.75, 96.875, 98.4375...) scala> towards(1.0, 0.5) List(1.0, 0.75, 0.625, 0.5625, 0.53125, 0.515625, 0.5078125...)
Note we always try the destination first, as that is the optimal shrink.
(Since version ) see corresponding Javadoc for more information.