#[cfg(test)]
fn outer_test_helper() {
panic!()
}
fn returns_unit(a: &mut u32) {
*a += 1;
}
fn returns_42u32() -> u32 {
42
}
fn divisible_by_three(a: u32) -> bool {
a % 3 == 0
}
pub fn double_string(s: &str) -> String {
let mut r = s.to_owned();
r.push_str(s);
r
}
#[cfg(test)]
mod tests {
use super::*;
fn test_helper() -> usize {
42
}
#[test]
fn use_test_helper() {
let result = 2 + test_helper();
assert_eq!(result, 44);
}
#[test]
fn main_tests() {
assert_eq!(returns_42u32(), 42);
assert!(divisible_by_three(0));
assert!(divisible_by_three(9));
assert!(!divisible_by_three(20));
let mut a = 0;
returns_unit(&mut a);
assert_eq!(a, 1);
}
}