tests/testthat/test-classify_risk.R

test_that("classify_risk works for prostate preset", {
  sample_file <- system.file("extdata", "sample_data.csv", package = "RiskyCNV")
  result <- classify_risk(
    file_path    = sample_file,
    column_name  = "gleason_score",
    disease_type = "prostate",
    output_dir   = tempdir()
  )

  expect_type(result, "list")
  expect_true(any(c("low_risk", "intermediate_risk", "high_risk") %in% names(result)))
  expect_true(length(result[["low_risk"]]) > 0)
})

test_that("classify_risk works for breast preset", {
  sample_file <- system.file("extdata", "sample_data.csv", package = "RiskyCNV")
  result <- classify_risk(
    file_path    = sample_file,
    column_name  = "gleason_score",
    disease_type = "breast",
    output_dir   = tempdir()
  )

  expect_type(result, "list")
  expect_true(any(c("low_risk", "intermediate_risk", "high_risk") %in% names(result)))
})

test_that("classify_risk works for lung preset", {
  sample_file <- system.file("extdata", "sample_data.csv", package = "RiskyCNV")
  result <- classify_risk(
    file_path    = sample_file,
    column_name  = "pattern1",
    disease_type = "lung",
    output_dir   = tempdir()
  )

  expect_type(result, "list")
  expect_true(any(c("low_risk", "intermediate_risk", "high_risk") %in% names(result)))
})

test_that("classify_risk auto mode returns correct number of groups", {
  sample_file <- system.file("extdata", "sample_data.csv", package = "RiskyCNV")
  result <- classify_risk(
    file_path    = sample_file,
    column_name  = "gleason_score",
    disease_type = "auto",
    n_groups     = 3,
    output_dir   = tempdir()
  )

  expect_type(result, "list")
  expect_equal(length(result), 3)
})

test_that("classify_risk auto mode group names contain risk", {
  sample_file <- system.file("extdata", "sample_data.csv", package = "RiskyCNV")
  result <- classify_risk(
    file_path    = sample_file,
    column_name  = "gleason_score",
    disease_type = "auto",
    n_groups     = 3,
    output_dir   = tempdir()
  )

  expect_true(any(grepl("risk", names(result))))
})

test_that("classify_risk works with custom risk groups", {
  sample_file <- system.file("extdata", "sample_data.csv", package = "RiskyCNV")
  result <- classify_risk(
    file_path    = sample_file,
    column_name  = "gleason_score",
    disease_type = "custom",
    risk_groups  = list(
      "low_risk"  = function(x) x <= 6,
      "high_risk" = function(x) x > 6
    ),
    output_dir   = tempdir()
  )

  expect_type(result, "list")
  expect_true("low_risk"  %in% names(result))
  expect_true("high_risk" %in% names(result))
  expect_true(length(result[["low_risk"]]) > 0)
  expect_true(length(result[["high_risk"]]) > 0)
})

test_that("classify_risk throws error for unsupported disease_type", {
  sample_file <- system.file("extdata", "sample_data.csv", package = "RiskyCNV")

  expect_error(
    classify_risk(
      file_path    = sample_file,
      column_name  = "gleason_score",
      disease_type = "pancreatic",
      output_dir   = tempdir()
    ),
    "Unsupported disease_type"
  )
})

test_that("classify_risk throws error when custom risk_groups missing", {
  sample_file <- system.file("extdata", "sample_data.csv", package = "RiskyCNV")

  expect_error(
    classify_risk(
      file_path    = sample_file,
      column_name  = "gleason_score",
      disease_type = "custom",
      output_dir   = tempdir()
    ),
    "you must supply a named list"
  )
})

test_that("classify_risk saves output CSV file", {
  sample_file <- system.file("extdata", "sample_data.csv", package = "RiskyCNV")
  out_dir     <- tempdir()

  classify_risk(
    file_path    = sample_file,
    column_name  = "gleason_score",
    disease_type = "prostate",
    output_dir   = out_dir
  )

  saved_files <- list.files(out_dir, pattern = "risk_categories", full.names = TRUE)
  expect_true(length(saved_files) > 0)
})

Try the RiskyCNV package in your browser

Any scripts or data that you put into this service are public.

RiskyCNV documentation built on June 5, 2026, 5:07 p.m.