tests/testthat/test-standardize.R

context("Standardize metabolic variables.")

metabolite_data <- simulated_data %>%
    select(starts_with("metabolite"))

standardized <- nc_standardize(metabolite_data)

standardized_with_residuals <- simulated_data %>%
    nc_standardize(starts_with("metabolite"), regressed_on = "age") %>%
    select(starts_with("metabolite"))

test_that("logging and scaling works", {
    metabolite_means <- standardized %>%
        colSums(na.rm = TRUE) %>%
        round(0)

    metabolite_sd <- standardized %>%
        purrr::map_dbl(sd, na.rm = TRUE) %>%
        round(0)

    expect_equal(sum(metabolite_means), 0)
    expect_true(all(metabolite_sd == 1))
    expect_false(identical(simulated_data, standardized))
})

test_that("standardization with residuals works", {
    metabolite_means_resid <- standardized_with_residuals %>%
        colSums(na.rm = TRUE) %>%
        round(0)

    metabolite_sd_resid <- standardized_with_residuals %>%
        purrr::map_dbl(sd, na.rm = TRUE) %>%
        round(0)

    expect_equal(sum(metabolite_means_resid), 0)
    expect_true(all(metabolite_sd_resid == 1))
    expect_false(identical(simulated_data, standardized_with_residuals))
    expect_false(identical(standardized, standardized_with_residuals))
})

# TODO: Add test for highly skewed data?
ClemensWittenbecher/NetCoupler documentation built on Jan. 14, 2024, 2:41 a.m.