tests/testthat/test-extract.R

test_that("extract parameter set from tailor with no adjustments", {
  skip_if_not_installed("dials")

  bare_tlr <- tailor()

  bare_info <- extract_parameter_set_dials(bare_tlr)
  check_parameter_set_tibble(bare_info)
  expect_equal(nrow(bare_info), 0)
})

test_that("extract parameter set from tailor with no tunable parameters", {
  skip_if_not_installed("dials")

  tlr <-
    tailor() |>
    adjust_predictions_custom()

  tlr_info <- extract_parameter_set_dials(tlr)

  check_parameter_set_tibble(tlr_info)
  expect_equal(nrow(tlr_info), 0)
})

test_that("extract parameter set from tailor with a tunable parameter", {
  skip_if_not_installed("dials")

  tlr <-
    tailor() |>
    adjust_numeric_calibration() |>
    adjust_numeric_range(lower_limit = hardhat::tune())

  tlr_info <- extract_parameter_set_dials(tlr)

  check_parameter_set_tibble(tlr_info)
  expect_equal(nrow(tlr_info), 1)

  expect_equal(tlr_info$component, "numeric_range")
  expect_true(all(tlr_info$source == "tailor"))
  expect_equal(tlr_info$name, "lower_limit")
  expect_equal(tlr_info$id, "lower_limit")

  expect_equal(tlr_info$object[[1]], dials::lower_limit(c(-Inf, Inf)))
})

test_that("extract parameter set from tailor with multiple tunable parameters", {
  skip_if_not_installed("dials")

  tlr <-
    tailor() |>
    adjust_numeric_calibration() |>
    adjust_numeric_range(
      lower_limit = hardhat::tune(),
      upper_limit = hardhat::tune()
    )

  tlr_info <- extract_parameter_set_dials(tlr)

  check_parameter_set_tibble(tlr_info)
  expect_equal(nrow(tlr_info), 2)

  expect_equal(tlr_info$component, rep("numeric_range", 2))
  expect_true(all(tlr_info$source == "tailor"))
  expect_equal(tlr_info$name, c("lower_limit", "upper_limit"))
  expect_equal(tlr_info$id, c("lower_limit", "upper_limit"))

  expect_equal(tlr_info$object[[1]], dials::lower_limit(c(-Inf, Inf)))
  expect_equal(tlr_info$object[[2]], dials::upper_limit(c(-Inf, Inf)))
})

# -------------------------------------------------------------------------

test_that("extract single parameter from tailor with no adjustments", {
  skip_if_not_installed("dials")

  expect_snapshot(
    error = TRUE,
    extract_parameter_dials(tailor(), parameter = "none there")
  )
})

test_that("extract single parameter from tailor with no tunable parameters", {
  skip_if_not_installed("dials")

  tlr <-
    tailor() |>
    adjust_numeric_calibration()

  expect_snapshot(
    error = TRUE,
    extract_parameter_dials(tlr, parameter = "none there")
  )
})

test_that("extract single parameter from tailor with tunable parameters", {
  skip_if_not_installed("dials")

  tlr <-
    tailor() |>
    adjust_numeric_calibration() |>
    adjust_numeric_range(
      lower_limit = hardhat::tune(),
      upper_limit = hardhat::tune()
    )

  expect_equal(
    extract_parameter_dials(tlr, "lower_limit"),
    dials::lower_limit()
  )
})

Try the tailor package in your browser

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

tailor documentation built on Aug. 25, 2025, 9:50 a.m.