test_that("qualitative parameter object creation - bad args", { expect_snapshot( error = TRUE, new_qual_param("character", 1:2) ) expect_snapshot( error = TRUE, new_qual_param("logical", letters[1:2]) ) }) test_that("quantitative parameter object creation - bad args", { expect_snapshot( error = TRUE, new_quant_param("mucus", range = 1:2, inclusive = c(TRUE, TRUE)) ) expect_snapshot( error = TRUE, new_quant_param("double", range = 1, inclusive = c(TRUE, TRUE)) ) expect_snapshot( error = TRUE, new_quant_param("double", range = c(1, NA), inclusive = c(TRUE, TRUE)) ) expect_snapshot( error = TRUE, new_quant_param("double", range = c(1, NA), inclusive = TRUE) ) expect_snapshot( error = TRUE, new_quant_param("double", range = c(1, NA), inclusive = c("(", "]")) ) expect_snapshot( error = TRUE, new_quant_param("double", range = c(1, NA), inclusive = c(TRUE, TRUE)) ) expect_snapshot( error = TRUE, new_quant_param("integer", range = 1:2, inclusive = c(TRUE, NA)) ) expect_snapshot( error = TRUE, new_quant_param("integer", range = 1:2, inclusive = c(TRUE, unknown())) ) expect_snapshot( error = TRUE, new_quant_param("integer", range = 1:2, inclusive = c(TRUE, TRUE), trans = log) ) expect_snapshot( error = TRUE, new_quant_param("integer", range = 1:2, inclusive = c(TRUE, TRUE), values = 1:4) ) expect_snapshot( error = TRUE, new_quant_param("integer", range = 1:2, inclusive = c(TRUE, TRUE), finalize = "not a function or NULL") ) }) test_that("bad args to range_validate", { expect_snapshot( error = TRUE, range_validate(mtry(), range = 1) ) expect_snapshot( error = TRUE, range_validate(mtry(), range = c(1, NA)) ) expect_snapshot( error = TRUE, range_validate(mtry(), range = c(1, unknown()), FALSE) ) expect_snapshot( error = TRUE, range_validate(mtry(), range = letters[1:2]) ) }) test_that("printing", { expect_snapshot(mtry()) expect_snapshot(surv_dist()) expect_snapshot( value_set(cost_complexity(), log10(c(.09, .0001))) ) }) test_that("converting doubles to integers", { expect_type( mtry(c(1, unknown()))$range$lower, "integer" ) expect_type( mtry(c(unknown(), 1))$range$upper, "integer" ) expect_type( mtry(c(1, 10))$range$lower, "integer" ) expect_type( mtry(c(1, 10))$range$upper, "integer" ) }) test_that("bad ranges", { expect_snapshot(error = TRUE, mixture(c(1L, 3L))) expect_snapshot(error = TRUE, mixture(c(1L, unknown()))) expect_snapshot(error = TRUE, mixture(c(unknown(), 1L))) expect_snapshot(error = TRUE, mixture(letters[1:2])) expect_snapshot(error = TRUE, mtry(c(.1, .5))) expect_snapshot(error = TRUE, mtry(c(.1, unknown()))) expect_snapshot(error = TRUE, mtry(c(unknown(), .5))) }) test_that("can supply `values` without `range` and `inclusive` (#87)", { x <- new_quant_param( type = "integer", values = c(1L, 5L, 10L), label = c(foo = "Foo") ) expect_identical(x$range, list(lower = 1L, upper = 10L)) expect_identical(x$inclusive, c("lower" = TRUE, "upper" = TRUE)) expect_identical(x$values, c(1L, 5L, 10L)) }) test_that("`values` must be compatible with `range` and `inclusive`", { expect_snapshot(error = TRUE, { new_quant_param( type = "integer", values = c(1L, 5L, 10L), range = c(1L, 5L), label = c(foo = "Foo") ) }) expect_snapshot(error = TRUE, { new_quant_param( type = "integer", values = c(1L, 5L, 10L), inclusive = c(TRUE, FALSE), label = c(foo = "Foo") ) }) expect_snapshot(error = TRUE, { new_quant_param( type = "integer", values = NULL, range = NULL, inclusive = c(TRUE, FALSE), label = c(foo = "Foo") ) }) expect_snapshot(error = TRUE, { new_quant_param( type = "integer", values = NULL, range = c(1L, 10L), inclusive = NULL, label = c(foo = "Foo") ) }) }) test_that("`values` is validated", { expect_snapshot(error = TRUE, { new_quant_param( type = "integer", values = "not_numeric", label = c(foo = "Foo") ) }) expect_snapshot(error = TRUE, { new_quant_param( type = "integer", values = NA_integer_, label = c(foo = "Foo") ) }) expect_snapshot(error = TRUE, { new_quant_param( type = "integer", values = integer(), label = c(foo = "Foo") ) }) }) test_that("`default` arg is deprecated", { expect_snapshot(error = TRUE, { quant_param <- new_quant_param( type = "integer", default = 5L, values = 1:10, label = c(foo = "Foo") ) }) expect_snapshot(error = TRUE, { qual_param <- new_qual_param( type = "logical", values = c(FALSE, TRUE), default = TRUE, label = c(foo = "Foo") ) }) })