Rustlings Topic: Quiz
Finally the last topic of the Rustlings!
I honestly didn’t think writing solutions would take this long. But finally, I’ve made it!
Kudos to me!
You may find solution code for the topic from my repo.
quiz1.rs
/* file: "exercises/quiz1.rs" */
fn calculate_apple_price(total_apple: i32) -> i32 {
if total_apple > 40 {
total_apple
} else {
total_apple * 2
}
}
// Don't modify this function!
#[test]
fn verify_test() {
let price1 = calculate_apple_price(35);
let price2 = calculate_apple_price(40);
let price3 = calculate_apple_price(65);
assert_eq!(70, price1);
assert_eq!(80, price2);
assert_eq!(65, price3);
}
quiz2.rs
/* file: "exercises/quiz2.rs" */
fn string_slice(arg: &str) {
println!("{}", arg);
}
fn string(arg: String) {
println!("{}", arg);
}
fn main() {
string_slice("blue");
string("red".to_string());
string(String::from("hi"));
string("rust is fun!".to_owned());
string("nice weather".into());
string(format!("Interpolation {}", "Station"));
string_slice(&String::from("abc")[0..1]);
string_slice(" hello there ".trim());
string("Happy Monday!".to_string().replace("Mon", "Tues"));
string("mY sHiFt KeY iS sTiCkY".to_lowercase());
}
quiz3.rs
/* file: "exercises/quiz3.rs" */
pub fn times_two(num: i32) -> i32 {
num * 2
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn returns_twice_of_positive_numbers() {
assert_eq!(times_two(4), 8);
}
#[test]
fn returns_twice_of_negative_numbers() {
assert_eq!(times_two(-4), -8)
}
}
quiz4.rs
/* file: "exercises/quiz4.rs" */
macro_rules! my_macro {
($val:expr) => {
format!("Hello {}", $val);
};
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_my_macro_world() {
assert_eq!(my_macro!("world!"), "Hello world!");
}
#[test]
fn test_my_macro_goodbye() {
assert_eq!(my_macro!("goodbye!"), "Hello goodbye!");
}
}
Continue with Rustlings Solution