summaryrefslogblamecommitdiff
path: root/test/files/run/iq.scala
blob: 87bbe45cd7adac959f2550085e13d8c3025b2aab (plain) (tree)



































































































                                                                           
/* $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;
    ();
  }
}