commit 833c0a56ebd698b05dea39e6b7ea765df1e959be Author: Bill Thiede Date: Thu Oct 3 18:51:27 2019 -0700 Initial quiz from ggriffiniii 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)); + } +}