R/eval-conditions.R

Defines functions eval_condition_is_not_empty eval_condition_is_empty eval_condition_greater_than eval_condition_less_than eval_condition_is_after eval_condition_is_before eval_condition_is_within eval_condition_less_than eval_condition_is_between eval_condition_in_range eval_condition_not_in eval_condition_in eval_condition_does_not_contain eval_condition_contained_in_none_of eval_condition_contained_in_any_of eval_condition_contained_in_all_of eval_condition_contained_in eval_condition_any_contains eval_condition_contains_all eval_condition_contains eval_condition_has eval_condition_is_none_of eval_condition_is_any_of eval_condition_not_equals eval_condition_equals_all eval_condition_equals eval eval_conditions

eval_conditions <- function(value1, condition, value2){
  do.call(paste0("eval_condition_", condition),
          list(value1, value2))
}

eval <- function(value_is, specs, spec_type) {
  specification <- specs[[spec_type]]
  condition <- names(specification)
  value_want <- specification[[1]]
  eval_conditions({{value_is}}, condition, value_want)
}

eval_condition_equals <- function(x, y) x == y
eval_condition_equals_all <- function(x, y) (all(x %in% y) & all(y %in% x)) & length(x) == length(y)
eval_condition_not_equals <- function(x, y) x != y
eval_condition_is_any_of <- function(x, y) x %in% y
eval_condition_is_none_of <- function(x, y) !x %in% y
eval_condition_has <- function(x, y) !is.null(x) && y %in% x
eval_condition_contains  <- function(x, y) grepl(y, x)
eval_condition_contains_all <- function(x, y) all(y %in% x) & length(y) <= length(x)
eval_condition_any_contains  <- function(x, y) any(grepl(y, x))
eval_condition_contained_in  <- function(x, y) grepl(x, y)
eval_condition_contained_in_all_of  <- function(x, y) all(grepl(x, y))
eval_condition_contained_in_any_of  <- function(x, y) any(grepl(x, y))
eval_condition_contained_in_none_of  <- function(x, y) !all(grepl(x, y))
eval_condition_does_not_contain <- function(x, y) grepl(y, x)
eval_condition_in <- function(x, y) x %in% y
eval_condition_not_in  <- function(x, y) !x %in% y
eval_condition_in_range <- function(x, y) x <= max(y) && x >= min(y)
eval_condition_is_between <- function(x, y) x < max(y) && x > min(y)
eval_condition_less_than <- function(x, y) x < y
eval_condition_is_within <- function(x, y) x <= max(y) && x >= min(y)
eval_condition_is_before <- function(x, y) x < y
eval_condition_is_after <- function(x, y) x > y
eval_condition_less_than <- function(x, y) x < y
eval_condition_greater_than <- function(x, y) x > y

eval_condition_is_empty <- function(x,y) is.empty(x)
eval_condition_is_not_empty <- function(x, y) !is.empty(x)
datasketch/dsvalidate documentation built on Sept. 3, 2021, 7:12 a.m.