tests/testthat/test-wt.bases.R

context("Compute wavelet (wt.bases)")

test_that("List of supported mother wavelets as global promise", {

  b <- wt.bases("morlet", c(1), 1)

  expect_true(is.list(b))
  expect_equal(b$daughter, NA_real_)
  expect_equal(round(b$coi, 2), .73)
})

test_that("Unsupported mother wavelet should produce an error", {
  expect_error(wt.bases("dummy", c(1), 1))
})

test_that("Supported mothers should work without errors", {
  for (m in MOTHERS) {
    expect_true(is.list(wt.bases(m, c(1), 1)))
  }
})

test_that("When length(k) < 2 then daughter should be NA", {

  # dispatched
  expect_equal(wt.bases("morlet", c(1), 1)$daughter, NA_real_)
  expect_equal(wt.bases("paul", c(1), 1)$daughter, NA_real_)
  expect_equal(wt.bases("dog", c(1), 1)$daughter, NA_complex_)

  # original R implementation
  expect_equal(wt.bases.morlet(c(1), 1)$daughter, NA_real_)
  expect_equal(wt.bases.paul(c(1), 1)$daughter, NA_real_)
  expect_equal(wt.bases.dog(c(1), 1)$daughter, NA_complex_)

  # improved C++ implementation
  expect_equal(rcpp_wt_bases_morlet(c(1), 1)$daughter, NA_real_)
  expect_equal(rcpp_wt_bases_paul(c(1), 1)$daughter, NA_real_)
  expect_equal(rcpp_wt_bases_dog(c(1), 1)$daughter, NA_complex_)
})

Try the biwavelet package in your browser

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

biwavelet documentation built on May 26, 2021, 9:06 a.m.