validate(mtcars, description = "Motor Trend Car Road Tests") %>%
  validate_cols(description = "No NA's inside mpg:carb columns", not_na, mpg:carb) %>%
  validate_cols(description = "vs and am values equal 0 or 2 only", in_set(c(0, 2)), vs, am) %>%
  validate_cols(description = "gear and carb values should equal 3 or 4", skip_chain_opts = TRUE,
                error_fun = warning_append, in_set(c(3, 4)), gear, carb) %>%
  validate_rows(description = "Each row sum for am:vs columns is less or equal 2",
                row_reduction_fn = rowSums, within_bounds(0, 2), vs:am) %>%
  validate_rows(description = "Each row sum for am:vs columns is less or equal 1",
                row_reduction_fn = rowSums, within_bounds(0, 1), vs:am) %>%
  validate_cols(description = "For wt and qsec we have: abs(col) < 4 * sd(col)",
                within_n_sds(4), wt, qsec) %>%
  validate_cols(description = "For wt and qsec we have: abs(col) < 2 * sd(col)",
                within_n_sds(2), wt, qsec) %>%
  validate_rows(description = "Using mpg:carb mahalanobis distance for each observation is within 30 median absolute deviations from the median",
                maha_dist, within_n_mads(30), mpg:carb) %>%
  validate_rows(description = "Using mpg:carb mahalanobis distance for each observation is within 3 median absolute deviations from the median",
                maha_dist, within_n_mads(3), mpg:carb) %>%
  validate_if(description = "Column drat has only positive values", drat > 0) %>%
  validate_if(description = "Column drat has only values larger than 3", drat > 3) %>%
  validate_cols(description = "mpg between 15 and 20", between(15, 20), mpg) %>%
  add_results(report)