context("Cube calculation attributes")
test_that("dimensions attribute is correct on multiple MR cube", {
cube <- loadCube("cubes/cat-x-mr-x-mr.json")
marg <- margin.table(cube, 1:2)
expect_equal(names(attr(marg, "dims")), names(dimnames(marg)))
marg <- margin.table(cube, 1)
expect_equal(names(attr(marg, "dims")), names(dimnames(marg)))
marg <- margin.table(cube, 2)
expect_equal(names(attr(marg, "dims")), names(dimnames(marg)))
marg <- margin.table(cube, 3)
expect_equal(names(attr(marg, "dims")), names(dimnames(marg)))
marg <- margin.table(cube, 2:3)
expect_equal(names(attr(marg, "dims")), names(dimnames(marg)))
marg <- margin.table(cube, 1:3)
expect_equal(names(attr(marg, "dims")), names(dimnames(marg)))
})
cube <- loadCube("cubes/selected-crosstab-4.json")
marg <- margin.table(cube, 1)
test_that("margin table returns a cube-calculation", {
expect_is(marg, "CrunchCubeCalculation")
expect_equal(attr(marg, "type"), "margin")
dims <- attr(marg, "dims")
expect_is(dims, "CubeDims")
expect_equal(length(dims), length(dim(marg)))
expect_prints(
marg,
paste(
"shower_thoughts_klima_2",
" Cupcakes are the best cakes Corgis are the future of dog shows ",
" 21453.031 19390.097 ",
" I always ride a penny-farthing I never look at eclipses ",
" 24793.106 20314.818 ",
" I never mess with Texas I don't mind pickles on my burger ",
" 7865.977 12669.603 ",
sep = "\n"
),
fixed = TRUE
)
})
prop <- prop.table(cube, 1)
test_that("prop.table returns a cube-calculation", {
expect_is(prop, "CrunchCubeCalculation")
expect_equal(attr(prop, "type"), "proportion")
dims <- attr(prop, "dims")
expect_is(dims, "CubeDims")
expect_equal(length(dims), length(dim(prop)))
expect_prints(
prop,
paste(
" pdl_gender",
"shower_thoughts_klima_2 Male Female",
" Cupcakes are the best cakes 0.4627882 0.5372118",
" Corgis are the future of dog shows 0.4945227 0.5054773",
" I always ride a penny-farthing 0.4718019 0.5281981",
" I never look at eclipses 0.4815647 0.5184353",
" I never mess with Texas 0.5616081 0.4383919",
" I don't mind pickles on my burger 0.4877166 0.5122834",
sep = "\n"
)
)
})
prop_table <- prop.table(loadCube("cubes/univariate-categorical.json"))
test_that("prop.table with no margin, on a univariate returns a cube-calculation", {
expect_is(prop_table, "CrunchCubeCalculation")
expect_equal(attr(prop_table, "type"), "proportion")
dims <- attr(prop_table, "dims")
expect_is(dims, "CubeDims")
expect_equal(length(dims), length(dim(prop_table)))
expect_prints(
prop_table,
paste(
"v7",
" C E ",
"0.6666667 0.3333333 ",
sep = "\n"
)
)
})
test_that("prop.table with a variety of arguments returns a cube-calculation", {
for (m in c(NULL, 1:2)) {
prop <- prop.table(loadCube("cubes/selected-crosstab-4.json"), m)
expect_is(prop, "CrunchCubeCalculation")
expect_equal(attr(prop, "type"), "proportion")
dims <- attr(prop, "dims")
expect_is(dims, "CubeDims")
expect_equal(length(dims), length(dim(prop)))
}
})
test_that("as.array method", {
arr <- as.array(marg)
expect_is(arr, "array")
expect_null(attr(arr, "type"))
expect_null(attr(arr, "dims"))
expect_is(as.array(prop), "matrix")
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.