#context("Prediction function of qad") test_that("predictions sum to one", { n <- 8 x <- 1:n y <- x^2 sample <- data.frame(x, y) qad.fit <- qad::qad(sample, print = FALSE, resolution = 4) pred <-qad:: predict.qad(qad.fit, values = c(1, 3, 5, 7), conditioned = "x1", pred_plot = FALSE) expect_equal(pred$prediction$`x1=1`, c(1,0,0,0)) expect_equal(pred$prediction$`x1=3`, c(0,1,0,0)) expect_equal(pred$prediction$`x1=5`, c(0,0,1,0)) expect_equal(pred$prediction$`x1=7`, c(0,0,0,1)) n <- 250 x <- runif(n, -1, 1) y <- x^2 + runif(n, -0.1,0.1) qad.fit <- qad::qad(x,y, print = FALSE) pred <- qad::predict.qad(qad.fit, values = c(0, 0.5, -0.5), conditioned = "x1", pred_plot = FALSE) expect_equal(sum(pred$prediction$`x1=0`), 1) expect_equal(sum(pred$prediction$`x1=0.5`), 1) expect_equal(sum(pred$prediction$`x1=-0.5`), 1) }) test_that("length of prediction intervals is correct", { n <- 100 x <- rnorm(n) y <- rnorm(n) fit <- qad::qad(x,y, print = FALSE, resolution = 11) pred <- qad::predict.qad(fit, values = c(0), conditioned = "x1", pred_plot = FALSE) expect_equal(length(pred$prediction$Interval), 11) }) test_that("plot is returned by prediction", { n <- 100 x <- rnorm(n) y <- rnorm(n) fit <- qad::qad(x,y, print = FALSE, resolution = 11) pred <- qad::predict.qad(fit, values = c(0), conditioned = "x1", pred_plot = FALSE) expect_equal(class(pred[[2]]), c("gg", "ggplot")) })