tests/testthat/test_drcfit.R

context("drcfit_model")
test_that("drcfit works as expected on the model results",
  {
    skip_on_cran()
    skip_on_os(c("mac", "linux", "solaris"))
    skip_on_ci()
    datafilename <- system.file("extdata", "transcripto_sample.txt", package="DRomics")
    o <- microarraydata(datafilename, check = TRUE, norm.method = "cyclicloess")
    s_quad <- itemselect(o, select.method = "quadratic", FDR = 0.001)
    f <- drcfit(s_quad, progressbar = TRUE, information.criterion = "AIC")
    tmodel <- table(f$fitres$model)
    expect_equal(as.numeric(tmodel["Hill"]), 2)
    expect_equal(as.numeric(tmodel["linear"]), 9)
    expect_equal(as.numeric(tmodel["exponential"]), 28)
    expect_equal(as.numeric(tmodel["Gauss-probit"]), 26)
    expect_equal(as.numeric(tmodel["log-Gauss-probit"]), 2)
    expect_equal(round(mean(f$fitres$b, na.rm = TRUE), 4), 1.7086)
    expect_equal(round(mean(f$fitres$c, na.rm = TRUE), 4), 3.0414)
    expect_equal(round(mean(f$fitres$d, na.rm = TRUE), 4), 7.7127)
    expect_equal(round(mean(f$fitres$e, na.rm = TRUE), 4), 1.5259)
    expect_equal(round(mean(f$fitres$f, na.rm = TRUE), 4), 6.0096)
    # Select model with BIC
    f.BIC <- drcfit(s_quad, progressbar = TRUE, information.criterion = "BIC")
    tmodel.BIC <- table(f.BIC$fitres$model)
    expect_equal(as.numeric(tmodel.BIC["Hill"]), 0)
    expect_equal(as.numeric(tmodel.BIC["linear"]), 15)
    expect_equal(as.numeric(tmodel.BIC["exponential"]), 26)
    expect_equal(as.numeric(tmodel.BIC["Gauss-probit"]), 24)
    expect_equal(as.numeric(tmodel.BIC["log-Gauss-probit"]), 2)
    # Select model with AICc
    f.AICc <- drcfit(s_quad, progressbar = TRUE, information.criterion = "AICc")
    tmodel.AICc <- table(f.AICc$fitres$model)
    expect_equal(as.numeric(tmodel.AICc["Hill"]), 0)
    expect_equal(as.numeric(tmodel.AICc["linear"]), 11)
    expect_equal(as.numeric(tmodel.AICc["exponential"]), 30)
    expect_equal(as.numeric(tmodel.AICc["Gauss-probit"]), 24)
    expect_equal(as.numeric(tmodel.AICc["log-Gauss-probit"]), 2)
    expect_equal(round(mean(f.AICc$fitres$b, na.rm = TRUE), 4), 1.4992)
    expect_equal(round(mean(f.AICc$fitres$c, na.rm = TRUE), 4), 1.8546)
    expect_equal(round(mean(f.AICc$fitres$d, na.rm = TRUE), 4), 7.6714)
    expect_equal(round(mean(f.AICc$fitres$e, na.rm = TRUE), 4), 1.4312)
    expect_equal(round(mean(f.AICc$fitres$f, na.rm = TRUE), 4), 6.6001)
    
  })

Try the DRomics package in your browser

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

DRomics documentation built on Feb. 16, 2023, 6:45 p.m.