use piecrust::{ContractData, Error, SessionData, VM, contract_bytecode};
const OWNER: [u8; 32] = [0u8; 32];
const LIMIT: u64 = 1_000_000;
#[test]
pub fn fibo() -> Result<(), Error> {
let vm = VM::ephemeral()?;
let mut session = vm.session(SessionData::builder())?;
let id = session.deploy(
contract_bytecode!("fibonacci"),
ContractData::builder().owner(OWNER),
LIMIT,
)?;
assert_eq!(session.call::<u32, u64>(id, "nth", &0, LIMIT)?.data, 1);
assert_eq!(session.call::<u32, u64>(id, "nth", &1, LIMIT)?.data, 1);
assert_eq!(session.call::<u32, u64>(id, "nth", &2, LIMIT)?.data, 2);
assert_eq!(session.call::<u32, u64>(id, "nth", &3, LIMIT)?.data, 3);
assert_eq!(session.call::<u32, u64>(id, "nth", &4, LIMIT)?.data, 5);
Ok(())
}