orx-parallel 4.0.0

Performant parallel computations with an expressive iterator API.
Documentation
use crate::pools::pool_impl::init_wasm_thread_pool;
use crate::{IntoParIter, Par};
use std::vec::Vec;
use wasm_bindgen_futures::JsFuture;
use wasm_bindgen_test::*;

wasm_bindgen_test_configure!(run_in_browser);

#[wasm_bindgen_test]
#[should_panic(expected = "not initialized")]
fn wasm_web_pool_panics_without_init() {
    let _: Vec<usize> = (0..32).into_par().collect();
}

#[wasm_bindgen_test(async)]
async fn wasm_web_pool_runs_after_init() {
    JsFuture::from(init_wasm_thread_pool(2))
        .await
        .expect("init_wasm_thread_pool should resolve");

    let values: Vec<usize> = (0..100).into_par().collect();
    let sum: usize = values.into_iter().sum();

    assert_eq!(sum, (0..100usize).sum::<usize>());
}