JS: move more test to box tests

This commit is contained in:
Alexey Andreev
2016-08-30 17:07:29 +03:00
parent 34bf3e6e56
commit 9da1a50cae
68 changed files with 465 additions and 355 deletions
@@ -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"
}
+14
View File
@@ -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"
}
+23
View File
@@ -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"
}
+11
View File
@@ -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"
}
+19
View File
@@ -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"
}
+50
View File
@@ -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"
}
+22
View File
@@ -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"
}
+18
View File
@@ -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"
}