Advertisement
Guest User

Untitled

a guest
Jul 17th, 2019
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.85 KB | None | 0 0
  1. use std::borrow::Cow;
  2.  
  3. pub fn fizzbuzz(n: u32) {
  4. for i in 1..n+1 {
  5. println!("{}", fizzbuzz_string(i));
  6. }
  7. }
  8.  
  9. fn fizzbuzz_string(i: u32) -> Cow<'static, str> {
  10. let by3 = i % 3 == 0;
  11. let by5 = i % 5 == 0;
  12. if by3 && by5 { "FizzBuzz".into() }
  13. else if by3 { "Fizz".into() }
  14. else if by5 { "Buzz".into() }
  15. else { format!("{}", i).into() }
  16. }
  17.  
  18.  
  19. #[cfg(test)]
  20. mod tests {
  21. use super::fizzbuzz_string;
  22.  
  23. #[test]
  24. fn single_numbers() {
  25. assert_eq!("1", fizzbuzz_string(1));
  26. assert_eq!("2", fizzbuzz_string(2));
  27. assert_eq!("Fizz", fizzbuzz_string(3));
  28. assert_eq!("Buzz", fizzbuzz_string(5));
  29. assert_eq!("7", fizzbuzz_string(7));
  30. assert_eq!("Fizz", fizzbuzz_string(9));
  31. assert_eq!("Buzz", fizzbuzz_string(10));
  32. assert_eq!("FizzBuzz", fizzbuzz_string(15));
  33. }
  34. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement