#![feature(plugin)] #[macro_use] #[no_link] #[plugin] extern crate bassert; #[test] fn assert_with_message() { bassert!(0i == 0, "hello world"); bassert!(0i == 0, "hello {}", "world"); let bar = "world"; bassert!(0i == 0, "{} {}", "hello", bar); } #[test] fn test_complex_expression() { bassert!(1i + 1i == 2i); bassert!(1i + 1i != 1i); bassert!(1i + 1i > 1i); bassert!(1i + 1i >= 2i); bassert!(1i + 1i < 3i); bassert!(1i + 1i <= 3i); bassert!(true && true); if cfg!(fail) { bassert!(1i + 1i > 3i); } } #[test] fn test_methods() { fn no_args() -> bool { true } fn one_arg(i: u8) -> bool { i == 3 } fn two_args(i: u8, _: &'static str) -> bool { i == 3} fn six_args(i: u8, _: &'static str, _: i8, _: u32, _: i32, _: i8) -> bool { i == 3} bassert!(no_args()); bassert!(one_arg(3u8)); bassert!(two_args(3, "hello")); let x = "hi"; let y = 3; bassert!(two_args(y, x)); bassert!(six_args(y, x, 9, 32, 44, 12), "WHY => {}", y); bassert!(!six_args(3 + y, x, 9, 32, 44, 12), "{} {}", "hello", "world"); if cfg!(fail) { let double = |&: x:i32| -> i32 {x * 2}; bassert!(six_args(y + 4, x, 3+2 * 2, 9|12, double(4), 12), "WHY => {}", y); } }