ironcalc_base 0.7.1

Open source spreadsheet engine
Documentation
#![allow(clippy::unwrap_used)]

use crate::test::util::new_empty_model;

#[test]
fn test_fn_covariance_smoke() {
    let mut model = new_empty_model();
    model._set("A1", "3");
    model._set("A2", "9");
    model._set("A3", "2");
    model._set("A4", "7");
    model._set("A5", "4");
    model._set("A6", "12");

    model._set("B1", "5");
    model._set("B2", "15");
    model._set("B3", "6");
    model._set("B4", "17");
    model._set("B5", "8");
    model._set("B6", "20");

    model._set("C1", "=COVARIANCE.P(A1:A6, B1:B6)");
    model._set("C2", "=COVARIANCE.S(A1:A6, B1:B6)");
    model.evaluate();

    assert_eq!(model._get_text("C1"), *"19.194444444");
    assert_eq!(model._get_text("C2"), *"23.033333333");
}

#[test]
fn arrays_mixed() {
    let mut model = new_empty_model();

    model._set("A2", "2");
    model._set("A3", "4");
    model._set("A4", "6");
    model._set("A5", "8");

    model._set("B2", "1");
    model._set("B3", "3");
    model._set("B4", "5");
    model._set("B5", "7");

    model._set("C1", "=COVARIANCE.P(A2:A5, {1,3,5,7})");
    model._set("C2", "=COVARIANCE.S(A2:A5, {1,3,5,7})");
    model._set("C3", "=COVARIANCE.P(A2:A5, B2:B5)");
    model._set("C4", "=COVARIANCE.S(A2:A5, B2:B5)");
    model._set("C5", "=COVARIANCE.P({2,4,6,8}, B2:B5)");
    model._set("C6", "=COVARIANCE.S({2,4,6,8}, B2:B5)");
    model._set("C7", "=COVARIANCE.P({2,4,6,8}, {1,3,5,7})");
    model._set("C8", "=COVARIANCE.S({2,4,6,8}, {1,3,5,7})");

    model.evaluate();

    assert_eq!(model._get_text("C1"), *"5");
    assert_eq!(model._get_text("C2"), *"6.666666667");
}