From 266f6ad81ad1e066d1984c255c3be9e5f660c916 Mon Sep 17 00:00:00 2001 From: Ilya Ryzhenkov Date: Wed, 5 Mar 2014 20:12:58 +0400 Subject: [PATCH] Clean TODOs, add custom Iterable implementation test. --- .../test/collections/CollectionJVMTest.kt | 5 +-- .../stdlib/test/collections/CollectionTest.kt | 38 ++++--------------- .../stdlib/test/collections/IterableTests.kt | 11 ++++++ 3 files changed, 20 insertions(+), 34 deletions(-) diff --git a/libraries/stdlib/test/collections/CollectionJVMTest.kt b/libraries/stdlib/test/collections/CollectionJVMTest.kt index 5049402a09a..e2a511f7056 100644 --- a/libraries/stdlib/test/collections/CollectionJVMTest.kt +++ b/libraries/stdlib/test/collections/CollectionJVMTest.kt @@ -48,8 +48,7 @@ class CollectionJVMTest { } } - // TODO would be nice to avoid the - test fun filterNotNullIntolinkedListOf() { + test fun filterNotNullIntoLinkedListOf() { val data = arrayListOf(null, "foo", null, "bar") val foo = data.filterNotNullTo(linkedListOf()) @@ -61,8 +60,6 @@ class CollectionJVMTest { } } - - // TODO would be nice to avoid the test fun filterIntoSortedSet() { val data = arrayListOf("foo", "bar") val sorted = data.filterTo(sortedSetOf()) { it.length == 3 } diff --git a/libraries/stdlib/test/collections/CollectionTest.kt b/libraries/stdlib/test/collections/CollectionTest.kt index 4938627e1aa..9eca2249f93 100644 --- a/libraries/stdlib/test/collections/CollectionTest.kt +++ b/libraries/stdlib/test/collections/CollectionTest.kt @@ -48,7 +48,6 @@ class CollectionTest { } } - // TODO would be nice to avoid the test fun filterIntoSet() { val data = arrayListOf("foo", "bar") val foo = data.filterTo(hashSetOf()) { it.startsWith("f") } @@ -170,8 +169,8 @@ class CollectionTest { } test fun mapRanges() { - val range = 1..3 map { it * 2} - assertEquals(listOf(2,4,6), range) + val range = 1..3 map { it * 2 } + assertEquals(listOf(2, 4, 6), range) } test fun plus() { @@ -271,28 +270,24 @@ class CollectionTest { } } - test fun simpleCount() { + test fun count() { val data = arrayListOf("foo", "bar") assertEquals(2, data.count()) assertEquals(3, hashSetOf(12, 14, 15).count()) assertEquals(0, ArrayList().count()) } - //todo after KT-1873 the name might be returned to 'last' - test fun lastElement() { + test fun last() { val data = arrayListOf("foo", "bar") assertEquals("bar", data.last()) assertEquals(25, arrayListOf(15, 19, 20, 25).last()) assertEquals('a', arrayListOf('a').last()) + fails { arrayListOf().last() } } // TODO // assertEquals(19, TreeSet(arrayListOf(90, 47, 19)).first()) - test fun lastException() { - fails { arrayListOf().last() } - } - test fun subscript() { val list = arrayListOf("foo", "bar") assertEquals("foo", list[0]) @@ -321,25 +316,15 @@ class CollectionTest { val indices = data.indices assertEquals(0, indices.start) assertEquals(1, indices.end) - - assertEquals(indices, data.size. indices) + assertEquals(indices, data.size.indices) } test fun contains() { - val data = arrayListOf("foo", "bar") - assertTrue(data.contains("foo")) - assertTrue(data.contains("bar")) - assertFalse(data.contains("some")) - - // TODO: Problems with generation - // assertTrue(IterableWrapper(data).contains("bar")) - // assertFalse(IterableWrapper(data).contains("some")) - assertFalse(hashSetOf().contains(12)) assertTrue(arrayListOf(15, 19, 20).contains(15)) - // assertTrue(IterableWrapper(hashSet(45, 14, 13)).contains(14)) - // assertFalse(IterableWrapper(linkedList()).contains(15)) + assertTrue(IterableWrapper(hashSetOf(45, 14, 13)).contains(14)) + assertFalse(IterableWrapper(linkedListOf()).contains(15)) } test fun sortForMutableIterable() { @@ -422,11 +407,4 @@ class CollectionTest { expect(3.0.toFloat()) { arrayListOf(1.0.toFloat(), 2.0.toFloat()).sum() } } - class IterableWrapper(collection: Iterable) : Iterable { - private val collection = collection - - override fun iterator(): Iterator { - return collection.iterator() - } - } } diff --git a/libraries/stdlib/test/collections/IterableTests.kt b/libraries/stdlib/test/collections/IterableTests.kt index 15d5b9deb2f..10a5765bf5d 100644 --- a/libraries/stdlib/test/collections/IterableTests.kt +++ b/libraries/stdlib/test/collections/IterableTests.kt @@ -4,6 +4,17 @@ import org.junit.Test import kotlin.test.* import java.util.* +fun iterableOf(vararg items : T) : Iterable = IterableWrapper(items.toList()) + +class IterableWrapper(collection: Iterable) : Iterable { + private val collection = collection + + override fun iterator(): Iterator { + return collection.iterator() + } +} + +class IterableTest : IterableTests>(iterableOf("foo", "bar"), iterableOf()) class SetTest : IterableTests>(hashSetOf("foo", "bar"), hashSetOf()) class ListTest : OrderedIterableTests>(listOf("foo", "bar"), listOf()) class ArrayListTest : OrderedIterableTests>(arrayListOf("foo", "bar"), arrayListOf())