test_that("addtreedim", {
  # Check the function argument
  ## check the database class
  data(Paracou6_2016)
  Paracou6_2016 <- dplyr::slice(Paracou6_2016, 1:1000)
  MatrixInventory <- as.matrix(Paracou6_2016)
  crowndiameterparameters <- as.matrix(ParamCrownDiameterAllometry)
  volumeparameters <- as.matrix(ForestZoneVolumeParametersTable)
  expect_error(addtreedim(MatrixInventory, volumeparameters, crowndiameterparameters),
               regexp = "The function arguments must be data.frames")
  ## check the class argument for "advancedloggingparameters"
  Matrixloggingparameters <- as.matrix(loggingparameters())
  expect_error(addtreedim(Paracou6_2016, volumeparameters = ParamCrownDiameterAllometry,
                          advancedloggingparameters = Matrixloggingparameters),
               regexp = "The 'advancedloggingparameters' argument of the 'addtreedim' function must be a list")
  # Test data preparation
  testinventory <- addtreedim(inventorycheckformat(Paracou6_2016), volumeparameters = ForestZoneVolumeParametersTable)
  TestList <- list( # list the variables to check
    testinventory$TreeHeight,
    testinventory$TreeHarvestableVolume,
    testinventory$TrunkHeight,
    testinventory$CrownHeight,
    testinventory$CrownDiameter)
  # check their class (integer)
  lapply(TestList,
         function(element) expect_type(element, "double"))
  # check that variables are not empty, or contains NAs
  lapply(TestList,
         function(element) expect_false(any(is.na(element))))
  # check if formulas are respected
  expect_true(all(testinventory$TreeHarvestableVolume == # ONF's volume formula
                    testinventory$aCoef + testinventory$bCoef * (testinventory$DBH/100)^2))
  expect_true(all(testinventory$TreeHeight == # BIOMASS's model
                    exp(0.07359191 + 1.34241216*log(testinventory$DBH) + -0.12282344*log(testinventory$DBH)^2)))
  expect_true(all(testinventory$TrunkHeight # Cylinder volume formula
                  == testinventory$TreeHarvestableVolume/(pi*(((testinventory$DBH/100)/2)^2))))
  expect_true(all(testinventory$CrownHeight == testinventory$TreeHeight - testinventory$TrunkHeight))
  # expect_true(all(testinventory$CrownDiameter # dont work
  #                 == exp(((log(testinventory$DBH)- testinventory$alpha - rnorm(length(testinventory$DBH), 0, 0.0295966977))/testinventory$beta))/testinventory$TreeHeight))
  # expect_true(all(testinventory$TreeHarvestableVolume ==
  #                   (pi*(((testinventory$DBH/100)/2)^2)) * testinventory$TrunkHeight)) # dont work
  #
  # expect_true(all(log(testinventory$DBH) #neither
  #                 == testinventory$alpha + testinventory$beta*log(testinventory$TreeHeight*testinventory$CrownDiameter) + rnorm(length(testinventory$DBH), 0, 0.0295966977)))
  # check coherence
  expect_true(all(0 < testinventory$TreeHarvestableVolume & testinventory$TreeHarvestableVolume < 1000))
  expect_true(all(0 < testinventory$TrunkHeight & testinventory$TrunkHeight < 100))
  expect_true(all(0 < testinventory$TreeHeight & testinventory$TreeHeight < 200))# the tallest known tree: 115.55 m
  expect_true(all(0 < testinventory$CrownHeight & testinventory$CrownHeight < 100))
  expect_true(all(0 < testinventory$CrownDiameter & testinventory$CrownDiameter < 200))
  expect_true(nrow(inventorycheckformat(Paracou6_2016)) == nrow(testinventory))
})
# compute for all trees:
# + TreeHeight
# + TreeHarvestableVolume : volume exploitable à partir du tarif de cubage (= a + b*DBH2) que représente chaque arbre (a et b dépendent de la localisation)
# + TrunkHeight : hauteur de fût (TreeHarvestableVolume  = π(DBH/2)² x TrunkHeight)
# + CrownDiameter : diamètre de couronne (CD) (ln(D) = 𝜶+ 𝜷 ln(H*CD) + 𝜺 (allométries de Mélaine)
# + CrownHeight : TreeHeight - TrunkHeight
# -> check if column exist
# -> check their class (double)
# -> is not empty, or contains NA's
# -> check if formulas are respected
# -> check coherence
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.