tests/testthat/zzz-test-step-vpd-euler-characteristic-curve.R

# ------------------------------------------------------------------------------
# Generated by 'pre-generate/generate-steps.R': do not edit by hand.
# ------------------------------------------------------------------------------

dist_train <- data.frame(
  dist = I(list(eurodist))
)
dist_test <- data.frame(
  dist = I(list(UScitiesD))
)
dist_rec <- recipe(~ ., data = dist_train) |> 
  step_phom_point_cloud(everything(), keep_original_cols = FALSE)
scale_seq <- seq(0, 5000, 100)

test_that("`step_vpd_euler_characteristic_curve()` agrees with raw function", {
  
  pl_rec <- dist_rec |> 
    step_vpd_euler_characteristic_curve(
      everything(),
      xseq = scale_seq,
      max_hom_degree = 0,
      keep_original_cols = FALSE
    )
  
  pl_prep <- prep(pl_rec, training = dist_train)
  
  pl_pred <- bake(pl_prep, new_data = dist_test) |> 
    unlist() |> unname()
  
  pl_exp <- dist_test$dist[[1L]] |> 
    ripserr::vietoris_rips() |> as.matrix() |> 
    TDAvec::computeEulerCharacteristic(
      scaleSeq = scale_seq,
      maxhomDim = 0
    ) |> 
    as.vector()
  
  expect_equal(pl_pred, pl_exp)
})

test_that("`tunable()` returns standard names", {
  
  pl_rec <- dist_rec |> 
    step_vpd_euler_characteristic_curve(everything(), keep_original_cols = FALSE)
  tun <- tunable(pl_rec$steps[[2]])
  
  expect_equal(
    names(tun),
    c("name", "call_info", "source", "component", "component_id")
  )
  expect_equal(
    tun$name,
    "max_hom_degree"
  )
  expect_equal(unique(tun$source), "recipe")
  expect_true(is.list(tun$call_info))
})

Try the tdarec package in your browser

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

tdarec documentation built on June 8, 2025, 10:41 a.m.