From dcc21fd4e1372c5cc9fbef121f2f87533569c616 Mon Sep 17 00:00:00 2001 From: Pavel Talanov Date: Thu, 8 Dec 2011 17:48:46 +0400 Subject: [PATCH] Array list test suite. --- .../translate/context/StandardClasses.java | 5 +++++ .../jetbrains/k2js/test/ArrayListTest.java | 20 +++++++++++++++++++ .../java/arrayList/cases/arrayAccess.kt | 11 ++++++++++ .../testFiles/java/arrayList/cases/isEmpty.kt | 9 +++++++++ .../testFiles/java/arrayList/cases/iterate.kt | 16 +++++++++++++++ .../testFiles/java/arrayList/cases/remove.kt | 17 ++++++++++++++++ 6 files changed, 78 insertions(+) create mode 100644 translator/testFiles/java/arrayList/cases/arrayAccess.kt create mode 100644 translator/testFiles/java/arrayList/cases/isEmpty.kt create mode 100644 translator/testFiles/java/arrayList/cases/iterate.kt create mode 100644 translator/testFiles/java/arrayList/cases/remove.kt diff --git a/translator/src/org/jetbrains/k2js/translate/context/StandardClasses.java b/translator/src/org/jetbrains/k2js/translate/context/StandardClasses.java index 8dd072dcf16..cba21608142 100644 --- a/translator/src/org/jetbrains/k2js/translate/context/StandardClasses.java +++ b/translator/src/org/jetbrains/k2js/translate/context/StandardClasses.java @@ -40,6 +40,11 @@ public final class StandardClasses { standardClasses.declareStandardTopLevelObject(arrayListFQName, "ArrayList"); standardClasses.declareStandardInnerDeclaration(arrayListFQName, "size", "size"); standardClasses.declareStandardInnerDeclaration(arrayListFQName, "", "ArrayList"); + standardClasses.declareStandardInnerDeclaration(arrayListFQName, "add", "add"); + standardClasses.declareStandardInnerDeclaration(arrayListFQName, "get", "get"); + standardClasses.declareStandardInnerDeclaration(arrayListFQName, "isEmpty", "isEmpty"); + standardClasses.declareStandardInnerDeclaration(arrayListFQName, "set", "set"); + standardClasses.declareStandardInnerDeclaration(arrayListFQName, "remove", "remove"); } //TODO: more generic ways to declare standard classes diff --git a/translator/test/org/jetbrains/k2js/test/ArrayListTest.java b/translator/test/org/jetbrains/k2js/test/ArrayListTest.java index af3feb104a6..0af3d08c21a 100644 --- a/translator/test/org/jetbrains/k2js/test/ArrayListTest.java +++ b/translator/test/org/jetbrains/k2js/test/ArrayListTest.java @@ -23,4 +23,24 @@ public final class ArrayListTest extends JavaClassesTest { public void access() throws Exception { testFooBoxIsTrue("access.kt"); } + + @Test + public void isEmpty() throws Exception { + testFooBoxIsTrue("isEmpty.kt"); + } + + @Test + public void arrayAccess() throws Exception { + testFooBoxIsTrue("arrayAccess.kt"); + } + + @Test + public void iterate() throws Exception { + testFooBoxIsTrue("iterate.kt"); + } + + @Test + public void remove() throws Exception { + testFooBoxIsTrue("remove.kt"); + } } diff --git a/translator/testFiles/java/arrayList/cases/arrayAccess.kt b/translator/testFiles/java/arrayList/cases/arrayAccess.kt new file mode 100644 index 00000000000..d68b873ac68 --- /dev/null +++ b/translator/testFiles/java/arrayList/cases/arrayAccess.kt @@ -0,0 +1,11 @@ +namespace foo + +import java.util.ArrayList; + +fun box() : Boolean { + val a = ArrayList(); + a.add(1) + a.add(2) + a[1] = 100 + return (a.size == 2) && (a[1] == 100) && (a[0] == 1); +} \ No newline at end of file diff --git a/translator/testFiles/java/arrayList/cases/isEmpty.kt b/translator/testFiles/java/arrayList/cases/isEmpty.kt new file mode 100644 index 00000000000..615812b5745 --- /dev/null +++ b/translator/testFiles/java/arrayList/cases/isEmpty.kt @@ -0,0 +1,9 @@ +namespace foo + +import java.util.ArrayList; + +fun box() : Boolean { + val a = ArrayList(); + a.add(3) + return !(a.isEmpty()) && (ArrayList().isEmpty()); +} \ No newline at end of file diff --git a/translator/testFiles/java/arrayList/cases/iterate.kt b/translator/testFiles/java/arrayList/cases/iterate.kt new file mode 100644 index 00000000000..3bb40c235d0 --- /dev/null +++ b/translator/testFiles/java/arrayList/cases/iterate.kt @@ -0,0 +1,16 @@ +namespace foo + +import java.util.ArrayList; + +fun box() : Boolean { + var i = 0 + val arr = ArrayList(); + while (i++ < 10) { + arr.add(i); + } + var sum = 0 + for (a in arr) { + sum += a; + } + return (sum == 55) +} \ No newline at end of file diff --git a/translator/testFiles/java/arrayList/cases/remove.kt b/translator/testFiles/java/arrayList/cases/remove.kt new file mode 100644 index 00000000000..50141f07673 --- /dev/null +++ b/translator/testFiles/java/arrayList/cases/remove.kt @@ -0,0 +1,17 @@ +namespace foo + +import java.util.ArrayList; + +fun box() : Boolean { + var i = 0 + val arr = ArrayList(); + while (i++ < 10) { + arr.add(i); + } + arr.remove(2) + var sum = 0 + for (a in arr) { + sum += a; + } + return ((sum == 52) && (arr[1] == 2) && (arr[2] == 4) && (arr[3] == 5) && (arr[4] == 6) && (arr[8] == 10)) +} \ No newline at end of file