tests/testthat/test.classif.lda.R

context("classif.lda")

morphoDataFrame = data.frame("ID" = c("id1","id2","id3","id4","id5","id6","id7","id8"),
                             "Population" = c("Pop1", "Pop1", "Pop2", "Pop2", "Pop3", "Pop3", "Pop4", "Pop4"),
                             "Taxon" = c("TaxA", "TaxA", "TaxA", "TaxA", "TaxB", "TaxB", "TaxB", "TaxB"),
                               "Ch1" = c(1,3,4,6,1,7,12,8),
                               "Ch2" = c(11, 12,42,12,32,11,22,18))

morphoMockup = .morphodataFromDataFrame(morphoDataFrame)


test_that("correct input", {
  data("centaurea")
  expect_error(classif.lda(centaurea), "NA values in 'object'.")

  expect_error(classif.lda(morphoMockup, crossval = "ee"), "Invalid crossvalidation unit. Consider using \"indiv\" or \"pop\".")
})

test_that("correctness of calculation",  {
  c = suppressWarnings(classif.lda(morphoMockup))

  expect_is( c, "classifdata")

  expect_equal( attr(c, "method"), "lda")

  expect_equal(paste(unlist(c$prob)[1:4], collapse = ","), "0.7523,0.6484,3e-04,0.4131")
  expect_equal(paste(unlist(c$correct)[1:4], collapse = ","), "TRUE,TRUE,FALSE,FALSE")
  expect_equal(paste(unlist(c$classif), collapse = ","), "TaxA,TaxA,TaxB,TaxB,TaxA,TaxA,TaxB,TaxB")
  expect_equal(paste(c$ID, collapse = ","), "id1,id2,id3,id4,id5,id6,id7,id8")
})


test_that("correctness of calculation  -to iste 2 metodami",  {

  data = read.morphodata("../testFiles/samplePlnaMatica.txt")


  bezRTE = removePopulation(data, populationName = "RTE")
  RTE = keepPopulation(data, populationName = "RTE")

  RTE.classif = suppressWarnings(classifSample.lda(RTE, bezRTE))
  class_vsetko = suppressWarnings(classif.lda(data, crossval = "pop"))

  expect_equal(class_vsetko$ID[473:492], RTE.classif$ID)
  expect_equal(as.character(class_vsetko$Population[473:492]), as.character(RTE.classif$Population))
  expect_equal(paste(class_vsetko$classif[473:492]), paste(RTE.classif$classif[1:20]))
  expect_equal(class_vsetko$prob[473:492,], RTE.classif$prob)

})

Try the MorphoTools2 package in your browser

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

MorphoTools2 documentation built on March 7, 2023, 6:18 p.m.