/* $Id$
* Test file for immutable queues.
*/
import scala.collection.immutable.Queue;
object iq {
def main = {
/* Create an empty queue. */
val q:Queue[Int] = Queue.Empty;
/* Test isEmpty.
* Expected: Empty
*/
if(q.isEmpty) {
Console.println("Empty");
}
/* Test infix enqueing. */
val q2 = q + 42 + 0;
/* Test is empty and dequeue.
* Expected: Head: 42
*/
val q4 =
if(q2.isEmpty) {
Console.println("Empty");
q2;
} else {
val Pair(head,q3) = q2.dequeue;
Console.println("Head: " + head);
q3;
};
/* Test sequence enqueing. */
val q5:Queue[Any] = q4.enqueue(1,2,3,4,5,6,7,8,9);
/* Test toString.
* Expected: Head: q5: Queue(0,1,2,3,4,5,6,7,8,9)
*/
Console.println("q5: " + q5);
/* Test apply
* Expected: q5[5]: 5
*/
Console.println("q5[5]: " + q5(5));
val q5c:Queue[int] = Queue.Empty.enqueue(0, 1, 2, 3, 4, 5, 6, 7, 8, 9);
/* Testing ==
* Expected: q5 == q9: true
* q9 == q5: true
*/
Console.println("q5 == q5c: " + (q5 == q5c));
Console.println("q5c == q5: " + (q5c == q5));
val Pair(_,q6) = q5.dequeue;
val Pair(_,q7) = q6.dequeue;
val q8 = q7 + 10 + 11;
/* Test dequeu
* Expected: q8: Queue(2,3,4,5,6,7,8,9,10,11)
*/
Console.println("q8: " + q8);
val q9 = new Queue(2,3,4,5,6,7,8,9,10,11);
/* Testing ==
* Expected: q8 == q9: true
*/
Console.println("q8 == q9: " + (q8 == q9));
/* Testing elements
* Expected: Elements: 1 2 3 4 5 6 7 8 9
*/
Console.print("Elements: ");
q6.elements.foreach(e => Console.print(" "+ e + " "));
Console.println;
/* Testing mkString
* Expected: String: <1-2-3-4-5-6-7-8-9>
*/
Console.println("String: " + q6.mkString("<","-",">"));
/* Testing length
* Expected: Length: 9
*/
Console.println("Length: " + q6.length);
/* Testing front
* Expected: Front: 1
*/
Console.println("Front: " + q6.front);
}
}
object Test {
def main(args: Array[String]): Unit = {
iq.main;
();
}
}