# create asymmetric matrix
a = lav2ram(test_fit)$A
# create parcels data
variables = dimnames(a)[[1]][-c(1:3)]
parcel_sizes = data.frame(variable=variables, items = 5)
test_that("spearman_brown_adjustment works", {
  # create asymmetric matrix
  a = lav2ram(test_fit)$A
  # make no adjustment
  unchanged = spearman_brown_adjustment("z", a, parcel_sizes, prophecy_items = 5)
  expect_true(all(a[,1]==unchanged))
  # increase the reliability
  higher_rho = spearman_brown_adjustment("z", a, items=parcel_sizes, prophecy_items = 10)
  expect_true(all((higher_rho) >= (a[,1])))
  expect_true(sb_calculation(a[,1]["z1"], 2) == higher_rho[["z1"]])
  # decrease the reliability
  lower_rho = spearman_brown_adjustment("z", a, items=parcel_sizes, prophecy_items = 3)
  expect_true(all((lower_rho) <= (a[,1])))
})
test_that("spearman_brown_error", {
  # create asymmetric matrix
  a = lav2ram(test_fit)$A
  # create parcels data
  variables = dimnames(a)[[1]][-c(1:3)]
  parcel_sizes = data.frame(variables=variables, items = 5)
  # when it's called "variables" instead of variable
  expect_error(spearman_brown_error(variables, a, parcel_sizes))
  # when one of the variables isn't in the a matrix
  # parcel_sizes[1,1] = "asdfasdf"
  # names(parcel_sizes)[1] = "variable"
  # expect_error(spearman_brown_error(variables, a, parcel_sizes))
})
test_that("lav2ram works", {
  a = lav2ram(test_fit)$A
  # extract factor loadings
  fl = lavaan::lavInspect(test_fit, "std")$lambda
  expect_true(a["z1","z"] == fl["z1", "z"])
  # extract variances
  s = lav2ram(test_fit)$S
  lavaan::lavInspect(test_fit, "std")$psi
})
test_that("ram_matrix_adjustment_sb works", {
  original_varcov = fitted(parcel_fit)$cov
  parcel_sizes = data.frame(variable=rownames(original_varcov), items = 5)
  # with no adjustment, the implied and sb-adjusted are the same
  sb_adjusted_varcov = ram_matrix_adjustment_sb(parcel_fit, parcel_sizes)
  expect_equal(sum(sb_adjusted_varcov - original_varcov), 0, tolerance=.001)
  # increasing items makes it more reliable
  sb_adjusted_varcov = ram_matrix_adjustment_sb(parcel_fit, parcel_sizes, prophecy_items = 10)
  expect_true(sum(sb_adjusted_varcov - original_varcov)>0)
  # decreasing items makes it less reliable
  sb_adjusted_varcov = ram_matrix_adjustment_sb(parcel_fit, parcel_sizes, prophecy_items = 2)
  expect_true(sum(sb_adjusted_varcov - original_varcov)<0)
})
test_that("sb_calculation works", {
  testeq = sb_calculation(.68, 2)
  expect_true(round(testeq, digits=2) == .81)
  expect_true(sb_calculation(testeq, .5) == .68)
  expect_true(sb_calculation(.68, 1) == .68)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.