Skip to content

Commit

Permalink
Hold back eachSumOf for a while.
Browse files Browse the repository at this point in the history
  • Loading branch information
ilya-g committed Jan 11, 2017
1 parent 0dfcbdf commit 4816474
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 3 deletions.
4 changes: 3 additions & 1 deletion js/js.libraries/src/core/grouping.kt
Expand Up @@ -24,11 +24,13 @@ package kotlin.collections
public fun <T, K> Grouping<T, K>.eachCount(): Map<K, Int> =
fold(0) { acc, e -> acc + 1 }

/**
/**
* Groups elements from the [Grouping] source by key and sums values provided by the [valueSelector] function for elements in each group.
*
* @return a [Map] associating the key of each group with the count of element in the group.
*/
@SinceKotlin("1.1")
public inline fun <T, K> Grouping<T, K>.eachSumOf(valueSelector: (T) -> Int): Map<K, Int> =
fold(0) { acc, e -> acc + valueSelector(e) }
fold(0) { acc, e -> acc + valueSelector(e) }
*/
3 changes: 2 additions & 1 deletion libraries/stdlib/src/kotlin/collections/Grouping.kt
Expand Up @@ -246,6 +246,7 @@ public fun <T, K> Grouping<T, K>.eachCount(): Map<K, Int> =
public fun <T, K, M : MutableMap<in K, Int>> Grouping<T, K>.eachCountTo(destination: M): M =
foldTo(destination, 0) { acc, _ -> acc + 1 }

/**
/**
* Groups elements from the [Grouping] source by key and sums values provided by the [valueSelector] function for elements in each group.
*
Expand Down Expand Up @@ -273,7 +274,7 @@ public inline fun <T, K> Grouping<T, K>.eachSumOf(valueSelector: (T) -> Int): Ma
@SinceKotlin("1.1")
public inline fun <T, K, M : MutableMap<in K, Int>> Grouping<T, K>.eachSumOfTo(destination: M, valueSelector: (T) -> Int): M =
foldTo(destination, 0) { acc, e -> acc + valueSelector(e)}

*/

@JvmVersion
@PublishedApi
Expand Down
3 changes: 2 additions & 1 deletion libraries/stdlib/test/collections/GroupingTest.kt
Expand Up @@ -98,7 +98,7 @@ class GroupingTest {
assertEquals(mapOf('f' to 2, 'b' to 3, 'a' to 1, 'z' to 2), counts2)
}


/**
@Test fun sumEach() {
val values = listOf("k" to 50, "b" to 20, "k" to 1000 )
val summary = values.groupingBy { it.first }.eachSumOf { it.second }
Expand All @@ -110,4 +110,5 @@ class GroupingTest {
assertEquals(mapOf("k" to 1053, "b" to 31, "a" to 5), summary2)
}
*/
}

0 comments on commit 4816474

Please sign in to comment.