tests/testthat/test-estimate-matrix-combination.R

test_that("Combined estimates and matrix", {
  
  fix1 <- lotri({
    a <- c(0, 1); backTransform("exp"); label("a label")
    b <- c(0, 1, 2)
    c <- fix(1)
    d <- fix(0, 1, 2)
    e <- c(0, 1, 2, fixed)
  })
  
  expect_snapshot_output(print(fix1))
  
  fix1 <- lotri({
    a <- c(0, 1); backTransform("exp"); label("a label")
    b <- c(0, 1, 2)
    c <- fix(1)
    d <- fix(0, 1, 2)
    e <- c(0, 1, 2, fixed)
    f+g ~ c(1,
            0.5, 1)
  })
  
  expect_snapshot_output(print(fix1))
  
  expect_equal(attr(fix1, "lotriEst"),
               structure(list(name = c("a", "b", "c", "d", "e"),
                              lower = c(0, 0, -Inf, 0, 0),
                              est = c(1, 1, 1, 1, 1),
                              upper = c(Inf, 2, Inf, 2, 2),
                              fix = c(FALSE, FALSE, TRUE, TRUE, TRUE),
                              label = c("a label",NA, NA, NA, NA),
                              backTransform = c("exp", NA, NA, NA, NA)),
                         row.names = c(NA,-5L), class = "data.frame"))
  fix2 <- fix1
  attr(fix2, "lotriEst") <- NULL
  class(fix2) <- NULL
  
  expect_equal(fix2,
               structure(c(1, 0.5, 0.5, 1),
                         .Dim = c(2L, 2L),
                         .Dimnames = list(c("f", "g"), c("f", "g"))))
  
  fix2 <- lotri({
    a = c(3); label(matt); backTransform(exp) #nolint
  })
  
  expect_equal(attr(fix2, "lotriEst"),
               structure(list(name = "a",
                              lower = -Inf,
                              est = 3,
                              upper = Inf,
                              fix = FALSE,
                              label = "matt",
                              backTransform = "exp"),
                         row.names = c(NA, -1L),
                         class = "data.frame"))
  
  expect_error(expect_message(lotri({a = "matt"})))
  
  expect_error(expect_message(
    lotri({
      a = c(1, 2, 3, 4)
      b <- c(NA) # nolint
      c <- c(NA, NA, NA)
      d <- c(NaN) #nolint
      e <- c(NaN, NaN, NaN)
      f <- Inf
      g <- c(Inf, 1, 2)
      h <- c(0, 1, -Inf)
      i <- c(1, 1, 1)
      j <- c(3, 2, 1)
    })
  ))
  
  # Don't allow dupliate parameters with a mixed matrix/estimate
  expect_error(lotri({b=3;b~0.4}))
})

Try the lotri package in your browser

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

lotri documentation built on March 31, 2023, 8:49 p.m.