summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorAleksandar Pokopec <aleksandar.prokopec@epfl.ch>2009-11-10 21:16:42 +0000
committerAleksandar Pokopec <aleksandar.prokopec@epfl.ch>2009-11-10 21:16:42 +0000
commit2a5669288a27478a2b505ed79e0022432d6955a3 (patch)
tree2350702d0b4a7eb5895cd13f34fd1d0e3ff8c505 /test
parent98c7307de8978fbbfcc2866cc5507d1e5bca6c0d (diff)
downloadscala-2a5669288a27478a2b505ed79e0022432d6955a3.tar.gz
scala-2a5669288a27478a2b505ed79e0022432d6955a3.tar.bz2
scala-2a5669288a27478a2b505ed79e0022432d6955a3.zip
Mutable list test - passes.
Diffstat (limited to 'test')
-rw-r--r--test/files/run/MutableListTest.scala126
1 files changed, 126 insertions, 0 deletions
diff --git a/test/files/run/MutableListTest.scala b/test/files/run/MutableListTest.scala
new file mode 100644
index 0000000000..322a368b16
--- /dev/null
+++ b/test/files/run/MutableListTest.scala
@@ -0,0 +1,126 @@
+
+
+
+import scala.collection.mutable.MutableList
+
+
+
+class ExtList[T] extends MutableList[T] {
+ def printState {
+ println("Length: " + len)
+ println("Last elem: " + last0.elem)
+ println("First elem: " + first0.elem)
+ println("After first elem: " + first0.next.elem)
+ println("After first: " + first0.next)
+ println("Last: " + last0)
+ }
+}
+
+object Test {
+
+ def main(args: Array[String]) {
+ testEmpty
+ testAddElement
+ testAddFewElements
+ testAddMoreElements
+ testTraversables
+ }
+
+ def testEmpty {
+ val mlist = new MutableList[Int]
+ assert(mlist.isEmpty)
+ assert(mlist.get(0) == None)
+ }
+
+ def testAddElement {
+ val mlist = new MutableList[Int]
+ mlist += 17
+ assert(mlist.nonEmpty)
+ assert(mlist.length == 1)
+ assert(mlist.head == 17)
+ assert(mlist.last == 17)
+ assert(mlist(0) == 17)
+ assert(mlist.tail.isEmpty)
+ assert(mlist.tail.length == 0)
+ mlist(0) = 101
+ assert(mlist(0) == 101)
+ assert(mlist.toList == List(101))
+ assert(mlist.tail.get(0) == None)
+ assert((mlist.tail += 19).head == 19)
+ assert(mlist.tail.length == 0)
+ }
+
+ def testAddFewElements {
+ val mlist = new MutableList[Int]
+ for (i <- 0 until 2) mlist += i
+// mlist.printState
+ for (i <- 0 until 2) assert(mlist(i) == i)
+ assert(mlist.length == 2)
+ assert(mlist.nonEmpty)
+ assert(mlist.tail.length == 1)
+ assert(mlist.tail.tail.length == 0)
+ assert(mlist.tail.tail.isEmpty)
+ }
+
+ def testAddMoreElements {
+ val mlist = new MutableList[Int]
+ for (i <- 0 until 10) mlist += i * i
+ assert(mlist.nonEmpty)
+ assert(mlist.length == 10)
+ for (i <- 0 until 10) assert(mlist(i) == i * i)
+ assert(mlist(5) == 5 * 5)
+ assert(mlist(9) == 9 * 9)
+ var sometail = mlist
+ for (i <- 0 until 10) {
+ assert(sometail.head == i * i)
+ sometail = sometail.tail
+ }
+ mlist(5) = -25
+ assert(mlist(5) == -25)
+ mlist(0) = -1
+ assert(mlist(0) == -1)
+ mlist(9) = -81
+ assert(mlist(9) == -81)
+ assert(mlist(5) == -25)
+ assert(mlist(0) == -1)
+ assert(mlist.last == -81)
+ mlist.clear
+ assert(mlist.isEmpty)
+ mlist += 1001
+ assert(mlist.head == 1001)
+ mlist += 9999
+ assert(mlist.tail.head == 9999)
+ assert(mlist.last == 9999)
+ }
+
+ def testTraversables {
+ val mlist = new MutableList[Int]
+ for (i <- 0 until 10) mlist += i * i
+ var lst = mlist.drop(5)
+ for (i <- 0 until 5) assert(lst(i) == (i + 5) * (i + 5))
+ lst = lst.take(3)
+ for (i <- 0 until 3) assert(lst(i) == (i + 5) * (i + 5))
+ lst += 129
+ assert(lst(3) == 129)
+ assert(lst.last == 129)
+ assert(lst.length == 4)
+ lst += 7
+ assert(lst.init.last == 129)
+ assert(lst.length == 5)
+ lst.clear
+ assert(lst.length == 0)
+ for (i <- 0 until 5) lst += i
+ assert(lst.reduceLeft(_ + _) == 10)
+ }
+
+}
+
+
+
+
+
+
+
+
+
+