added test case for KT-2354
This commit is contained in:
@@ -2,6 +2,26 @@ package kotlin
|
||||
|
||||
import java.util.*
|
||||
|
||||
public inline fun <T> java.lang.Iterable<T>.toString(): String {
|
||||
return makeString(", ", "[", "]")
|
||||
}
|
||||
|
||||
public inline fun <T> java.util.List<T>.equals(that: List<T>): Boolean {
|
||||
val s1 = this.size()
|
||||
val s2 = that.size()
|
||||
if (s1 == s2) {
|
||||
for (i in 0.upto(s1)) {
|
||||
val elem1 = this.get(i)
|
||||
val elem2 = that.get(i)
|
||||
if (elem1 != elem2) {
|
||||
return false
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
/** Returns a new ArrayList with a variable number of initial elements */
|
||||
public inline fun arrayList<T>(vararg values: T) : ArrayList<T> {
|
||||
val list = ArrayList<T>()
|
||||
|
||||
@@ -54,10 +54,18 @@ public abstract class SingleFileTranslationTest extends BasicTest {
|
||||
runFunctionOutputTest(ecmaVersions, filename, "foo", "box", true);
|
||||
}
|
||||
|
||||
public void checkFooBoxIsValue(@NotNull String filename, @NotNull EnumSet<EcmaVersion> ecmaVersions, Object expected) throws Exception {
|
||||
runFunctionOutputTest(ecmaVersions, filename, "foo", "box", expected);
|
||||
}
|
||||
|
||||
protected void fooBoxTest() throws Exception {
|
||||
checkFooBoxIsTrue(getTestName(true) + ".kt", EcmaVersion.all());
|
||||
}
|
||||
|
||||
protected void fooBoxIsValue(Object expected) throws Exception {
|
||||
checkFooBoxIsValue(getTestName(true) + ".kt", EcmaVersion.all(), expected);
|
||||
}
|
||||
|
||||
protected void fooBoxTest(@NotNull EnumSet<EcmaVersion> ecmaVersions) throws Exception {
|
||||
checkFooBoxIsTrue(getTestName(true) + ".kt", ecmaVersions);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
/*
|
||||
* Copyright 2010-2012 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.jetbrains.k2js.test.semantics;
|
||||
|
||||
public final class EqualsTest extends AbstractExpressionTest {
|
||||
|
||||
public EqualsTest() {
|
||||
super("equals/");
|
||||
}
|
||||
|
||||
public void TODO_testCustomEqualsMethod() throws Exception {
|
||||
fooBoxTest();
|
||||
}
|
||||
|
||||
public void testStringsEqual() throws Exception {
|
||||
fooBoxTest();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package foo
|
||||
|
||||
class Foo(val name: String) {
|
||||
public fun equals(that: Foo): Boolean {
|
||||
return this.name == that.name
|
||||
}
|
||||
}
|
||||
|
||||
fun box() : Boolean {
|
||||
val a = Foo("abc")
|
||||
val b = Foo("abc")
|
||||
val c = Foo("def")
|
||||
|
||||
if (a != b) return false
|
||||
if (a == c) return false
|
||||
|
||||
return true
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
package foo
|
||||
|
||||
fun box() : Boolean {
|
||||
val a = "abc"
|
||||
val b = "abc"
|
||||
val c = "def"
|
||||
|
||||
if (a != b) return false
|
||||
if (a == c) return false
|
||||
|
||||
return true
|
||||
}
|
||||
@@ -6,6 +6,11 @@ import org.junit.Test as test
|
||||
|
||||
class ListTest {
|
||||
|
||||
test fun toString() {
|
||||
val data = arrayList("foo", "bar")
|
||||
assertEquals("[foo, bar]", data.toString())
|
||||
}
|
||||
|
||||
test fun head() {
|
||||
val data = arrayList("foo", "bar")
|
||||
assertEquals("foo", data.head)
|
||||
@@ -13,7 +18,9 @@ class ListTest {
|
||||
|
||||
test fun tail() {
|
||||
val data = arrayList("foo", "bar", "whatnot")
|
||||
assertEquals(arrayList("bar", "whatnot"), data.tail)
|
||||
val actual = data.tail
|
||||
val expected = arrayList("bar", "whatnot")
|
||||
assertEquals(expected, actual)
|
||||
}
|
||||
|
||||
test fun first() {
|
||||
|
||||
Reference in New Issue
Block a user