tests/testthat/test-rd.qte.R

test_that("rd.qte returns a qte object with no covariates, no bias", {
  set.seed(123)
  y <- rnorm(200)
  x <- matrix(runif(200), ncol=1)
  d <- ifelse(x > 0.5, 1, 0)
  result <- rd.qte(y, x, d, x0=0.5, tau=c(0.25, 0.5, 0.75), bdw=0.4, bias=0)

  expect_s3_class(result, "qte")
  expect_named(result, c("tau", "qte", "qp.est", "qm.est", "cov", "y", "x", "d", "x0", "z0", "bdw", "bias"), ignore.order = TRUE)
  expect_equal(result$cov, 0)
})


test_that("rd.qte handles bias correction", {
  y <- rnorm(200)
  x <- matrix(runif(200), ncol=1)
  d <- ifelse(x > 0.5, 1, 0)
  result <- rd.qte(y, x, d, x0=0.5, tau=c(0.5), bdw=0.3, bias=1)

  expect_true(all(c("qp.est", "qm.est", "qte") %in% names(result)))
})


test_that("rd.qte produces error for mismatched bandwidths and taus", {
  expect_error(
    rd.qte(rnorm(100), matrix(runif(100), ncol=1), ifelse(runif(100) > 0.5, 1, 0), x0=0.5,
           tau=c(0.1, 0.5), bdw=c(0.1, 0.2, 0.3), bias=0),
    "length of bdw should be one or equal to the length of tau"
  )
})

Try the QTE.RD package in your browser

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

QTE.RD documentation built on Aug. 30, 2025, 9:06 a.m.