tests/testthat/test_dfa.R

library(nonlinearTseries)
context("DFA")

test_that("estimates equal theoretical results", {
  skip_on_cran()
  set.seed(1)
  # generate/load data
  noise = rnorm(6000)
  brown_noise = function(len = 100) {
    cumsum(rnorm(len))
  }
  bnoise = brown_noise(6000)
  # load stored pink noise
  pnoise = readRDS("../testdata/pink_noise.RDS")
  # Compare estimates with theoretical results
  # Test I: white noise
  sm = 10
  sM = 1000
  dfa_result = dfa(
    time.series = noise,
    npoints = 10,
    window.size.range = c(sm, sM),
    do.plot = FALSE
  )
  # message("expected: 0.5--- estimate: ", estimate(dfa_result),"\n")
  expect_true(abs(0.50 - estimate(dfa_result)) / 0.50 < 0.1)
  
  # Test II: pink noise
  dfa_result = dfa(
    time.series = pnoise,
    npoints = 10,
    window.size.range = c(sm, sM),
    do.plot = FALSE
  )
  ## message("expected: 1--- estimate: ",dfa_result$alpha1,"\n")
  expect_true(abs(1 - estimate(dfa_result)) / 1 < 0.1)
  
  # Test III: brown noise
  dfa_result = dfa(
    time.series = bnoise,
    npoints = 10,
    window.size.range = c(sm, sM),
    do.plot = FALSE
  )
  expect_true(abs(1.50 - estimate(dfa_result)) / 1.50 < 0.1)
  ## message("expected: 1.5 --- estimate: ",dfa_result$alpha1,"\n")
  
  
})

Try the nonlinearTseries package in your browser

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

nonlinearTseries documentation built on March 31, 2022, 1:07 a.m.