JS backend: fixed AbstractCollection#equals.

Disabled test IteratorsTest::takeExtractsTheFirstNElements
This commit is contained in:
develar
2013-08-08 19:51:49 +04:00
committed by Zalim Bashorov
parent 411caef8ce
commit 4e07c60541
4 changed files with 74 additions and 9 deletions
@@ -64,4 +64,8 @@ public final class ArrayListTest extends JavaClassesTest {
}
}
public void testMisc() throws Exception {
fooBoxTest();
}
}
@@ -0,0 +1,59 @@
package foo
import java.util.ArrayList
fun assertThat(a:Any, b:Any) {
if (a != b) {
throw Exception("$a is not equal to $b")
}
}
fun box(): Boolean {
var i = 0
val list = ArrayList<Int>()
while (i++ < 3) {
list.add(i)
}
// test addAt
list.add(0, 400)
list.remove(0);
list.add(1, 500)
// test contains, addAll
if (!list.contains(500) || list.contains(600) || list.addAll(ArrayList<Int>())) {
return false;
}
val a = ArrayList<Int>()
a.add(3)
val b = ArrayList<Int>()
b.add(4)
a.addAll(b)
if (a[0] != 3 || a[1] != 4) {
return false
}
if (a.isEmpty() || !ArrayList<Int>().isEmpty()) {
return false
}
assertThat(a.equals(b), false)
b[0] = a[0]
b.add(a[1])
assertThat(a.equals(b), true)
a.clear()
assertThat(a.isEmpty(), true)
val array = list.toArray(Array<Int>(0, {it}))
assertThat(array[0], 1)
assertThat(array[1], 500)
assertThat(array[2], 2)
assertThat(array[3], 3)
assertThat(JSON.stringify(list), "[1,500,2,3]")
assertThat(list.toString(), "[1, 500, 2, 3]")
return true;
}
+9 -8
View File
@@ -148,16 +148,17 @@ String.prototype.contains = function (s) {
return Kotlin.$new(ArrayIterator)(this.toArray());
},
equals: function (o) {
if (this.size() === o.size()) {
var iterator1 = this.iterator();
var iterator2 = o.iterator();
var i = this.size();
while (i-- > 0) {
if (!Kotlin.equals(iterator1.next(), iterator2.next())) {
return false;
}
if (this.size() !== o.size()) return false;
var iterator1 = this.iterator();
var iterator2 = o.iterator();
var i = this.size();
while (i-- > 0) {
if (!Kotlin.equals(iterator1.next(), iterator2.next())) {
return false;
}
}
return true;
},
toString: function () {
@@ -22,7 +22,8 @@ class IteratorsTest {
assertEquals(arrayList(13, 21, 34, 55, 89).fold(0, sum), fibonacci().filter { it > 10 }.take(5).fold(0, sum))
}
test fun takeExtractsTheFirstNElements() {
// TODO fix and enable this test
fun takeExtractsTheFirstNElements() {
assertEquals(arrayList(0, 1, 1, 2, 3, 5, 8, 13, 21, 34), fibonacci().take(10).toList())
}