From bcc303880f7078d612207571e196697a0d0b35bf Mon Sep 17 00:00:00 2001 From: garhve Date: Mon, 9 Jan 2023 18:34:39 +0800 Subject: finish chapter 11 --- .../adder/src/lib.rs | 51 ++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 rust/theBook/chapter-11-writing-automated-tests/adder/src/lib.rs (limited to 'rust/theBook/chapter-11-writing-automated-tests/adder/src') diff --git a/rust/theBook/chapter-11-writing-automated-tests/adder/src/lib.rs b/rust/theBook/chapter-11-writing-automated-tests/adder/src/lib.rs new file mode 100644 index 0000000..55c024c --- /dev/null +++ b/rust/theBook/chapter-11-writing-automated-tests/adder/src/lib.rs @@ -0,0 +1,51 @@ +#[derive(Debug)] +struct Rectangle { + width: u32, + height: u32, +} + +impl Rectangle { + fn can_hold(&self, other: &Rectangle) -> bool { + self.width >= other.width && self.height >= other.height + } +} + +pub fn greeting(name: &str) -> String { + format!("hello {}!", name) +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn exception() { + let result = 2+2; + assert_eq!(result, 4); + } + #[test] + fn another() { + println!("this one will fail"); + } + + #[test] + fn hold() { + let larger = Rectangle { + width: 7, + height: 8, + }; + + let smaller = Rectangle { + width: 5, + height: 4, + }; + + assert!(larger.can_hold(&smaller)); + } + + #[test] + fn greeting_contain_names() { + let result = greeting("caol"); + assert!(result.contains("carol"), "gretting did not contain name, the value is {}", result); + } +} -- cgit v1.2.3-70-g09d2