100-exercises-to-learn-rust/exercises/06_ticket_management/11_mutable_slices/src/lib.rs

37 lines
852 B
Rust
Raw Normal View History

2024-05-13 04:21:03 +08:00
// TODO: Define a function named `lowercase` that converts all characters in a string to lowercase,
// modifying the input in place.
// Does it need to take a `&mut String`? Does a `&mut [str]` work? Why or why not?
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn empty() {
let mut s = String::from("");
lowercase(&mut s);
assert_eq!(s, "");
}
#[test]
fn one_char() {
let mut s = String::from("A");
lowercase(&mut s);
assert_eq!(s, "a");
}
#[test]
fn multiple_chars() {
let mut s = String::from("Hello, World!");
lowercase(&mut s);
assert_eq!(s, "hello, world!");
}
#[test]
fn mut_slice() {
let mut s = "Hello, World!".to_string();
lowercase(s.as_mut_str());
assert_eq!(s, "hello, world!");
}
}