tests/testthat/test-naive.R

test_that("1-dimensional naive estimation and prediction works", {
  dr <- naive(numerator_small$x3, denominator_small$x3)
  summdr <- summary(dr)
  expect_s3_class(dr, "naivedensityratio")
  expect_s3_class(summdr, "summary.naivedensityratio")
  expect_invisible(print(summdr))

  pred <- predict(dr)
  expect_gt(mean(log(pmax(1e-3, pred))), 0)
  expect_lt(mean(log(pmax(1e-3, predict(dr, denominator_small$x3)))), 0)

  dr <- naive(numerator_small$x3, denominator_small$x3, kernel = "ep")
  summdr <- summary(dr, test = TRUE)
  expect_lte(summdr$p_value, 1)

  expect_invisible(print(dr))
  expect_invisible(print(summdr))
})

test_that("multidimensional naive estimation and prediction works", {
  dr <- naive(numerator_small, denominator_small)
  expect_s3_class(dr, "naivedensityratio")
  expect_type(plot(dr) |> suppressWarnings(), "list")

  expect_gt(mean(log(pmax(1e-3, predict(dr)))), 0)
  expect_lt(mean(log(pmax(1e-3, predict(dr, denominator_small)))), 0)

  dr <- naive(numerator_small, denominator_small, m = 2, kernel = "cos", bw = "nrd0")

  expect_type(dr$density_numerator$PC1$y, "double")
})

Try the densityratio package in your browser

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

densityratio documentation built on June 8, 2025, 11:17 a.m.