//! if-else tests for the zink compiler. use anyhow::Result; use filetests::Test; use zint::{Bytes32, Contract}; #[test] fn if_then() -> Result<()> { let mut contract = Contract::from(Test::IF_BASIC).pure().compile()?; // Skip the condition. let input = [0; 32]; let info = contract.execute(&[input])?; assert_eq!(info.ret, input); // Enter the if branch. let input = 1.to_bytes32(); let info = contract.execute(&[input])?; assert_eq!(info.ret, input); Ok(()) } #[test] fn singular() -> Result<()> { let mut contract = Contract::from(Test::IF_SINGULAR).pure().compile()?; // test if // // Enter if block if 1 let info = contract.execute(&[1])?; assert_eq!(info.ret, 7.to_bytes32()); // test else let info = contract.execute(&[0])?; assert_eq!(info.ret, 8.to_bytes32()); Ok(()) }