FromSlice in unbalanced tests
All checks were successful
buildbot/cargo fmt (1.72) Build done.
buildbot/cargo clippy (1.72) Build done.
buildbot/cargo test (1.65) Build done.
buildbot/cargo doc (1.72) Build done.
buildbot/cargo clippy (1.65) Build done.

This commit is contained in:
AF 2023-08-31 21:25:49 +00:00
parent d61d70b996
commit 0e07e43f85

View File

@ -144,16 +144,30 @@ impl<'a, T: Monad<'a>, A: 'a + Send + Sync> UnbalancedConstructor<'a, T, A> {
let ctr = self.clone();
UnbalancedTree::Node(Arc::new(UnbalancedReference((ctr.wrap)(node)))).into()
}
}
#[cfg(test)]
pub fn from_slice<R: 'a + rand::Rng>(
self: &Arc<Self>,
rng: &mut R,
slice: &[A],
) -> Arc<UnbalancedTree<'a, T, A>>
where
A: 'a + Clone,
mod tests {
use rand::{Rng, SeedableRng};
use crate::{flow::comparator::*, rstd::tracing::*};
use super::{algorithms::contains::*, algorithms::subset::*, *};
trait FromSlice<R> {
type Tree;
type A;
fn from_slice(self: &Arc<Self>, rng: &mut R, slice: &[Self::A]) -> Arc<Self::Tree>;
}
impl<'a, T: Monad<'a>, A: 'a + Send + Sync + Clone, R: 'a + rand::Rng> FromSlice<R>
for UnbalancedConstructor<'a, T, A>
{
type A = A;
type Tree = UnbalancedTree<'a, T, A>;
fn from_slice(self: &Arc<Self>, rng: &mut R, slice: &[Self::A]) -> Arc<Self::Tree> {
if slice.is_empty() {
self.leaf()
} else {
@ -170,14 +184,6 @@ impl<'a, T: Monad<'a>, A: 'a + Send + Sync> UnbalancedConstructor<'a, T, A> {
}
}
#[cfg(test)]
mod tests {
use rand::{Rng, SeedableRng};
use crate::{flow::comparator::*, rstd::tracing::*};
use super::{algorithms::contains::*, algorithms::subset::*, *};
#[test]
fn test_simple_slices() {
let ctr: Arc<UnbalancedConstructor<instances::result::ResultInstance<()>, _>> =
@ -265,7 +271,6 @@ mod tests {
UnbalancedConstructor::rc(Box::new(|node| {
Box::new(move || TracedMonad::pure(node.clone()).after_resolution())
}));
// let mut rng = rand::thread_rng();
let mut rng = rand::rngs::StdRng::seed_from_u64(426);
let big: Vec<i32> = (0..(rng.gen_range(1000..2000))).collect();
let key = big[rng.gen_range(0..big.len())];
@ -284,6 +289,5 @@ mod tests {
None,
);
assert!(traced.value.is_ok());
// panic!("{:?}", traced.render().to_vec());
}
}