tests/testthat/test-class_torch.R

tar_test("torch format", {
  skip_cran()
  skip_on_os("solaris")
  skip_torch()
  tar_script({
    list(tar_target(a, torch::torch_tensor(c(1, 2)), format = "torch"))
  })
  tar_make(callr_function = NULL)
  out <- tar_read(a)
  expect_true(inherits(out, "torch_tensor"))
  expect_equal(torch::as_array(out), c(1, 2))
})

tar_test("torch format with in-memory serialization", {
  skip_cran()
  skip_on_os("solaris")
  skip_if_not_installed("future")
  skip_torch()
  future::plan(future::sequential)
  tar_script({
    list(tar_target(a, torch::torch_tensor(c(1, 2)), format = "torch"))
  })
  tar_make_future(callr_function = NULL)
  out <- tar_read(a)
  expect_true(inherits(out, "torch_tensor"))
  expect_equal(torch::as_array(out), c(1, 2))
})

tar_test("torch in-memory serialization of deps", {
  skip_cran()
  skip_on_os("solaris")
  skip_on_os("windows")
  require_clustermq()
  skip_torch()
  tar_script({
    tar_option_set(packages = "torch", retrieval = "main")
    options(clustermq.scheduler = "multiprocess")
    list(
      tar_target(tensor, torch_zeros(10), format = "torch"),
      tar_target(array, as.array(tensor))
    )
  })
  # https://github.com/mschubert/clustermq/issues/269
  suppressWarnings(
    capture.output(
      tar_make_clustermq(reporter = "silent", callr_function = NULL)
    )
  )
  tar_load(tensor)
  expect_true(inherits(tensor, "torch_tensor"))
  expect_length(tensor, 10)
  tar_load(array)
  expect_equal(array, rep(0, 10))
})

tar_test("validate torch format", {
  skip_cran()
  skip_on_os("solaris")
  skip_torch()
  x <- target_init(name = "a", expr = quote(f()), format = "torch")
  expect_silent(target_validate(x))
})

tar_test("torch packages", {
  x <- tar_target(x, 1, format = "torch")
  out <- store_get_packages(x$store)
  expect_equal(out, "torch")
})

tar_test("does not inherit from tar_external", {
  store <- tar_target(x, "x_value", format = "torch")$store
  expect_false(inherits(store, "tar_external"))
})

tar_test("store_row_path()", {
  target <- tar_target(x, "x_value", format = "torch")
  store <- target$store
  file <- target$file
  file$path <- "path"
  expect_equal(store_row_path(store, file), NA_character_)
})

tar_test("store_path_from_name()", {
  store <- tar_target(x, "x_value", format = "torch")$store
  out <- store_path_from_name(
    store,
    format = store$format,
    name = "x",
    path = "path",
    path_store = path_store_default()
  )
  expect_equal(
    out,
    path_objects(path_store_default(), "x")
  )
})

Try the targets package in your browser

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

targets documentation built on June 8, 2025, 10:24 a.m.