tests/testthat/test-Gmatrix.R

# Get data/run tests --------------------------------------------------------------------------------------

# TODO it is difficult to know when the missing bits will be activated.

geno.apple2 <- geno.apple[1:20, 1:50]

test_that("G calculation works", {

  # Regular call.
  G <- G.matrix(M = geno.apple2, method = "VanRaden", na.string="NA")$G

  expect_equal(

    G[1:2,1:2],

    matrix(c(1.14002041, -0.09223346, -0.09223346, 1.05094182),
           nrow = 2,
           dimnames = list(c("A325-1", "A325-2"), c("A325-1", "A325-2"))
    )
  )

  # Regular call with sparse results.
  Gs <- G.matrix(M = geno.apple2, method = "VanRaden", na.string="NA", sparseform = TRUE, message = FALSE)$G

  expect_equal(

    sparse2full(Gs),

    {attributes(G)$rowNames <- rownames(G) -> attributes(G)$colNames ; G}

  )
})

test_that("traps work", {

  # Wrong class.
  geno.applewr <- as.data.frame(geno.apple)
  expect_error(G.matrix(M = geno.applewr, method = "VanRaden", na.string="NA"))

  # Remove rownames.
  geno.applewr <- geno.apple2
  rownames(geno.applewr) <- c()
  expect_error(G.matrix(M = geno.applewr, method = "VanRaden", na.string="NA"))

  # Remove colnames.
  geno.applewr <- geno.apple2
  colnames(geno.applewr) <- c()
  expect_error(G.matrix(M = geno.applewr, method = "VanRaden", na.string="NA"))

  # Warn about n < p.
  geno.applewr <- geno.apple2[, 1:10]
  expect_warning(G.matrix(M = geno.applewr, method = "VanRaden", na.string="NA"))

})

Try the ASRgenomics package in your browser

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

ASRgenomics documentation built on May 29, 2024, 12:03 p.m.