tests/testthat/test-dim_reduction.R

test_that("Removing missing values works", {
  # drop_features
  invisible(capture.output(n_features <- nrow(remove_missing_values(
    brauer_2008_triple,
    missing_val_method = "drop_features"
  )$features)))
  expect_equal(n_features, 460)

  # drop_samples with no missing samples should behave like drop_features
  invisible(capture.output(n_features <- nrow(remove_missing_values(
    brauer_2008_triple,
    missing_val_method = "drop_samples"
  )$features)))
  expect_equal(n_features, 460)

  brauer_missing_samples <- brauer_2008_triple
  brauer_missing_samples$measurements$expression[
    brauer_missing_samples$measurements$sample %in% c("G0.05", "G0.1")
  ] <- NA

  invisible(capture.output(filtered_brauer <- remove_missing_values(
    brauer_missing_samples,
    missing_val_method = "drop_samples"
  )))

  expect_equal(nrow(filtered_brauer$samples), 34)
  expect_equal(nrow(filtered_brauer$measurements), 15674)
})

test_that("Matrices keys are reconstructed with appropriate classes", {

  tomic_with_missing_values <- simple_triple
  tomic_with_missing_values$measurements <- tomic_with_missing_values$measurements %>%
    dplyr::slice(-c(1:5))

  if (!("impute" %in% rownames(utils::installed.packages()))) {
    cli::cli_alert("{.pkg impute} is not available for testing; imputation tests will be skipped")
  } else{
    imputed_tomic <- impute_missing_values(tomic_with_missing_values)
    expect_s3_class(imputed_tomic, "triple_omic")
  }

})

test_that("Sample mahalanobis distances are calculated", {

  pc_distances <- calculate_sample_mahalanobis_distances(brauer_2008_tidy)
  expect_snapshot(pc_distances)

})
calico/romic documentation built on Sept. 27, 2024, 7:16 p.m.