|
62 | 62 | let(a)=eval_s("1 2 3 4 [ i. 4 1")?;eq!(a.as_slice()?,&[1,2,3,4]);ok!()}
|
63 | 63 | } #[cfg(test)]mod symbol_assignment{use super::*;
|
64 | 64 | #[test]fn assign_and_get_i()->R<()>{let(mut st)=ST::default();let(a)=eval("a =: 3",&mut st)?;
|
65 |
| - assert_eq!(st.get_s("a").unwrap().as_i().unwrap(),3);ok!()} |
| 65 | + eq!(st.get_s("a").unwrap().as_i().unwrap(),3);ok!()} |
66 | 66 | #[test]fn assign_and_get_slice()->R<()>{let(mut st)=ST::default();let(a)=eval("a =: 3 2 1",&mut st)?;
|
67 |
| - assert_eq!(st.get_s("a").unwrap().as_slice().unwrap(),&[3,2,1]);ok!()} |
| 67 | + eq!(st.get_s("a").unwrap().as_slice().unwrap(),&[3,2,1]);ok!()} |
68 | 68 | #[test]fn assign_and_get_expr()->R<()>{let(mut st)=ST::default();let(a)=eval("a =: 1 3 + 2 4",&mut st)?;
|
69 |
| - assert_eq!(st.get_s("a").unwrap().as_slice().unwrap(),&[3,7]);ok!()} |
70 |
| - // TODO: tests exercising use of variables |
| 69 | + eq!(st.get_s("a").unwrap().as_slice().unwrap(),&[3,7]);ok!()} |
| 70 | + #[test]fn assign_and_eval_slice()->R<()>{let(mut st)=ST::default();let(eval_)=|s|eval(s,&mut st); |
| 71 | + let(mut i)=["a =: 3 2 1","a"].into_iter().map(eval_); is!(i.next().unwrap()?.is_none()); |
| 72 | + eq!(i.next().unwrap()?.unwrap().as_slice()?,&[3,2,1]); ok!()} |
| 73 | + #[test]fn assign_and_eval_expr()->R<()>{let(mut st)=ST::default();let(eval_)=|s|eval(s,&mut st); |
| 74 | + let(mut i)=["a =: >: i. 5","i =: 3","i ] \\ a"].into_iter().map(eval_); |
| 75 | + is!(i.next().unwrap()?.is_none()); is!(i.next().unwrap()?.is_none()); |
| 76 | + eq!(i.next().unwrap()?.unwrap().into_matrix()?,&[&[1,2,3],&[2,3,4],&[3,4,5]]); ok!()} |
71 | 77 | } #[cfg(test)]mod misc{use super::*;
|
72 | 78 | #[test]fn empty_statement_evaluates_to_none()->R<()>{is!(eval("",&mut ST::default())?.is_none());ok!()}
|
73 | 79 | #[test]fn slice_times_transposed_idot_2_3()->R<()>{
|
|
0 commit comments