Detect redundancies in a rule set, but do not remove the rules. A rule in a ruleset can be redundant if it is implied by another rule or by a combination of rules. See the examples for more information.
detect_redundancy(x, ..., verbose = interactive())
validate::validator()
object with the validation rules.
not used.
if TRUE
print the redundant rule(s) to the console
For removal of duplicate rules, simplify
Other redundancy:
detect_fixed_variables()
,
is_implied_by()
,
remove_redundancy()
,
simplify_fixed_variables()
,
simplify_rules()
rules <- validator( rule1 = x > 1
, rule2 = x > 2
)
# rule1 is superfluous
remove_redundancy(rules, verbose=TRUE)
#> Removed redundant rule(s):
#> rule1: x > 1
#> Object of class 'validator' with 1 elements:
#> rule2: x > 2
# rule 1 is implied by rule 2
is_implied_by(rules, "rule1", verbose=TRUE)
#> Rule(s)
#> rule1: x > 1
#> implied by:
#> rule2: x > 2
#> [1] "rule2"
rules <- validator( rule1 = x > 2
, rule2 = x > 2
)
# standout: rule1 and rule2, oldest rules wins
remove_redundancy(rules, verbose=TRUE)
#> Removed redundant rule(s):
#> rule2: x > 2
#> Object of class 'validator' with 1 elements:
#> rule1: x > 2
# Note that detection signifies both rules!
detect_redundancy(rules)
#> rule1 rule2
#> TRUE TRUE