tests/testthat/test_mrset.R

context("mrset")

data("product_test")

product_test = apply_labels(product_test,
                            a1_1 = "Likes. A",
                            a1_1 = num_lab("
                                     1 Liked everything
                                     2 Disliked everything
                                     3 Chocolate
                                     4 Appearance
                                     5 Taste
                                     6 Stuffing
                                     7 Nuts
                                     8 Consistency
                                     98 Other
                                     99 Hard to answer
                                     "),
                            b1_1 = "Likes. B",
                            b1_1 = num_lab("
                                     1 Liked everything
                                     2 Disliked everything
                                     3 Chocolate
                                     4 Appearance
                                     5 Taste
                                     6 Stuffing
                                     7 Nuts
                                     8 Consistency
                                     98 Other
                                     99 Hard to answer
                                     ")
)
expect_error(mrset())

a_res = calculate(product_test, a1_1 %to% a1_6)
b_res = calculate(product_test, b1_1 %to% b1_6)



class(a_res) = union("category", class(a_res))

big = cbind(a_res, b_res)
class(big) = union("category", class(big))

expect_identical(calculate(product_test, mrset(a1_1 %to% a1_6)), a_res)
expect_identical(calculate(product_test, mrset_f(a1_)), a_res)
expect_identical(calculate(product_test, mrset_p("a1_")), a_res)
expect_identical(calculate(product_test, mrset_t("a1_{1:6}")), a_res)
expect_identical(calculate(product_test, mrset(as.matrix(a1_1 %to% a1_6))), unlab(a_res))
expect_identical(calculate(product_test, mrset(a1_1 %to% a1_6, b1_1 %to% b1_6)), big)
expect_identical(calculate(product_test, mrset_f(a1_, b1_)), big)
expect_identical(calculate(product_test, mrset_p("^a1_\\d$", "^b1_\\d$")), big)
expect_identical(calculate(product_test, mrset_t("a1_{1:6}", "b1_{1:6}")), big)
big$b1_1 = unlab(big$b1_1)
expect_identical(calculate(product_test, mrset(a1_1 %to% a1_6, as.matrix(b1_1 %to% b1_6))), big)
expect_identical(calculate(product_test, mrset(a1_1)), setNames(a_res[,1, drop = FALSE], "a1_1"))
var_lab(a_res$a1_1) = "New label"
expect_identical(calculate(product_test, mrset(a1_1 %to% a1_6, label = "New label")), a_res)
expect_identical(calculate(product_test, mrset_f(a1_, label = "New label")), a_res)
expect_identical(calculate(product_test, mrset_p("a1_", label = "New label")), a_res)
expect_identical(calculate(product_test, mrset_t("a1_{1:6}", label = "New label")), a_res)
#########################
context("mdset")

a_res = calculate(product_test, a1_1 %to% a1_6)
b_res = calculate(product_test, b1_1 %to% b1_6)

class(a_res) = union("category", class(a_res))

big = cbind(as.dichotomy(a_res), as.dichotomy(b_res))
class(big) = union("dichotomy", class(big))
a_res_dich = as.dichotomy(a_res)
strange = a_res_dich
if_val(a_res_dich) = 1:150>100 ~ NA
if_val(strange) = 1:150>100 ~ 0
expect_identical(mdset(strange), strange)
expect_identical(calc(strange, mdset_f(v)), strange)
expect_identical(calc(strange, mdset_p("v")), strange)
expect_identical(calc(strange, mdset_t("v{2:8}")), strange)
a_res_dich = as.dichotomy(a_res)
strange = a_res_dich
if_val(strange) = c(0 ~ NA, 1 ~ 42)
expect_identical(mdset(strange),  a_res_dich)

expect_identical(mdset(as.dichotomy(a_res), as.dichotomy(b_res)), big)

a = as.double(1:0)
var_lab(a) = "My a"
res = sheet(a = a)
class(res) = c("dichotomy", class(res))
expect_identical(mdset(a), res)

a_res_dich = as.dichotomy(a_res)
for(each in seq_along(a_res_dich)){
    var_lab(a_res_dich[[each]]) = paste0("New label|", names(a_res_dich)[each]) 
}

# expect_identical(mdset(dummy(a_res), label = "New label"),  a_res_dich)

a_res = a_res_dich
for(each in seq_along(a_res_dich)){
    var_lab(a_res_dich[[each]]) = paste0("New label|", var_lab(a_res_dich[[each]])) 
    
}

expect_identical(mdset(a_res, label = "New label"),  a_res_dich)
expect_identical(calc(a_res, mdset_f(v, label = "New label")),  a_res_dich)
expect_identical(calc(a_res, mdset_p("v", label = "New label")),  a_res_dich)
expect_identical(calc(a_res, mdset_t("v{2:8}", label = "New label")),  a_res_dich)
gdemin/labelr documentation built on April 13, 2024, 2:34 p.m.