update tests

This commit is contained in:
Simon Gardling 2022-03-24 18:27:56 -04:00
parent d97c149e1f
commit 08fd104e45
2 changed files with 42 additions and 11 deletions

View File

@ -358,7 +358,7 @@ impl FunctionEntry {
#[cfg(test)]
fn assert(
&self, settings: AppSettings, back_target: Vec<(f64, f64)>, integral_enabled: bool,
derivative_enabled: bool, roots_enabled: bool, extrema_enabled: bool,
derivative_enabled: bool,
) {
assert!(self.output.back.is_some());
let back_data = self.output.back.as_ref().unwrap().clone();
@ -369,8 +369,10 @@ impl FunctionEntry {
assert_eq!(integral_enabled, self.integral);
assert_eq!(derivative_enabled, self.derivative);
assert_eq!(self.output.roots.is_some(), roots_enabled);
assert_eq!(self.output.extrema.is_some(), extrema_enabled);
assert_eq!(self.output.roots.is_some(), settings.roots);
assert_eq!(self.output.extrema.is_some(), settings.extrema);
assert_eq!(self.output.derivative.is_some(), derivative_enabled);
assert_eq!(self.output.integral.is_some(), integral_enabled);
}
#[cfg(test)]
@ -380,14 +382,7 @@ impl FunctionEntry {
) {
{
self.calculate(min_x, max_x, true, settings);
self.assert(
settings,
back_values_target,
true,
true,
settings.roots,
settings.extrema,
);
self.assert(settings, back_values_target, true, true);
assert_eq!(self.output.integral.clone().unwrap().1, area_target);
}
}

View File

@ -39,3 +39,39 @@ impl FunctionOutput {
/// Invalidate Derivative data
pub fn invalidate_derivative(&mut self) { self.derivative = None; }
}
#[test]
fn function_output_test() {
let mut function_output = FunctionOutput::new_empty();
assert!(function_output.back.is_none());
assert!(function_output.integral.is_none());
assert!(function_output.derivative.is_none());
assert!(function_output.extrema.is_none());
assert!(function_output.roots.is_none());
function_output.back = Some(vec![Value::new(0, 0)]);
function_output.invalidate_back();
assert!(function_output.back.is_none());
function_output.integral = Some((vec![Bar::new(0.0, 0.0)], 0.0));
function_output.invalidate_integral();
assert!(function_output.integral.is_none());
function_output.derivative = Some(vec![Value::new(0, 0)]);
function_output.invalidate_derivative();
assert!(function_output.derivative.is_none());
function_output.back = Some(vec![Value::new(0, 0)]);
function_output.integral = Some((vec![Bar::new(0.0, 0.0)], 0.0));
function_output.derivative = Some(vec![Value::new(0, 0)]);
function_output.extrema = Some(vec![Value::new(0, 0)]);
function_output.roots = Some(vec![Value::new(0, 0)]);
function_output.invalidate_whole();
assert!(function_output.back.is_none());
assert!(function_output.integral.is_none());
assert!(function_output.derivative.is_none());
assert!(function_output.extrema.is_none());
assert!(function_output.roots.is_none());
}