154 List<Object[]> spliterators = new ArrayList<>(); 155 for (Object[] data : arrays) { 156 final Object name = data[0]; 157 final Integer[] ints = (Integer[])data[1]; 158 159 spliterators.add(splitDescr("Arrays.s(array):" + name, 160 () -> Arrays.spliterator(ints))); 161 spliterators.add(splitDescr("arrays.s(array,o,l):" + name, 162 () -> Arrays.spliterator(ints, 0, ints.length/2))); 163 spliterators.add(splitDescr("SpinedBuffer.s():" + name, 164 () -> { 165 SpinedBuffer<Integer> sb = new SpinedBuffer<>(); 166 for (Integer i : ints) 167 sb.accept(i); 168 return sb.spliterator(); 169 })); 170 spliterators.add(splitDescr("Iterators.s(Arrays.s(array).iterator(), size):" + name, 171 () -> Spliterators.spliterator(Arrays.asList(ints).iterator(), ints.length, 0))); 172 spliterators.add(splitDescr("Iterators.s(Arrays.s(array).iterator()):" + name, 173 () -> Spliterators.spliteratorUnknownSize(Arrays.asList(ints).iterator(), 0))); 174 // @@@ Add map and collection spliterators when spliterator() is exposed on Collection or Iterable 175 } 176 spliteratorTestData = spliterators.toArray(new Object[0][]); 177 } 178 } 179 180 static <T> Object[] arrayDataDescr(String description, T[] data) { 181 return new Object[] { description, TestData.Factory.ofArray(description, data)}; 182 } 183 184 static <T> Object[] streamDataDescr(String description, Supplier<Stream<T>> supplier) { 185 return new Object[] { description, TestData.Factory.ofSupplier(description, supplier)}; 186 } 187 188 static <T> Object[] collectionDataDescr(String description, Collection<T> data) { 189 return new Object[] { description, TestData.Factory.ofCollection(description, data)}; 190 } 191 192 static <T> Object[] sbDataDescr(String description, SpinedBuffer<T> data) { 193 return new Object[] { description, TestData.Factory.ofSpinedBuffer(description, data)}; | 154 List<Object[]> spliterators = new ArrayList<>(); 155 for (Object[] data : arrays) { 156 final Object name = data[0]; 157 final Integer[] ints = (Integer[])data[1]; 158 159 spliterators.add(splitDescr("Arrays.s(array):" + name, 160 () -> Arrays.spliterator(ints))); 161 spliterators.add(splitDescr("arrays.s(array,o,l):" + name, 162 () -> Arrays.spliterator(ints, 0, ints.length/2))); 163 spliterators.add(splitDescr("SpinedBuffer.s():" + name, 164 () -> { 165 SpinedBuffer<Integer> sb = new SpinedBuffer<>(); 166 for (Integer i : ints) 167 sb.accept(i); 168 return sb.spliterator(); 169 })); 170 spliterators.add(splitDescr("Iterators.s(Arrays.s(array).iterator(), size):" + name, 171 () -> Spliterators.spliterator(Arrays.asList(ints).iterator(), ints.length, 0))); 172 spliterators.add(splitDescr("Iterators.s(Arrays.s(array).iterator()):" + name, 173 () -> Spliterators.spliteratorUnknownSize(Arrays.asList(ints).iterator(), 0))); 174 spliterators.add(splitDescr("Stream.iterate(0,x->x<l,x->x+1): " + name, 175 () -> Stream.iterate(0, x -> x < ints.length, x -> x + 1).spliterator())); 176 // @@@ Add map and collection spliterators when spliterator() is exposed on Collection or Iterable 177 } 178 spliteratorTestData = spliterators.toArray(new Object[0][]); 179 } 180 } 181 182 static <T> Object[] arrayDataDescr(String description, T[] data) { 183 return new Object[] { description, TestData.Factory.ofArray(description, data)}; 184 } 185 186 static <T> Object[] streamDataDescr(String description, Supplier<Stream<T>> supplier) { 187 return new Object[] { description, TestData.Factory.ofSupplier(description, supplier)}; 188 } 189 190 static <T> Object[] collectionDataDescr(String description, Collection<T> data) { 191 return new Object[] { description, TestData.Factory.ofCollection(description, data)}; 192 } 193 194 static <T> Object[] sbDataDescr(String description, SpinedBuffer<T> data) { 195 return new Object[] { description, TestData.Factory.ofSpinedBuffer(description, data)}; |