mirror of
https://github.com/saymrwulf/prophet.git
synced 2026-09-16 22:20:23 +00:00
[BUG/TST] Add validation to prevent fourier.order <= 0; addresses #980
In reverse order of importance, this change addresses: - #980, by adding validation to ensure that `fourier.order` > 0 - changes all the tests that `expect_error` using the argument `fourier_order`, as the argument is named `fourier.order`, so the intent of the test is to validate the holiday names rather than to check the use of the correct argument name Resolves: #980
This commit is contained in:
parent
ebb304680d
commit
a554873a38
2 changed files with 13 additions and 4 deletions
|
|
@ -697,7 +697,7 @@ add_regressor <- function(
|
||||||
mode <- m$seasonality.mode
|
mode <- m$seasonality.mode
|
||||||
}
|
}
|
||||||
if(prior.scale <= 0) {
|
if(prior.scale <= 0) {
|
||||||
stop("Prior scale must be > 0")
|
stop("Prior scale must be > 0.")
|
||||||
}
|
}
|
||||||
if (!(mode %in% c('additive', 'multiplicative'))) {
|
if (!(mode %in% c('additive', 'multiplicative'))) {
|
||||||
stop("mode must be 'additive' or 'multiplicative'")
|
stop("mode must be 'additive' or 'multiplicative'")
|
||||||
|
|
@ -760,7 +760,10 @@ add_seasonality <- function(
|
||||||
ps <- prior.scale
|
ps <- prior.scale
|
||||||
}
|
}
|
||||||
if (ps <= 0) {
|
if (ps <= 0) {
|
||||||
stop('Prior scale must be > 0')
|
stop('Prior scale must be > 0.')
|
||||||
|
}
|
||||||
|
if (fourier.order <= 0) {
|
||||||
|
stop('Fourier order must be > 0.')
|
||||||
}
|
}
|
||||||
if (is.null(mode)) {
|
if (is.null(mode)) {
|
||||||
mode <- m$seasonality.mode
|
mode <- m$seasonality.mode
|
||||||
|
|
|
||||||
|
|
@ -521,6 +521,10 @@ test_that("custom_seasonality", {
|
||||||
holiday = c('special_day'),
|
holiday = c('special_day'),
|
||||||
prior_scale = c(4))
|
prior_scale = c(4))
|
||||||
m <- prophet(holidays=holidays)
|
m <- prophet(holidays=holidays)
|
||||||
|
expect_error(
|
||||||
|
add_seasonality(m, name="incorrect.fourier.order", period=30, fourier.order=-10),
|
||||||
|
"Fourier order must be > 0."
|
||||||
|
)
|
||||||
m <- add_seasonality(m, name='monthly', period=30, fourier.order=5)
|
m <- add_seasonality(m, name='monthly', period=30, fourier.order=5)
|
||||||
true <- list(
|
true <- list(
|
||||||
period = 30, fourier.order = 5, prior.scale = 10, mode = 'additive',
|
period = 30, fourier.order = 5, prior.scale = 10, mode = 'additive',
|
||||||
|
|
@ -529,10 +533,12 @@ test_that("custom_seasonality", {
|
||||||
expect_equal(m$seasonalities$monthly[[name]], true[[name]])
|
expect_equal(m$seasonalities$monthly[[name]], true[[name]])
|
||||||
}
|
}
|
||||||
expect_error(
|
expect_error(
|
||||||
add_seasonality(m, name='special_day', period=30, fourier_order=5)
|
add_seasonality(m, name='special_day', period=30, fourier.order=5),
|
||||||
|
"already used for a holiday."
|
||||||
)
|
)
|
||||||
expect_error(
|
expect_error(
|
||||||
add_seasonality(m, name='trend', period=30, fourier_order=5)
|
add_seasonality(m, name='trend', period=30, fourier.order=5),
|
||||||
|
"is reserved."
|
||||||
)
|
)
|
||||||
m <- add_seasonality(m, name='weekly', period=30, fourier.order=5)
|
m <- add_seasonality(m, name='weekly', period=30, fourier.order=5)
|
||||||
# Test priors
|
# Test priors
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue