diff options
author | Adam Carpenter <53hornet@gmail.com> | 2019-02-19 16:23:08 -0500 |
---|---|---|
committer | Adam Carpenter <53hornet@gmail.com> | 2019-02-19 16:23:08 -0500 |
commit | a48940b60367f94c50b6782d8883110b76a356e8 (patch) | |
tree | b2a9c511ffdd087fbe42a62e0b2c62fcb042bbe0 /adder/src | |
parent | 0d653b5cfa9f0a0df9d2383c8e8fe443b6cb902d (diff) | |
download | learning-rust-a48940b60367f94c50b6782d8883110b76a356e8.tar.xz learning-rust-a48940b60367f94c50b6782d8883110b76a356e8.zip |
Added adder and testing
Diffstat (limited to 'adder/src')
-rw-r--r-- | adder/src/lib.rs | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/adder/src/lib.rs b/adder/src/lib.rs new file mode 100644 index 0000000..bc79931 --- /dev/null +++ b/adder/src/lib.rs @@ -0,0 +1,92 @@ +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn it_works() -> Result<(), String> { + if 2 + 2 == 4 { + Ok(()) + } + else { + Err(String::from("two plus two does not equal four")) + } + } + + #[test] + fn larger_can_hold_smaller() { + let larger = Rectangle { length: 8, width: 7 }; + let smaller = Rectangle { length: 5, width: 1 }; + + assert!(larger.can_hold(&smaller)); + } + + #[test] + fn smaller_cannot_hold_larger() { + let larger = Rectangle { length: 8, width: 7 }; + let smaller = Rectangle { length: 5, width: 1 }; + + assert!(!smaller.can_hold(&larger)); + } + + #[test] + fn it_adds_two() { + assert_eq!(4, add_two(2)); + } + + #[test] + fn it_wont_add_two() { + assert_ne!(4, add_two(3)); + } + + #[test] + fn greeting_contains_name() { + let result = greeting("adam"); + assert!(result.contains("adam")); + } + + #[test] + #[should_panic(expected = "must be between 1 and 100")] + fn greater_than_100() { + Guess::new(200); + } +} + +#[derive(Debug)] +pub struct Rectangle { + length: u32, + width: u32, +} + +pub struct Guess { + value: i32, +} + +impl Guess { + pub fn new(value: i32) -> Guess { + if value < 1 || value > 100 { + panic!("must be between 1 and 100, not {}", value); + } + //if value < 1 { + // panic!("must be greater than 1, not {}", value); + //} + //else if value > 100 { + // panic!("must be less than 100, not {}", value); + //} + + Guess { value } + } +} + +impl Rectangle { + pub fn can_hold(&self, other: &Rectangle) -> bool { + self.length > other.length && self.width > other.width + } +} + +pub fn add_two(a: i32) -> i32 { + a + 2 +} + +pub fn greeting(name: &str) -> String { + format!("hello {}", name) +} |