Random r = new Random(); for(int i=0;i<1000;i++) { if(pvec.size()==0 || r.nextBoolean()) { // add if(r.nextBoolean()) { // append Integer v = r.nextInt(); assertEquals(list.contains(v), pvec.contains(v)); pvec = pvec.plus(v); int k = r.nextInt(pvec.size()+1); Integer v = r.nextInt(); assertEquals(list.contains(v), pvec.contains(v)); if(k<pvec.size()) assertEquals(list.get(k), pvec.get(k)); pvec = pvec.plus(k, v); int k = r.nextInt(pvec.size()); Integer v = r.nextInt(); list.set(k, v); pvec = pvec.with(k, v); int j = r.nextInt(pvec.size()), k=0; for(Integer e : pvec) { assertTrue(pvec.contains(e)); assertEquals(e, pvec.get(k));
@Override public int indexOf(Object o) { if (!contents.contains(o)) return -1; return order.indexOf(o); } }
@Override public void forEachRemaining(Consumer<? super R> action) { source.forEachRemaining(t->{ if(data==false) data = true; list.mutate(var -> var.plus(Math.max(0, var.size()), t)); if(list.get().size()==windowSize){ action.accept(finalizer.apply(VectorX.fromIterable(list.get()))); sent = true; for (int i = 0; i < increment && list.get() .size() > 0; i++) list.mutate(var -> var.minus(0)); }else{ sent =false; } }); if(!sent && data){ action.accept(finalizer.apply(VectorX.fromIterable(list.get()))); } } boolean canAdvance = true;
@Override public OrderedPSet<E> plus(E e) { if (contents.contains(e)) return this; return new OrderedPSet<E>(contents.plus(e), order.plus(e)); }
@Override public E get(int index) { return order.get(index); }
@Override public OrderedPSet<E> minus(Object e) { if (!contents.contains(e)) return this; return new OrderedPSet<E>(contents.minus(e), order.minus(e)); }
public Trampoline<T> bounce() { Object input = init(); for (int i=0; i< fns.size();i++) { final Function<Object, Object> next = fns.get(i); if (next instanceof RecFunction) { PVector<Function<Object, Object>> remaining = fns.subList(i+1,fns.size()); PVector<Function<Object, Object>> nextSteps = (PVector) ((RecFunction) next).apply(VOID); nextSteps.addAll(remaining); return new Later(nextSteps).toTrampoline(); } else { input = next.apply(input); } } return Trampoline.done((T) input); } };
public PVector<T> plusAll(Collection<? extends T> list) { return boxed.plusAll(list); }
/** * @param col Collection. * @param evt Event. * @return Cloned collection. */ @Nullable protected static <E> Collection<E> removeFromCollection(@Nullable Collection<E> col, E evt) { if (col == null) return null; PVector<E> res = (PVector<E>)col; res = res.minus(evt); return res.isEmpty() ? null : res; }
/** * @return * @see org.pcollections.MapPSet#size() */ public int size() { return stack.size(); }
@Override public Iterator<E> iterator() { return order.iterator(); }
public PVector<T> minusAll(Collection<?> list) { return boxed.minusAll(list); }
public PVector<T> subList(int start, int end) { return boxed.subList(start, end); }