tests/testthat/test_pt.R

# point transect testing

par.tol <- 1e-5
p.tol <- 1e-4
lnl.tol <- 1e-4

context("Point transects")

test_that("ptexample.distance from mrds gives same results",{

  set.seed(123)
  data(ptdata.distance)
  # mrds code for the same example
  #xx <- ddf(dsmodel=~cds(key="hn", formula=~1), data=ptdata.distance,
  #          method="ds",
  #          meta.data=list(point=TRUE,width=max(ptdata.distance$distance)))#,
  xx <- ds(ptdata.distance, key="hn", transect="point", adjustment=NULL)

  expect_that(xx$ddf$par,equals(2.283007,tol=par.tol))
  expect_that(xx$ddf$lnl,equals(-458.5701,tol=lnl.tol))
  expect_that(summary(xx$ddf)$average.p,equals(0.1644303,tol=p.tol))

})

test_that("ptexample.single from mrds gives same results -- binned",{

  set.seed(345)
  data(ptdata.single)

  # mrds code for the same example
  #ptdata.single$distbegin <- (as.numeric(cut(ptdata.single$distance,
  #                            10*(0:10)))-1)*10
  #ptdata.single$distend <- (as.numeric(cut(ptdata.single$distance,
  #                          10*(0:10))))*10
  #model <- ddf(data=ptdata.single, dsmodel=~cds(key="hn"),
  #                meta.data=list(point=TRUE,binned=TRUE,breaks=10*(0:10)))

  xx <-suppressMessages(ds(ptdata.single,key="hn",transect="point",
                           cutpoints=10*(0:10),order=0))

  expect_that(xx$ddf$par,equals(3.397266,tol=par.tol))
  expect_that(xx$ddf$lnl,equals(-687.7673,tol=lnl.tol))
  expect_that(summary(xx$ddf)$average.p,equals(0.1779359,tol=p.tol))

})

## amongst other things: test that left truncation does the right thing
## based on bug at https://github.com/DistanceDevelopment/Distance/issues/64
## this test is very slow so disabled for now
#test_that("camera trap data works",{
#
#  data(DuikerCameraTraps)
#
#  trunc.list <- list(left=2, right=15)
#  conversion <- convert_units("meter", NULL, "square kilometer")
#  DuikerCameraTraps.hr <- ds(DuikerCameraTraps, transect = "point",
#                             key="hr", adjustment = NULL,
#                             cutpoints = c(seq(2,8,1), 10, 12, 15),
#                             truncation = trunc.list, convert.units = conversion,
#                             er.var="P3")
#
#  mult.list <-list(creation=data.frame(rate=unique(DuikerCameraTraps$multiplier),
#                                       SE=0))
#  DuikerCameraTraps.hr.dens.mult <- dht2(DuikerCameraTraps.hr,
#                                         flatfile=DuikerCameraTraps,
#                                         strat_formula = ~1,
#                                         multipliers = mult.list,
#                                         convert_units = conversion)
#
#
#  #Check n, effort and number of samples
#  expect_equal(DuikerCameraTraps.hr.dens.mult$n, 5865)
#  expect_equal(DuikerCameraTraps.hr.dens.mult$Effort, 12317058)
#  expect_equal(DuikerCameraTraps.hr.dens.mult$k, 21)
#  # check density estimate
#  expect_equal(attr(DuikerCameraTraps.hr.dens.mult, "density")$Density,
#               14.51055, tol=lnl.tol)
#
#})

Try the Distance package in your browser

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

Distance documentation built on July 26, 2023, 5:47 p.m.