#[macro_use]
extern crate rustupolis;
use futures::executor;
use rustupolis::space::Space;
use rustupolis::store::SimpleStore;
use rustupolis::tuple::E;
#[test]
fn test_in() {
pretty_env_logger::init();
let mut sp = Space::new(SimpleStore::new());
let tuple1 = tuple![E::str("foo"), E::I(42)];
let out_future1 = sp.tuple_out(tuple1);
let out_result1 = executor::block_on(out_future1);
if let Err(e) = out_result1 {
assert!(false, "{:?}", e)
}
let tuple2 = tuple![E::I(41)];
let out_future2 = sp.tuple_out(tuple2);
let out_result2 = executor::block_on(out_future2);
if let Err(e) = out_result2 {
assert!(false, "{:?}", e)
}
let retrieval_future = sp.tuple_in(tuple![E::str("foo"), E::Any]);
let retrieval_result = executor::block_on(retrieval_future);
match retrieval_result {
Some(ref t) => assert_eq!(t, &tuple![E::str("foo"), E::I(42)]),
a => assert!(false, "{:?}", a),
};
}