tests/testthat/test-calculate_complexities.R

# test calculate complexities --------------------------------------------------
data(P_sojae_survey)
complexities <- calculate_complexities(
  x = P_sojae_survey,
  cutoff = 60,
  control = "susceptible",
  sample = "Isolate",
  gene = "Rps",
  perc_susc = "perc.susc"
)

test_that("calculate_complexities() works properly", {
  expect_s3_class(complexities, "hagis.complexities")
  expect_length(complexities, 2)
  expect_named(complexities,
               c("grouped_complexities",
                 "indvidual_complexities"))

  # test summary.hagis.complexities
  expect_length(summary(complexities), 3)
  expect_equal(summary(complexities)[[1]], 8.714286,
               tolerance = 1e-3)
  expect_equal(summary(complexities)[[2]], 2.003568,
               tolerance = 1e-3)
  expect_equal(summary(complexities)[[3]], 0.4372144,
               tolerance = 1e-3)
  expect_named(summary(complexities), c("mean", "sd", "se"))
})

test_that("calculate_complexities() stops if lacking all params", {
  expect_error(
    calculate_complexities(
      x = "y",
      cutoff = 60,
      control = "susceptible",
      sample = "Isolate",
      gene = "Rps",
      perc_susc = "perc.susc"
    ),
    regexp = "You have failed to provide all necessary inputs"
  )
  expect_error(
    calculate_complexities(
      x = P_sojae_survey,
      cutoff = "sixty",
      control = "susceptible",
      sample = "Isolate",
      gene = "Rps",
      perc_susc = "perc.susc"
    ),
    regexp = "You have failed to provide all necessary inputs"
  )
  expect_error(
    calculate_complexities(
      x = P_sojae_survey,
      cutoff = 60,
      control = NULL,
      sample = "Isolate",
      gene = "Rps",
      perc_susc = "perc.susc"
    ),
    regexp = "You have failed to provide all necessary inputs"
  )
  expect_error(
    calculate_complexities(
      x = P_sojae_survey,
      cutoff = 60,
      control = "susceptible",
      sample = NULL,
      gene = "Rps",
      perc_susc = "perc.susc"
    ),
    regexp = "You have failed to provide all necessary inputs"
  )
  expect_error(
    calculate_complexities(
      x = P_sojae_survey,
      cutoff = 60,
      control = "susceptible",
      sample = "isolate",
      gene = NULL,
      perc_susc = "perc.susc"
    ),
    regexp = "You have failed to provide all necessary inputs"
  )
  expect_error(
    calculate_complexities(
      x = P_sojae_survey,
      cutoff = 60,
      control = "susceptible",
      sample = "isolate",
      gene = "Rps",
      perc_susc = 60
    ),
    regexp = "You have failed to provide all necessary inputs"
  )
})

test_that("print.summary.complexities() returns a proper summary", {
  x <- capture.output(summary(complexities))
  expect_type(x, "character")
  expect_equal(x[[2]], "Mean of Complexities")
  expect_equal(x[[3]], "8.714286 ")
  expect_equal(x[[5]], "Standard Deviation of Complexities")
  expect_equal(x[[6]], "2.003568 ")
  expect_equal(x[[8]], "Standard Error of Complexities")
  expect_equal(x[[9]], "0.4372144")
})

test_that("print.hagis.complexities() returns a proper summary", {
  x <- capture.output(print(complexities))
  expect_type(x, "character")
  expect_equal(x[[2]], "Grouped Complexities")
  expect_equal(x[[3]], "    complexity frequency distribution")
  expect_equal(tail(x),
               c(
                 "18:     18     10",
                 "19:     19     11",
                 "20:     20     11",
                 "21:     21     13",
                 "    sample N_samp",
                 ""
               ))
})

test_that("pander.summary.complexities returns a properly formatted table", {
            x <- capture.output(pander(summary(complexities)))
            expect_type(x, "character")
            expect_equal(x[[1]], "")
            expect_equal(x[[2]], "------------------------")
            expect_equal(x[[3]], " Mean     SD       SE   ")
            expect_equal(x[[4]], "------- ------- --------")
            expect_equal(x[[5]], " 8.714   2.004   0.4372 ")
            expect_equal(x[[6]], "------------------------")
          })

Try the hagis package in your browser

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

hagis documentation built on Sept. 8, 2023, 5:20 p.m.