Nothing
# Basic Package Tests
test_that("Package loads and example data is available", {
# Test that the package namespace is loaded
expect_true("exametrika" %in% loadedNamespaces())
# Test example datasets
data("J5S1000")
expect_s3_class(J5S1000, "exametrika")
expect_equal(nrow(J5S1000$Q), 1000)
expect_equal(ncol(J5S1000$Q), 5)
expect_equal(J5S1000$response.type, "ordinal")
data("J15S500")
expect_s3_class(J15S500, "exametrika")
expect_equal(nrow(J15S500$U), 500)
expect_equal(ncol(J15S500$U), 15)
expect_equal(J15S500$response.type, "binary")
})
test_that("dataFormat works correctly", {
# Test with simple binary data (25 rows)
set.seed(200)
binary_data <- matrix(sample(c(0, 1), 25 * 4, replace = TRUE), nrow = 25, ncol = 4)
result <- dataFormat(binary_data)
expect_s3_class(result, "exametrika")
expect_equal(result$response.type, "binary")
expect_equal(nrow(result$U), 25)
expect_equal(ncol(result$U), 4)
# Test with ordinal data (explicitly specified, 25 rows)
set.seed(201)
ordinal_data <- matrix(sample(1:4, 25 * 4, replace = TRUE), nrow = 25, ncol = 4)
result <- dataFormat(ordinal_data, response.type = "ordinal")
expect_s3_class(result, "exametrika")
expect_equal(result$response.type, "ordinal")
expect_equal(nrow(result$Q), 25)
expect_equal(ncol(result$Q), 4)
# Test automatic ordinal detection (25 rows)
set.seed(202)
ordinal_auto <- matrix(sample(1:4, 25 * 4, replace = TRUE), nrow = 25, ncol = 4)
result_auto <- dataFormat(ordinal_auto)
expect_s3_class(result_auto, "exametrika")
expect_equal(result_auto$response.type, "ordinal")
# Test with missing values (25 rows)
set.seed(203)
data_with_na <- matrix(sample(c(1, 2, 3, NA), 25 * 2, replace = TRUE), nrow = 25, ncol = 2)
result <- dataFormat(data_with_na)
expect_s3_class(result, "exametrika")
expect_true(any(result$Z == 0)) # Should have missing indicators
})
test_that("Essential package functions are exported", {
exported_functions <- getNamespaceExports("exametrika")
# Core functions should be exported
essential_functions <- c(
"GRM", "polychoric", "PolychoricCorrelationMatrix",
"dataFormat", "crr", "ItemTotalCorr", "sscore",
"nrs", "passage", "percentile", "stanine"
)
for (func in essential_functions) {
expect_true(func %in% exported_functions,
info = paste("Essential function", func, "should be exported")
)
}
})
test_that("C++ functions are available", {
# Test that key C++ functions exist and work
cpp_functions <- c(
"qBiNormal_cpp", "polychoric_cpp", "polychoric_matrix_cpp",
"log_lik_grm_cpp", "score_function_analytical_grm",
"target_to_params_grm", "simple_quadrature_grm"
)
for (func in cpp_functions) {
expect_true(exists(func, mode = "function"),
info = paste("C++ function", func, "should be available")
)
}
# Quick functionality test
expect_type(qBiNormal_cpp(0, 0, 0), "double")
expect_type(simple_quadrature_grm(5), "list")
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.