From 833c0a56ebd698b05dea39e6b7ea765df1e959be Mon Sep 17 00:00:00 2001 From: Bill Thiede Date: Thu, 3 Oct 2019 18:51:27 -0700 Subject: [PATCH] Initial quiz from ggriffiniii --- src/main.rs | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 src/main.rs diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..e30dd50 --- /dev/null +++ b/src/main.rs @@ -0,0 +1,39 @@ +pub struct LinearScale {} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn linear_scale_test() { + let scale = LinearScale::new(0..=3, 100..=200); + assert_eq!(100, scale.output_for(0)); + assert_eq!(133, scale.output_for(1)); + assert_eq!(166, scale.output_for(2)); + assert_eq!(200, scale.output_for(3)); + + let scale = LinearScale::new(0..=100, 100..=100); + assert_eq!(100, scale.output_for(0)); + assert_eq!(100, scale.output_for(100)); + + let scale = LinearScale::new(0.0..=1.0, 100..=200); + assert_eq!(100, scale.output_for(0.0)); + assert_eq!(150, scale.output_for(0.5)); + assert_eq!(200, scale.output_for(1.0)); + + let scale = LinearScale::new(0..=100, 0.0..=1.0); + assert_eq!(0.0, scale.output_for(0)); + assert_eq!(0.5, scale.output_for(50)); + assert_eq!(1.0, scale.output_for(100)); + + let scale = LinearScale::new(100..=200, 0.0..=1.0); + assert_eq!(0.0, scale.output_for(100)); + assert_eq!(0.5, scale.output_for(150)); + assert_eq!(1.0, scale.output_for(200)); + + let scale = LinearScale::new(100..=150, 0.0..=0.5); + assert_eq!(0.0, scale.output_for(100)); + assert_eq!(0.1, scale.output_for(110)); + assert_eq!(0.5, scale.output_for(150)); + } +}