diff --git a/src/egui_app.rs b/src/egui_app.rs index 42ccb88..e3d37fc 100644 --- a/src/egui_app.rs +++ b/src/egui_app.rs @@ -183,19 +183,42 @@ lazy_static::lazy_static! { }; } - // Tests to make sure archived (and compressed) assets match expected data #[test] fn test_file_data() { - assert_eq!(FILE_DATA.font_ubuntu_light, FontData::from_owned(include_bytes!("../assets/Ubuntu-Light.ttf").to_vec())); - assert_eq!(FILE_DATA.font_notoemoji, FontData::from_owned(include_bytes!("../assets/NotoEmoji-Regular.ttf").to_vec())); - assert_eq!(FILE_DATA.font_hack, FontData::from_owned(include_bytes!("../assets/Hack-Regular.ttf").to_vec())); - - assert_eq!(FILE_DATA.text_help_expr, include_str!("../assets/text_help_expr.txt")); - assert_eq!(FILE_DATA.text_help_vars, include_str!("../assets/text_help_vars.txt")); - assert_eq!(FILE_DATA.text_help_panel, include_str!("../assets/text_help_panel.txt")); - assert_eq!(FILE_DATA.text_help_function, include_str!("../assets/text_help_function.txt")); - assert_eq!(FILE_DATA.text_help_other, include_str!("../assets/text_help_other.txt")); + assert_eq!( + FILE_DATA.font_ubuntu_light, + FontData::from_owned(include_bytes!("../assets/Ubuntu-Light.ttf").to_vec()) + ); + assert_eq!( + FILE_DATA.font_notoemoji, + FontData::from_owned(include_bytes!("../assets/NotoEmoji-Regular.ttf").to_vec()) + ); + assert_eq!( + FILE_DATA.font_hack, + FontData::from_owned(include_bytes!("../assets/Hack-Regular.ttf").to_vec()) + ); + + assert_eq!( + FILE_DATA.text_help_expr, + include_str!("../assets/text_help_expr.txt") + ); + assert_eq!( + FILE_DATA.text_help_vars, + include_str!("../assets/text_help_vars.txt") + ); + assert_eq!( + FILE_DATA.text_help_panel, + include_str!("../assets/text_help_panel.txt") + ); + assert_eq!( + FILE_DATA.text_help_function, + include_str!("../assets/text_help_function.txt") + ); + assert_eq!( + FILE_DATA.text_help_other, + include_str!("../assets/text_help_other.txt") + ); } cfg_if::cfg_if! { diff --git a/src/function.rs b/src/function.rs index d9dc360..5dd346a 100644 --- a/src/function.rs +++ b/src/function.rs @@ -308,32 +308,11 @@ impl FunctionEntry { pub fn get_derivative_str(&self) -> String { self.function.get_derivative_str() } } -#[test] -fn left_function_test() { - let integral_num = 10; - let pixel_width = 10; - - let mut function = FunctionEntry::empty() - .update_riemann(RiemannSum::Left) - .pixel_width(pixel_width) - .integral_num(integral_num) - .integral_bounds(-1.0, 1.0); - - let back_values_target = vec![ - (-1.0, 1.0), - (-0.8, 0.6400000000000001), - (-0.6, 0.36), - (-0.4, 0.16000000000000003), - (-0.19999999999999996, 0.03999999999999998), - (0.0, 0.0), - (0.19999999999999996, 0.03999999999999998), - (0.3999999999999999, 0.15999999999999992), - (0.6000000000000001, 0.3600000000000001), - (0.8, 0.6400000000000001), - ]; - - let area_target = 0.9600000000000001; - +#[cfg(test)] +fn verify_function( + integral_num: usize, pixel_width: usize, function: &mut FunctionEntry, + back_values_target: Vec<(f64, f64)>, area_target: f64, +) { { let (back_values, bars, derivative) = function.run_back(); assert!(derivative.is_none()); @@ -345,7 +324,7 @@ fn left_function_test() { } { - function = function.integral(true); + *function = function.clone().integral(true); let (back_values, bars, derivative) = function.run_back(); assert!(derivative.is_none()); assert!(bars.is_some()); @@ -375,6 +354,41 @@ fn left_function_test() { } } +#[test] +fn left_function_test() { + let integral_num = 10; + let pixel_width = 10; + + let mut function = FunctionEntry::empty() + .update_riemann(RiemannSum::Left) + .pixel_width(pixel_width) + .integral_num(integral_num) + .integral_bounds(-1.0, 1.0); + + let back_values_target = vec![ + (-1.0, 1.0), + (-0.8, 0.6400000000000001), + (-0.6, 0.36), + (-0.4, 0.16000000000000003), + (-0.19999999999999996, 0.03999999999999998), + (0.0, 0.0), + (0.19999999999999996, 0.03999999999999998), + (0.3999999999999999, 0.15999999999999992), + (0.6000000000000001, 0.3600000000000001), + (0.8, 0.6400000000000001), + ]; + + let area_target = 0.9600000000000001; + + verify_function( + integral_num, + pixel_width, + &mut function, + back_values_target, + area_target, + ); +} + #[test] fn middle_function_test() { let integral_num = 10; @@ -401,45 +415,13 @@ fn middle_function_test() { let area_target = 0.92; - { - let (back_values, bars, derivative) = function.run_back(); - assert!(derivative.is_none()); - assert!(bars.is_none()); - assert_eq!(back_values.len(), pixel_width); - let back_values_tuple: Vec<(f64, f64)> = - back_values.iter().map(|ele| (ele.x, ele.y)).collect(); - assert_eq!(back_values_tuple, back_values_target); - } - - { - function = function.integral(true); - let (back_values, bars, derivative) = function.run_back(); - assert!(derivative.is_none()); - assert!(bars.is_some()); - assert_eq!(back_values.len(), pixel_width); - - assert_eq!(bars.clone().unwrap().1, area_target); - - let vec_bars = bars.unwrap().0; - assert_eq!(vec_bars.len(), integral_num); - - let back_values_tuple: Vec<(f64, f64)> = - back_values.iter().map(|ele| (ele.x, ele.y)).collect(); - assert_eq!(back_values_tuple, back_values_target); - } - - { - function.derivative = true; - let (back_values, bars, derivative) = function.run_back(); - assert!(derivative.is_some()); - - assert!(bars.is_some()); - assert_eq!(back_values.len(), pixel_width); - assert_eq!(bars.clone().unwrap().1, area_target); - let bars_unwrapped = bars.unwrap(); - - assert_eq!(bars_unwrapped.0.iter().len(), integral_num); - } + verify_function( + integral_num, + pixel_width, + &mut function, + back_values_target, + area_target, + ); } #[test] @@ -468,43 +450,11 @@ fn right_function_test() { let area_target = 0.8800000000000001; - { - let (back_values, bars, derivative) = function.run_back(); - assert!(derivative.is_none()); - assert!(bars.is_none()); - assert_eq!(back_values.len(), pixel_width); - let back_values_tuple: Vec<(f64, f64)> = - back_values.iter().map(|ele| (ele.x, ele.y)).collect(); - assert_eq!(back_values_tuple, back_values_target); - } - - { - function = function.integral(true); - let (back_values, bars, derivative) = function.run_back(); - assert!(derivative.is_none()); - assert!(bars.is_some()); - assert_eq!(back_values.len(), pixel_width); - - assert_eq!(bars.clone().unwrap().1, area_target); - - let vec_bars = bars.unwrap().0; - assert_eq!(vec_bars.len(), integral_num); - - let back_values_tuple: Vec<(f64, f64)> = - back_values.iter().map(|ele| (ele.x, ele.y)).collect(); - assert_eq!(back_values_tuple, back_values_target); - } - - { - function.derivative = true; - let (back_values, bars, derivative) = function.run_back(); - assert!(derivative.is_some()); - - assert!(bars.is_some()); - assert_eq!(back_values.len(), pixel_width); - assert_eq!(bars.clone().unwrap().1, area_target); - let bars_unwrapped = bars.unwrap(); - - assert_eq!(bars_unwrapped.0.iter().len(), integral_num); - } + verify_function( + integral_num, + pixel_width, + &mut function, + back_values_target, + area_target, + ); }