| expect_depends {testdat} | R Documentation |
Expectations: functional dependency
Description
Test whether one set of variables functionally depend on another set of variables.
Usage
expect_depends(vars, on, flt = TRUE, data = get_testdata())
Arguments
vars |
< |
on |
< |
flt |
< |
data |
A data frame to test. The global test data is used by default. |
Details
One set of variables, X, functionally depends on another, Y, if and only if
each value in Y corresponds to exactly one value in X. For instance,
course_duration and course_topic functionally depend on course_code if
each course_code corresponds to just one combination of course_duration
and course topic. That is, if two records have the same course_code then
they must have the same course_duration and course_topic.
See the wikipedia page for more information.
Value
expect_*() functions are mainly called for their side effects. The
expectation signals its result (e.g. "success", "failure"), which is logged
by the current test reporter. In a non-testing
context the expectation will raise an error with class
expectation_failure if it fails.
See Also
Other data expectations:
conditional-expectations,
datacomp-expectations,
date-expectations,
exclusivity-expectations,
generic-expectations,
label-expectations,
pattern-expectations,
proportion-expectations,
text-expectations,
uniqueness-expectations,
value-expectations
Examples
student_course <- data.frame(
student_id = 1:5,
course_code = c(1, 2, 1, 3, 4),
course_duration = c(12, 12, 12, 12, 12),
course_topic = c("Song", "Dance", "Song", "Painting", "Pottery")
)
# Check that each `course_code` corresponds to exactly one combination of
# `course_duration` and `course_topic`
expect_depends(
c(course_duration, course_topic),
on = course_code,
data = student_course
)