From 606b4db48ac283e6b76e2546f700eb6ec3395bb0 Mon Sep 17 00:00:00 2001 From: Ilya Gorbunov Date: Tue, 31 Mar 2020 00:53:55 +0300 Subject: [PATCH] Improve samples for partition: add destructuring --- .../samples/test/samples/collections/arrays.kt | 5 +++-- .../samples/test/samples/collections/sequences.kt | 13 ++++++++++--- .../stdlib/samples/test/samples/text/strings.kt | 7 ++++--- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/libraries/stdlib/samples/test/samples/collections/arrays.kt b/libraries/stdlib/samples/test/samples/collections/arrays.kt index 02ab1d4f27e..2678bbaf56b 100644 --- a/libraries/stdlib/samples/test/samples/collections/arrays.kt +++ b/libraries/stdlib/samples/test/samples/collections/arrays.kt @@ -150,8 +150,9 @@ class Arrays { @Sample fun partitionArrayOfPrimitives() { val array = intArrayOf(1, 2, 3, 4, 5) - val partition = array.partition { it % 2 == 0 } - assertPrints(partition, "([2, 4], [1, 3, 5])") + val (even, odd) = array.partition { it % 2 == 0 } + assertPrints(even, "[2, 4]") + assertPrints(odd, "[1, 3, 5]") } } diff --git a/libraries/stdlib/samples/test/samples/collections/sequences.kt b/libraries/stdlib/samples/test/samples/collections/sequences.kt index bdda680da3f..548d6e1e9ef 100644 --- a/libraries/stdlib/samples/test/samples/collections/sequences.kt +++ b/libraries/stdlib/samples/test/samples/collections/sequences.kt @@ -231,9 +231,16 @@ class Sequences { @Sample fun partition() { - val sequence = sequenceOf(1, 2, 3, 4, 5) - val result = sequence.partition { it % 2 == 0 } - assertPrints(result, "([2, 4], [1, 3, 5])") + fun fibonacci(): Sequence { + // fibonacci terms + // 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, ... + return generateSequence(Pair(0, 1), { Pair(it.second, it.first + it.second) }).map { it.first } + } + + val (even, odd) = fibonacci().take(10).partition { it % 2 == 0 } + + assertPrints(even, "[0, 2, 8, 34]") + assertPrints(odd, "[1, 1, 3, 5, 13, 21]") } } diff --git a/libraries/stdlib/samples/test/samples/text/strings.kt b/libraries/stdlib/samples/test/samples/text/strings.kt index b6eb5052de0..1267433d21f 100644 --- a/libraries/stdlib/samples/test/samples/text/strings.kt +++ b/libraries/stdlib/samples/test/samples/text/strings.kt @@ -172,9 +172,10 @@ class Strings { @Sample fun partition() { - val string = "Hello" - val result = string.partition { it == 'l' } - assertPrints(result, "(ll, Heo)") + fun isVowel(c: Char) = "aeuio".contains(c, ignoreCase = true) + val string = "Discussion" + val result = string.partition(::isVowel) + assertPrints(result, "(iuio, Dscssn)") } @Sample