// Path: core/src/main/java/com/github/phantomthief/util/MoreStreams.java
// public class MoreStreams {
// 
//     /**
//      * 工具类，禁止实例化成对象
//      */
//     private MoreStreams() {
//         throw new UnsupportedOperationException();
//     }
// 
//     /**
//      * 创建一个类型为long的Stream，返回从开始到结束一个闭区间内的整数
//      *
//      * @param from 起始值（含）
//      * @param to 终止值（含）
//      * @return 生成的{@link LongStream}
//      */
//     public static LongStream longRangeClosed(long from, long to) {
//         if (from <= to) {
//             return LongStream.rangeClosed(from, to);
//         } else {
//             return LongStream.rangeClosed(to, from).map(i -> to - i + from);
//         }
//     }
// 
//     /**
//      * 创建一个类型为int的Stream，返回从开始到结束一个闭区间内的整数
//      *
//      * @param from 起始值（含）
//      * @param to 终止值（含）
//      * @return 生成的{@link IntStream}
//      */
//     public static IntStream intRangeClosed(int from, int to) {
//         if (from <= to) {
//             return rangeClosed(from, to);
//         } else {
//             return rangeClosed(to, from).map(i -> to - i + from);
//         }
//     }
// 
//     /**
//      * 将一个迭代器转换为一个Stream
//      *
//      * @param iterator 输入的迭代器对象，不能为空
//      * @param <T> 输入值的类型泛型
//      * @return 生成的{@link Stream}
//      */
//     public static <T> Stream<T> toStream(Iterator<T> iterator) {
//         checkNotNull(iterator);
//         return stream(spliteratorUnknownSize(iterator, (NONNULL | IMMUTABLE | ORDERED)), false);
//     }
// 
//     /**
//      * 将一个可迭代对象转换为一个Stream
//      *
//      * @param iterable 输入的可迭代对象，不能为空
//      * @param <T> 输入值的类型泛型
//      * @return 生成的{@link Stream}
//      */
//     public static <T> Stream<T> toStream(Iterable<T> iterable) {
//         checkNotNull(iterable);
//         if (iterable instanceof Collection) {
//             // failfast
//             try {
//                 Collection<T> collection = (Collection<T>) iterable;
//                 return stream(spliterator(collection, 0), false);
//             } catch (Throwable e) {
//                 // do nothing
//             }
//         }
//         return stream(spliteratorUnknownSize(iterable.iterator(), (NONNULL | IMMUTABLE | ORDERED)),
//                 false);
//     }
// 
//     /**
//      * 将一个Stream按一定的大小进行批次分组，返回一个按组的新的Stream
//      *
//      * @param stream 输入值的Stream
//      * @param size 分组的大小
//      * @param <T> 输入值的类型泛型
//      * @return 生成的{@link Stream}
//      */
//     public static <T> Stream<List<T>> partition(Stream<T> stream, int size) {
//         Iterable<List<T>> iterable = () -> Iterators.partition(stream.iterator(), size);
//         return StreamSupport.stream(iterable.spliterator(), false);
//     }
// }


import java.util.stream.Stream;
import org.junit.jupiter.api.Test;
import com.github.phantomthief.util.MoreStreams;
package com.github.phantomthief.test;




/**
 * @author w.vela
 */
class MoreStreamsTest {

    @Test
    void testRange() {
// Path: core/src/main/java/com/github/phantomthief/util/MoreStreams.java
// public class MoreStreams {
// 
//     /**
//      * 工具类，禁止实例化成对象
//      */
//     private MoreStreams() {
//         throw new UnsupportedOperationException();
//     }
// 
//     /**
//      * 创建一个类型为long的Stream，返回从开始到结束一个闭区间内的整数
//      *
//      * @param from 起始值（含）
//      * @param to 终止值（含）
//      * @return 生成的{@link LongStream}
//      */
//     public static LongStream longRangeClosed(long from, long to) {
//         if (from <= to) {
//             return LongStream.rangeClosed(from, to);
//         } else {
//             return LongStream.rangeClosed(to, from).map(i -> to - i + from);
//         }
//     }
// 
//     /**
//      * 创建一个类型为int的Stream，返回从开始到结束一个闭区间内的整数
//      *
//      * @param from 起始值（含）
//      * @param to 终止值（含）
//      * @return 生成的{@link IntStream}
//      */
//     public static IntStream intRangeClosed(int from, int to) {
//         if (from <= to) {
//             return rangeClosed(from, to);
//         } else {
//             return rangeClosed(to, from).map(i -> to - i + from);
//         }
//     }
// 
//     /**
//      * 将一个迭代器转换为一个Stream
//      *
//      * @param iterator 输入的迭代器对象，不能为空
//      * @param <T> 输入值的类型泛型
//      * @return 生成的{@link Stream}
//      */
//     public static <T> Stream<T> toStream(Iterator<T> iterator) {
//         checkNotNull(iterator);
//         return stream(spliteratorUnknownSize(iterator, (NONNULL | IMMUTABLE | ORDERED)), false);
//     }
// 
//     /**
//      * 将一个可迭代对象转换为一个Stream
//      *
//      * @param iterable 输入的可迭代对象，不能为空
//      * @param <T> 输入值的类型泛型
//      * @return 生成的{@link Stream}
//      */
//     public static <T> Stream<T> toStream(Iterable<T> iterable) {
//         checkNotNull(iterable);
//         if (iterable instanceof Collection) {
//             // failfast
//             try {
//                 Collection<T> collection = (Collection<T>) iterable;
//                 return stream(spliterator(collection, 0), false);
//             } catch (Throwable e) {
//                 // do nothing
//             }
//         }
//         return stream(spliteratorUnknownSize(iterable.iterator(), (NONNULL | IMMUTABLE | ORDERED)),
//                 false);
//     }
// 
//     /**
//      * 将一个Stream按一定的大小进行批次分组，返回一个按组的新的Stream
//      *
//      * @param stream 输入值的Stream
//      * @param size 分组的大小
//      * @param <T> 输入值的类型泛型
//      * @return 生成的{@link Stream}
//      */
//     public static <T> Stream<List<T>> partition(Stream<T> stream, int size) {
//         Iterable<List<T>> iterable = () -> Iterators.partition(stream.iterator(), size);
//         return StreamSupport.stream(iterable.spliterator(), false);
//     }
// }


// Path: core/src/test/java/com/github/phantomthief/test/MoreStreamsTest.java
import java.util.stream.Stream;
import org.junit.jupiter.api.Test;
import com.github.phantomthief.util.MoreStreams;

package com.github.phantomthief.test;




/**
 * @author w.vela
 */
class MoreStreamsTest {

    @Test
    void testRange() {
        MoreStreams.longRangeClosed(10, 15).forEach(System.out::println);