tests/testthat/test-rowwise.R

with_mock_crunch({
    ds <- cachedLoadDataset("test ds")

    test_that("rowDistinct works (na.rm = TRUE)", {
        expect_equal(
            rowDistinct(ds$catarray, name = "x"),
            VarDef(
                as.integer(c(2, 2, 2, 1, 1, 2, 1, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2)), # nolint
                name = "x"
            )
        )
    })

    test_that("rowDistinct works (na.rm = FALSE)", {
        expect_equal(
            rowDistinct(ds$catarray, name = "x", na.rm = FALSE),
            VarDef(
                as.integer(c(2, 3, 2, 2, 2, 3, 2, 3, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 3, 1, 2, 1, 2, 2, 2)), # nolint
                name = "x"
            )
        )
    })

    test_that("error for non-array var rowDistinct", {
        expect_error(rowDistinct(ds$textvar), "x must be an array variable")
    })

    test_that("straightlineResponse works", {
        expect_equal(
            straightlineResponse(ds$catarray, name = "x"),
            VarDef(
                ds$catarray$subvar1 == ds$catarray$subvar2 & ds$catarray$subvar3 == ds$catarray$subvar2, #nolint
                name = "x"
            )
        )
    })

    test_that("error for non-array var straightline", {
        expect_error(straightlineResponse(ds$textvar), "x must be an array variable")
    })

    test_that("rowCount creates correct vardef", {
        expect_equal(
            rowCount(ds$mymrset, name = "row count"),
            VarDef(crunchdbFunc("selected_depth", ds$mymrset), name = "row count")
        )
    })
})

Try the crunch package in your browser

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

crunch documentation built on May 29, 2024, 5:03 a.m.