context("estimateSoilDepth")
## example data
d <- data.frame(
id = '1',
top = c(0, 10, 20, 30, 40, 50),
bottom = c(10, 20, 30, 40, 50, 60),
name = c('A', 'Bt1', 'Bt2', 'BC', 'Cr1', 'Cr2'),
stringsAsFactors = FALSE
)
depths(d) <- id ~ top + bottom
# plotSPC(d, hz.depths = TRUE, name.style = 'center-center', cex.names = 1)
test_that("basic functionality", {
# defaults
e <- estimateSoilDepth(d, name = 'name')
expect_equal(e, 40)
# manually specify selection function
# min == top of the top-most match
e <- estimateSoilDepth(d, name = 'name', selection = min)
expect_equal(e, 40)
# max = top of the bottom-most match
e <- estimateSoilDepth(d, name = 'name', selection = max)
expect_equal(e, 50)
# somewhere in-between
e <- estimateSoilDepth(d, name = 'name', selection = mean)
expect_equal(e, 45)
})
test_that("no match", {
# no match, use depth of profile
e <- estimateSoilDepth(d, name = 'name', p = 'xxx')
expect_equal(e, 60)
# no match, use `no contact` rules
e <- estimateSoilDepth(d, name = 'name', p = 'xxx', no.contact.depth = 25, no.contact.assigned = 'nothing')
expect_equal(e, 'nothing')
# `no contact` depth rule not triggered
e <- estimateSoilDepth(d, name = 'name', p = 'xxx', no.contact.depth = 75, no.contact.assigned = 'nothing')
expect_equal(e, 60)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.