use floop::floop;
use futures::future::ready;
use smol::block_on;
#[test]
fn unbiased() {
let mut counter: u16 = 0;
let mut stop = false;
let mut observed_counters = Vec::new();
let future = floop!{
unbiased
() in ready(()) => {
if stop {
break;
}
counter = counter.strict_add(1);
}
() in ready(()) => {
observed_counters.push(counter);
if counter == 10 {
stop = true;
break;
}
}
};
block_on(future);
assert_eq!(observed_counters, (1..=10).collect::<Vec<_>>())
}