diff --git a/src/about_variables.rs b/src/about_variables.rs index 4827dcff..9e649048 100644 --- a/src/about_variables.rs +++ b/src/about_variables.rs @@ -1,5 +1,5 @@ #[allow(dead_code)] -pub fn guess_this () -> i32 { +fn guess_this () -> i32 { let one = 5; let two = 7; let three = 3; @@ -11,7 +11,7 @@ mod tests { use super::*; pub fn test_complicated () { - assert_eq!(1, guess_this()); + verify!(1, guess_this(), "Complicated example"); } } diff --git a/src/macros.rs b/src/macros.rs new file mode 100644 index 00000000..5c80b847 --- /dev/null +++ b/src/macros.rs @@ -0,0 +1,31 @@ +#[macro_export] +macro_rules! verify { + ($left:expr, $right:expr, $str:expr) => { + use ansi_term::Color::{Green, Red}; + + if $left == $right { + println!("{} {}", Green.bold().paint("PASS"), $str); + } else { + println!("{} {}", Red.bold().paint("FAIL"), $str); + println!("\tYou submitted {}, but that's not correct!", $left); + println!("\tPlease correct your code to make this test pass!"); + } + }; +} + +#[macro_export] +macro_rules! verify_easy { + ($str:expr, $left:expr, $right:expr) => { + use ansi_term::Color::{Green, Red}; + + if $left == $right { + println!("{} {}", Green.bold().paint("PASS"), $str); + } else { + println!("{} {}", Red.bold().paint("FAIL"), $str); + println!("\tExpected: {}", $right); + println!("\tGot: {}", $left); + println!("\tPlease correct your code to make this test pass!"); + } + }; +} + diff --git a/src/main.rs b/src/main.rs index 3adc6bd2..525baa42 100644 --- a/src/main.rs +++ b/src/main.rs @@ -2,34 +2,10 @@ extern crate quicli; extern crate ansi_term; -use ansi_term::Colour::{Green, Red, Yellow}; use quicli::prelude::*; +use ansi_term::Color::Yellow; -macro_rules! verify { - ($left:expr, $right:expr, $str:expr) => { - if ($left == $right) { - println!("{} {}", Green.bold().paint("PASS"), $str); - } else { - println!("{} {}", Red.bold().paint("FAIL"), $str); - println!("\tYou submitted {}, but that's not correct!", $left); - println!("\tPlease correct your code to make this test pass!"); - } - }; -} - -macro_rules! verify_easy { - ($str:expr, $left:expr, $right:expr) => { - if ($left == $right) { - println!("{} {}", Green.bold().paint("PASS"), $str); - } else { - println!("{} {}", Red.bold().paint("FAIL"), $str); - println!("\tExpected: {}", $right); - println!("\tGot: {}", $left); - println!("\tPlease correct your code to make this test pass!"); - } - }; -} - +#[macro_use] mod macros; mod about_variables; #[derive(Debug, StructOpt)] @@ -41,5 +17,5 @@ main!(|args: Cli| if let Some(e) = args.exercise { println!("selected {}", e); } else { println!("Welcome to {}", Yellow.paint("rustlings")); - verify!(2, 1, "One equals one"); + about_variables::exec(); });