import at_record_server/parallel import gleam/erlang/process pub fn maps_and_preserves_order_test() { assert parallel.map([1, 2, 3], 1000, fn(x) { x * 2 }) == [Ok(2), Ok(4), Ok(6)] } pub fn empty_list_test() { assert parallel.map([], 1000, fn(x) { x }) == [] } pub fn slow_worker_times_out_test() { let out = parallel.map([10, 500], 100, fn(ms) { process.sleep(ms) ms }) assert out == [Ok(10), Error(Nil)] } pub fn runs_concurrently_test() { let out = parallel.map([1, 2, 3], 200, fn(n) { process.sleep(80) n }) assert out == [Ok(1), Ok(2), Ok(3)] } pub fn crashed_worker_yields_error_test() { let out = parallel.map([1, 2, 3], 2000, fn(n) { case n { 2 -> panic as "boom" _ -> n } }) assert out == [Ok(1), Error(Nil), Ok(3)] }