pub fn assert_execution<D: Domain, T>(expr: &str, args: &[Val<D>], expected: T)
where T: From<Val<D>>+ Debug + PartialEq
{
    let e: Executable<D> = expr.parse().unwrap();
    let mut args: Vec<LazyVal<D>> = args.iter().map(|arg|LazyVal::new_strict(arg.clone())).collect();
    let res = e.eval(&mut args).unwrap();
    assert_eq_val(&res,expected);
}
/// convenience function for asserting that something executes to what you'd expect
convenience function for asserting that something executes to what you'd expect
convenience function for asserting that something executes to what you ' d expect
pub fn assert_execution<D: Domain, T>(expr: &str, args: &[Val<D>], expected: T)
where T: From<Val<D>>+ Debug + PartialEq
{
    let e: Executable<D> = expr.parse().unwrap();
    let mut args: Vec<LazyVal<D>> = args.iter().map(|arg|LazyVal::new_strict(arg.clone())).collect();
    let res = e.eval(&mut args).unwrap();
    assert_eq_val(&res,expected);
}
pub fn assert_execution < D : Domain , T > ( expr : & str , args : & [ Val < D > ] , expected : T ) where T : From < Val < D > > + Debug + PartialEq { let e : Executable < D > = expr . parse ( ) . unwrap ( ) ; let mut args : Vec < LazyVal < D > > = args . iter ( ) . map ( | arg | LazyVal :: new_strict ( arg . clone ( ) ) ) . collect ( ) ; let res = e . eval ( & mut args ) . unwrap ( ) ; assert_eq_val ( & res , expected ) ; }
convenience function for asserting that something executes to what you'd expect
convenience function for asserting that something executes to what you ' d expect
expr
&str
args
&[Val<D>]
expected
T
expr
&str
args
&[Val<D>]
expected
T