JS: move more test to box tests
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
package foo
|
||||
|
||||
class MyList<T>(vararg val data: T) : AbstractList<T>() {
|
||||
override fun get(index: Int) = data[index]
|
||||
override val size: Int get() = data.size
|
||||
}
|
||||
|
||||
fun <T> test(expected: String, list: List<T>) {
|
||||
var s = ""
|
||||
for (e in list) {
|
||||
s += "$e,"
|
||||
}
|
||||
assertEquals(expected, s)
|
||||
|
||||
val it = list.iterator()
|
||||
s = ""
|
||||
while (it.hasNext()) {
|
||||
val e = it.next()
|
||||
s += "$e,"
|
||||
}
|
||||
assertEquals(expected, s)
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
|
||||
test("32,12,23,444,", MyList(32, 12, 23, 444))
|
||||
test("", MyList<Any>())
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package foo
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
fun box(): String {
|
||||
val a = ArrayList<Int>();
|
||||
a.add(1)
|
||||
a.add(2)
|
||||
if (a.size != 2) return "fail1: ${a.size}"
|
||||
if (a.get(1) != 2) return "fail2"
|
||||
if (a.get(0) != 1) return "fail3"
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package foo
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
fun box(): String {
|
||||
val a = ArrayList<Int>();
|
||||
a.add(1)
|
||||
a.add(2)
|
||||
a[1] = 100
|
||||
if (a.size != 2) return "fail1: ${a.size}"
|
||||
if (a[1] != 100) return "fail2"
|
||||
if (a[0] != 1) return "fail3"
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
package foo
|
||||
|
||||
import java.util.ArrayList
|
||||
|
||||
fun box(): String {
|
||||
val al = ArrayList<Int>(10)
|
||||
return if (al.size == 0) "OK" else "fail: ${al.size}"
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package foo
|
||||
|
||||
import java.util.ArrayList
|
||||
|
||||
var baz = 0
|
||||
fun withSideEffect(v: Int): Int {
|
||||
baz = v
|
||||
return v
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
val al = ArrayList<Int>(withSideEffect(2))
|
||||
if (al.size != 0) return "fail1: ${al.size}"
|
||||
if (baz != 2) return "fail2: $baz"
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package foo
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
fun box(): String {
|
||||
val list: List<Any?> = arrayListOf(3, "2", -1, null, 0, 8, 5, "3", 77, -15)
|
||||
val subset = arrayListOf(3, "2", -1, null)
|
||||
val empty = arrayListOf<Any?>()
|
||||
val withOtherElements = arrayListOf(3, 54, null)
|
||||
|
||||
if (!list.containsAll(subset)) return "FAIL: $list.containsAll($subset)"
|
||||
if (!list.containsAll(empty)) return "FAIL: $list.containsAll($empty)"
|
||||
if (list.containsAll(withOtherElements)) return "FAIL: $list.containsAll($withOtherElements)"
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
package foo
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
fun box(): String {
|
||||
val a = ArrayList<Int>();
|
||||
return if (a.size == 0) "OK" else "fail: ${a.size}"
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package foo
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
fun box(): String {
|
||||
val arr = ArrayList<Int>();
|
||||
var i = 0;
|
||||
while (i++ < 10) {
|
||||
arr.add(i);
|
||||
}
|
||||
try {
|
||||
if (arr[10] == 11) return "fail1"
|
||||
}
|
||||
catch (e: Exception) {
|
||||
return "OK"
|
||||
}
|
||||
return "fail2"
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package foo
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
fun <T> test(list: List<T>, elements: List<T>, expected: List<Int>, method: List<T>.(T) -> Int, methodName: String): String? {
|
||||
for (i in 0..elements.size - 1) {
|
||||
val actual = list.method(elements[i])
|
||||
if (actual != expected[i]) return "$methodName failed when find: ${elements[i]}, expected: ${expected[i]}, actual: $actual"
|
||||
}
|
||||
return null
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
// 0 1 2 3 4 5 6 7 8 9
|
||||
val list = listOf(3, "2", -1, null, 0, "2", -1, null, 0, 8)
|
||||
val findingElements = listOf(77, null, 0, 8, -15, "2", 5, 3, -1, "3")
|
||||
val expectedIndexOf = listOf(-1, 3, 4, 9, -1, 1, -1, 0, 2, -1)
|
||||
val expectedLastIndexOf = listOf(-1, 7, 8, 9, -1, 5, -1, 0, 6, -1)
|
||||
|
||||
return test(list, findingElements, expectedIndexOf, { indexOf(it) }, "indexOf") ?:
|
||||
test(list, findingElements, expectedLastIndexOf, { lastIndexOf(it) }, "lastIndexOf") ?:
|
||||
"OK"
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
package foo
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
fun box(): String {
|
||||
val a = ArrayList<Int>();
|
||||
a.add(3)
|
||||
if (a.isEmpty()) return "fail1"
|
||||
if (!ArrayList<Int>().isEmpty()) return "fail2"
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package foo
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
fun box(): String {
|
||||
var i = 0
|
||||
val arr = ArrayList<Int>();
|
||||
while (i++ < 10) {
|
||||
arr.add(i);
|
||||
}
|
||||
var sum = 0
|
||||
for (a in arr) {
|
||||
sum += a;
|
||||
}
|
||||
if (sum != 55) return "fail1: $sum"
|
||||
if (arr.size != 10) return "fail2: ${arr.size}"
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
package foo
|
||||
|
||||
import java.util.ArrayList
|
||||
|
||||
fun box(): String {
|
||||
var i = 0
|
||||
val list = ArrayList<Int>()
|
||||
while (i++ < 3) {
|
||||
list.add(i)
|
||||
}
|
||||
|
||||
// test addAt
|
||||
list.add(0, 400)
|
||||
list.removeAt(0);
|
||||
list.add(1, 500)
|
||||
// test contains, addAll
|
||||
if (!list.contains(500) || list.contains(600) || list.addAll(ArrayList<Int>())) {
|
||||
return "fail1"
|
||||
}
|
||||
|
||||
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 "fail2"
|
||||
}
|
||||
|
||||
if (a.isEmpty() || !ArrayList<Int>().isEmpty()) {
|
||||
return "fail2"
|
||||
}
|
||||
|
||||
assertNotEquals(a, b, "a != b")
|
||||
|
||||
b[0] = a[0]
|
||||
b.add(a[1])
|
||||
assertEquals(a, b, "a == b")
|
||||
|
||||
a.clear()
|
||||
assertEquals(true, a.isEmpty(), "a.isEmpty()")
|
||||
|
||||
|
||||
assertArrayEquals(arrayOf(1, 500, 2, 3), list.toTypedArray(), "list.toTypedArray()")
|
||||
assertEquals("[1,500,2,3]", JSON.stringify(list), "JSON.stringify(list)")
|
||||
assertEquals("[1, 500, 2, 3]", list.toString(), "list.toString()")
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package foo
|
||||
|
||||
import java.util.ArrayList
|
||||
|
||||
fun box(): String {
|
||||
val arr = ArrayList<Int>()
|
||||
for (i in 0..5) {
|
||||
arr.add(i)
|
||||
}
|
||||
|
||||
val removedElement = arr.removeAt(2)
|
||||
val removed = arr.remove(4)
|
||||
if (arr.size != 4) return "fail1: ${arr.size}"
|
||||
if (removedElement != 2) return "fail2: ${removedElement}"
|
||||
if (!removed) return "fail3"
|
||||
if (arr[0] != 0) return "fail4: ${arr[0]}"
|
||||
if (arr[1] != 1) return "fail5: ${arr[1]}"
|
||||
if (arr[2] != 3) return "fail6: ${arr[2]}"
|
||||
if (arr[3] != 5) return "fail7: ${arr[3]}"
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package foo
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
|
||||
fun <T> test(a: List<T>, b: List<T>, removed: Boolean, expected: List<T>): String? {
|
||||
val t = ArrayList<T>(a.size)
|
||||
t.addAll(a)
|
||||
|
||||
if (t.removeAll(b) != removed) return "$a.removeAll($b) != $removed, result list: $t"
|
||||
if (t != expected) return "Wrong result of $a.removeAll($b), expected: $expected, actual: $t"
|
||||
|
||||
return null
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
val list = listOf(3, "2", -1, null, 0, 8, 5, "3", 77, -15)
|
||||
val subset = listOf(3, "2", -1, null)
|
||||
val empty = listOf<Any?>()
|
||||
val withOtherElements = listOf(3, 54, null)
|
||||
|
||||
return test(list, subset, removed = true, expected = listOf(0, 8, 5, "3", 77, -15)) ?:
|
||||
test(list, empty, removed = false, expected = list) ?:
|
||||
test(list, withOtherElements, removed = true, expected = listOf("2", -1, 0, 8, 5, "3", 77, -15)) ?:
|
||||
"OK"
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package foo
|
||||
|
||||
import java.util.ArrayList
|
||||
|
||||
fun box(): String {
|
||||
var threwForEmptyList = false
|
||||
|
||||
val arr = ArrayList<Int>()
|
||||
try {
|
||||
arr.removeAt(2)
|
||||
}
|
||||
catch(e: IndexOutOfBoundsException) {
|
||||
threwForEmptyList = true
|
||||
}
|
||||
|
||||
for (i in 0..10) {
|
||||
arr.add(i)
|
||||
}
|
||||
|
||||
var threwForFilled = false
|
||||
|
||||
try {
|
||||
arr.removeAt(20)
|
||||
}
|
||||
catch(e: IndexOutOfBoundsException) {
|
||||
threwForFilled = true
|
||||
}
|
||||
|
||||
return if (threwForEmptyList && threwForFilled) "OK" else "fail"
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package foo
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
fun <T> test(a: List<T>, b: List<T>, removed: Boolean, expected: List<T>): String? {
|
||||
val t = ArrayList<T>(a.size)
|
||||
t.addAll(a)
|
||||
|
||||
if (t.retainAll(b) != removed) return "$a.retainAll($b) != $removed, result list: $t"
|
||||
if (t != expected) return "Wrong result of $a.retainAll($b), expected: $expected, actual: $t"
|
||||
|
||||
return null
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
val list = listOf(3, "2", -1, null, 0, 8, 5, "3", 77, -15)
|
||||
val subset = listOf(3, "2", -1, null)
|
||||
val empty = listOf<Any?>()
|
||||
val withOtherElements = listOf(3, 54, null)
|
||||
|
||||
return test(list, subset, removed = true, expected = subset) ?:
|
||||
test(list, empty, removed = true, expected = empty) ?:
|
||||
test(list, withOtherElements, removed = true, expected = listOf(3, null)) ?:
|
||||
test(list, list, removed = false, expected = list) ?:
|
||||
"OK"
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package foo
|
||||
|
||||
import java.util.ArrayList
|
||||
|
||||
fun box(): String {
|
||||
var i = 0
|
||||
val list = ArrayList<Int>()
|
||||
while (i++ < 3) {
|
||||
list.add(i)
|
||||
}
|
||||
|
||||
// test addAt
|
||||
list.add(1, 500)
|
||||
|
||||
val array = list.toTypedArray()
|
||||
|
||||
return if (array[0] == 1 && array[1] == 500 && array[2] == 2 && array[3] == 3 && JSON.stringify(list) == "[1,500,2,3]") "OK" else "fail"
|
||||
}
|
||||
Reference in New Issue
Block a user