@Override public BankersQueue<T> enqueue(T value) { return cons(value); }
@Test public void enqueue(){ BankersQueue<Integer> q = BankersQueue.cons(1); assertThat(q.dequeue(-1),equalTo(Tuple.tuple(1,q.tail()))); } @Test
@Test public void enqueue2(){ BankersQueue<Integer> q = BankersQueue.cons(1) .enqueue(10); System.out.println(q); System.out.println(q.seq()); System.out.println(q.equals(q)); System.out.println(q.tail()); System.out.println(q.dequeue(-1)); assertThat(q.dequeue(-1),equalTo(Tuple.tuple(1,q.tail()))); BankersQueue<Integer> q2 = q.dequeue(-1)._2(); assertThat(q2.dequeue(-1),equalTo(Tuple.tuple(10,q2.tail()))); }
@Override public BankersQueue<T> enqueue(T value) { return cons(value); }
@Test public void get(){ BankersQueue<Integer> q = BankersQueue.cons(1) .enqueue(2) .enqueue(3); //BankersQueue.of(1,2,3); System.out.println("0 " + q.get(0)); System.out.println("1 " + q.get(1)); System.out.println("2 " + q.get(2)); System.out.println("0 " + q.dequeue(-1)); System.out.println("1 " + q.dequeue(-1)._2().dequeue(-1)); System.out.println("2 " + q.dequeue(-1)._2().dequeue(-1)._2().dequeue(-1)); for (Integer integer : q) { System.out.println(integer); } assertThat(q.get(0),equalTo(Option.some(1))); assertThat(q.get(1),equalTo(Option.some(2))); assertThat(q.get(2),equalTo(Option.some(3))); assertThat(q.get(3).isPresent(),equalTo(false)); assertThat(q.get(-1).isPresent(),equalTo(false)); } @Test
@Test public void get2(){ BankersQueue<Integer> q = BankersQueue.cons(1) .enqueue(2) .enqueue(3) .enqueue(4) .enqueue(5) .enqueue(6); //BankersQueue.of(1,2,3); System.out.println("0 " + q.get(0)); System.out.println("1 " + q.get(1)); System.out.println("2 " + q.get(2)); System.out.println("3 " + q.get(3)); System.out.println("4 " + q.get(4)); System.out.println("5 " + q.get(5)); System.out.println(q); System.out.println("0 " + q.dequeue(-1)); System.out.println("1 " + q.dequeue(-1)._2().dequeue(-1)); System.out.println("2 " + q.dequeue(-1)._2().dequeue(-1)._2().dequeue(-1)); for (Integer integer : q) { System.out.println(integer); } assertThat(q.get(0),equalTo(Option.some(1))); assertThat(q.get(1),equalTo(Option.some(2))); assertThat(q.get(2),equalTo(Option.some(3))); assertThat(q.get(3).isPresent(),equalTo(true)); assertThat(q.get(-1).isPresent(),equalTo(false)); }