From dd0b6d8f5f6b9245dcc43a911d3c2f2085894dad Mon Sep 17 00:00:00 2001 From: Beniamino Green Date: Tue, 17 Oct 2023 08:54:48 -0400 Subject: [PATCH] addition of sets now removes duplicates --- R/ruleset_construction.R | 2 ++ tests/testthat/test-ruleset_construction.R | 14 ++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/R/ruleset_construction.R b/R/ruleset_construction.R index 9918a0a..7b41183 100644 --- a/R/ruleset_construction.R +++ b/R/ruleset_construction.R @@ -21,6 +21,8 @@ datavarifyr_plus <- function(a, b) { out <- c(a, b) } + out <- out[!duplicated(out)] + for (i in seq_along(out)) { out[[i]]["index"] <- i } diff --git a/tests/testthat/test-ruleset_construction.R b/tests/testthat/test-ruleset_construction.R index 0495e1f..89126e6 100644 --- a/tests/testthat/test-ruleset_construction.R +++ b/tests/testthat/test-ruleset_construction.R @@ -41,6 +41,20 @@ test_that("rulesets can be added to rules", { ) }) +test_that("duplicates are removed when adding rules and rulesets", { + rule_1 <- rule(mpg > 10) + rule_2 <- rule(hp > 10) + expect_equal( + length(ruleset(rule_1, rule_2) + ruleset(rule_1, rule_2)), + 2 + ) + + expect_equal( + length(rule_1 + rule_2 + ruleset(rule_1, rule_2) + ruleset(rule_1, rule_2)), + 2 + ) +}) + test_that("bind_rules works", { rule_1 <- rule(mpg > 10) rule_2 <- rule(hp > 10)