Nothing
# Tests for ONNX model metadata and Constant op
run_onnx <- function(path, inputs, device = "cpu") {
m <- onnx_load(path, device = device)
res <- onnx_run(m, inputs)
res[[1]]
}
# ── Model metadata ───────────────────────────────────────────────
test_that("onnx_load returns correct metadata", {
path <- .onnx_make_unary("Relu", c(4L))
m <- onnx_load(path, device = "cpu")
expect_s3_class(m, "onnx_model")
expect_equal(m$n_nodes, 1L)
expect_true("Relu" %in% m$ops)
})
test_that("onnx_summary works", {
path <- .onnx_make_unary("Relu", c(4L))
m <- onnx_load(path, device = "cpu")
s <- onnx_summary(m)
expect_true(is.list(s))
expect_equal(s$n_nodes, 1L)
})
test_that("onnx_inputs returns correct info", {
path <- .onnx_make_binary("Add", c(4L))
m <- onnx_load(path, device = "cpu")
inp <- onnx_inputs(m)
expect_true(is.list(inp))
expect_true(length(inp) >= 2)
})
test_that("print.onnx_model works", {
path <- .onnx_make_unary("Relu", c(4L))
m <- onnx_load(path, device = "cpu")
expect_output(print(m), "ONNX Model")
})
# ── Constant op ──────────────────────────────────────────────────
test_that("ONNX Constant tensor + Add works", {
const_data <- unlist(lapply(c(10, 20, 30, 40), .float_bytes))
const_attr <- .onnx_attr_tensor("value", c(4L), 1L, const_data)
const_node <- .onnx_node("Constant", character(0), "C", attrs = list(const_attr))
inp <- .onnx_value_info("X", 1L, c(4L))
outp <- .onnx_value_info("Y", 1L, c(4L))
add_node <- .onnx_node("Add", c("C", "X"), "Y")
graph <- .onnx_graph("test", list(const_node, add_node),
list(inp), list(outp))
model <- .onnx_model(graph)
path <- tempfile(fileext = ".onnx")
writeBin(model, path)
x <- c(1, 2, 3, 4)
result <- run_onnx(path, list(X = x))
expect_equal(as.numeric(result), c(11, 22, 33, 44), tolerance = 1e-5)
})
# ── onnx_device_info ─────────────────────────────────────────────
test_that("onnx_device_info returns valid diagnostics", {
path <- .onnx_make_unary("Relu", c(4L))
m <- onnx_load(path, device = "cpu")
# Run once so scheduler is allocated
onnx_run(m, list(X = c(1, -1, 2, -2)))
di <- onnx_device_info(m)
expect_true(is.list(di))
expect_true("n_nodes" %in% names(di))
expect_true("n_splits" %in% names(di))
expect_true(di$n_nodes >= 1)
})
test_that("onnx_device_info works before first inference", {
path <- .onnx_make_unary("Relu", c(4L))
m <- onnx_load(path, device = "cpu")
# No onnx_run — sched not yet allocated
di <- onnx_device_info(m)
expect_true(is.list(di))
expect_true(di$n_nodes >= 1)
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.