tests/testthat/test_w2n.R

context("w2n")

test_that("The output is in the right format",{
    nbStates <- 2
    nbCovs <- 2
    par <- c(0.001,0.999,0.5,0.7,1500.3,0.001)
    parSize <- c(2,1)
    bounds <- matrix(c(0,1,0,1,0,1,
                       0,1,0,Inf,0,Inf),
                     byrow=TRUE,ncol=2)
    beta <- matrix(rnorm(6),ncol=2,nrow=3)
    delta <- c(0.6,0.4)
    wpar <- n2w(par,bounds,beta,delta,nbStates,FALSE)
    p <- w2n(wpar,bounds,parSize,nbStates,nbCovs,FALSE,FALSE)

    expect_equal(length(p$stepPar),parSize[1]*nbStates)
    expect_equal(length(p$anglePar),parSize[2]*nbStates)
    expect_equal(dim(p$beta),dim(beta))
    expect_equal(length(p$delta),length(delta))
})

test_that("w2n and n2w are inverse",{
    nbStates <- 2
    nbCovs <- 2
    par <- c(0.001,0.999,0.7,0.7,1500.3,0.001)
    parSize <- c(2,1)
    bounds <- matrix(c(0,1,0,1,0,1,
                       0,1,-Inf,Inf,-Inf,Inf),
                     byrow=TRUE,ncol=2)
    beta <- matrix(rnorm(6),ncol=2,nrow=3)
    delta <- c(0.6,0.4)
    wpar <- n2w(par,bounds,beta,delta,nbStates,FALSE)
    p <- w2n(wpar,bounds,parSize,nbStates,nbCovs,FALSE,FALSE)

    expect_equal(c(t(p$stepPar)),par[1:(parSize[1]*nbStates)],tolerance=1e-10)
    expect_equal(c(t(p$anglePar)),par[(parSize[1]*nbStates+1):(sum(parSize)*nbStates)],tolerance=1e-10)
    expect_equal(p$beta,beta,tolerance=1e-10)
    expect_equal(p$delta,delta,tolerance=1e-10)
})

Try the moveHMM package in your browser

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

moveHMM documentation built on July 22, 2017, 1:03 a.m.