Exemplo n.º 1
0
  public static void testPersistentQueue() {
    PersistentQueue<Integer> q0 = new PersistentQueue<Integer>();

    assertThat(q0.size(), 0);
    int i = 0;
    try {
      q0.peek();
      i = 1;
    } catch (NoSuchElementException e) {
      i = 2;
    }
    assertThat(i, 2);

    PersistentQueue<Integer> q1 = q0.enqueue(2);
    assertThat(q0.size(), 0);
    assertThat(q1.size(), 1);
    assertThat(q1.peek(), 2);

    PersistentQueue<Integer> q2 = q1.enqueue(1);
    assertThat(q2.size(), 2);
    assertThat(q2.peek(), 2);

    PersistentQueue<Integer> q3 = q2.dequeue();
    assertThat(q3.size(), 1);
    assertThat(q3.peek(), 1);
    assertThat(q2.size(), 2);
    assertThat(q2.peek(), 2);
    assertThat(q1.size(), 1);
    assertThat(q1.peek(), 2);

    try {
      PersistentQueue<Integer> q5 = q3.enqueue(null);
      i = 3;
    } catch (IllegalArgumentException e) {
      i = 4;
    }
    assertThat(i, 4);
  }