windowed function: add default parameters, drop or keep partial windows, KEEP-11
Make step default to 1. Add partialWindows boolean parameter defaulting to false to control whether to keep partial windows in the end.
This commit is contained in:
@@ -153,7 +153,10 @@ class Sequences {
|
||||
val moreSparseWindows = sequence.windowed(size = 5, step = 3)
|
||||
assertPrints(moreSparseWindows.take(4).toList(), "[[1, 2, 3, 4, 5], [4, 5, 6, 7, 8], [7, 8, 9, 10, 11], [10, 11, 12, 13, 14]]")
|
||||
|
||||
val partialWindows = sequence.take(10).windowed(size = 5, step = 3)
|
||||
val fullWindows = sequence.take(10).windowed(size = 5, step = 3)
|
||||
assertPrints(fullWindows.toList(), "[[1, 2, 3, 4, 5], [4, 5, 6, 7, 8]]")
|
||||
|
||||
val partialWindows = sequence.take(10).windowed(size = 5, step = 3, partialWindows = true)
|
||||
assertPrints(partialWindows.toList(), "[[1, 2, 3, 4, 5], [4, 5, 6, 7, 8], [7, 8, 9, 10], [10]]")
|
||||
}
|
||||
|
||||
@@ -161,10 +164,10 @@ class Sequences {
|
||||
fun averageWindows() {
|
||||
val dataPoints = sequenceOf(10, 15, 18, 25, 19, 21, 14, 8, 5)
|
||||
|
||||
val averaged = dataPoints.windowed(size = 4, step = 1) { window -> window.average() }
|
||||
val averaged = dataPoints.windowed(size = 4, step = 1, partialWindows = true) { window -> window.average() }
|
||||
assertPrints(averaged.toList(), "[17.0, 19.25, 20.75, 19.75, 15.5, 12.0, 9.0, 6.5, 5.0]")
|
||||
|
||||
val averagedNoPartialWindows = dataPoints.windowed(size = 4, step = 1).filter { it.size == 4 }.map { it.average() }
|
||||
val averagedNoPartialWindows = dataPoints.windowed(size = 4, step = 1).map { it.average() }
|
||||
assertPrints(averagedNoPartialWindows.toList(), "[17.0, 19.25, 20.75, 19.75, 15.5, 12.0]")
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user