tests/testthat/test-calcSD.R

context("calcSD")

test_that("calcSD: use", {
 # skip_on_cran()
  set.seed(42)
  n_traits <- 3
  n_plots <- 10
  num_species <- 10
  x <- generate.Artificial.Data(n_species = num_species, n_traits = n_traits,
                                n_communities = n_plots,
                                occurence_distribution = 0.5,
                                average_richness = 10,
                                sd_richness = 1,
                                mechanism_random = FALSE)

  data_species <- x$traits
  data_species$trait1 <- 1:10
  data_species$trait2 <- 1:10
  data_species$trait3 <- 1:10
  data_abundances <- x$abundances

  scaled_species <- scaleSpeciesvalues(data_species, n_traits)

  x <- calcSD(scaled_species,data_abundances, n_plots, n_traits)

  expect_equal(
    x[[1]] ,
    0
  )

  expect_equal(
    x[[2]],
    0
  )

  expect_equal(
    x[[4]],
    0
  )
})



test_that("calcSD: abuse", {
#  skip_on_cran()
  set.seed(42)
  n_traits <- 3
  n_plots <- 10
  num_species <- 10
  x <- generate.Artificial.Data(n_species = num_species, n_traits = n_traits,
                                n_communities = n_plots,
                                occurence_distribution = 0.5,
                                average_richness = 1,
                                sd_richness = 1,
                                mechanism_random = FALSE)

  data_species <- x$traits
  data_species$trait1 <- c(runif(10,0,1))
  data_species$trait2 <- c(runif(10,0,1))
  data_species$trait3 <- c(runif(10,0,1))

  data_abundances <- x$abundances
  for(i in 1:8) {
    data_abundances[1,i] <- 1
  }

  for(i in 1:8) {
    for(j in 2:10) {
      if(runif(1,0,1) < 0.5) {
        data_abundances[i,j] <- 0
      }
    }
  }

  data_abundances[1,9] <- 1
  data_abundances[1,10] <- 0

  scaled_species <- scaleSpeciesvalues(data_species, n_traits)

  expect_error(
    calcSD(scaled_species, data_abundances, n_plots, n_traits),
    "One of your communities doesn't have species in it"
  )

  data_abundances[5,1] <- 1
  expect_error(
    calcSD(scaled_species, data_abundances, n_plots, n_traits),
    "One of your communities doesn't have at least three species in it"
  )
})
thijsjanzen/STEPCAM documentation built on Dec. 19, 2020, 11:56 p.m.