tests/testthat/test-rm_between.R

context("Checking rm_between")

test_that("rm_between is removing and extracting betweened text single markers",{

    x <- c("Where is the /big dog#?",
        "I think he's @arunning@b with /little cat#.")
    
    x2 <- c("Where is the /big dog#?", "I think he's with /little cat#."
        )
    
    x3 <- list(NA_character_, "running")
	
    expect_equivalent(rm_between(x, "@a", "@b"), x2)
    expect_equivalent(rm_between(x, "@a", "@b", extract=TRUE), x3)

})

test_that("rm_between is removing betweened text multiple markers",{

    x <- c("Where is the /big dog#?",
        "I think he's @arunning@b with /little cat#.")
    
    y <- c("Where is the L1big dogL2?",
        "I think he's 98running99 with L1little catL2.")
	
    z2 <- c("Where is the ?", "I think he's with .")

	expect_equivalent(rm_between(x, c("/", "@a"), c("#", "@b")), z2)
    expect_equivalent(rm_between(y, c("L1", 98), c("L2", 99)), z2)
	
})


test_that("rm_between is extracting betweened text multiple markers",{
    
    x <- c("Where is the /big dog#?",
        "I think he's @arunning@b with /little cat#.")
    
    y <- c("Where is the L1big dogL2?",
        "I think he's 98running99 with L1little catL2.")

	z3 <- list("big dog", c("running", "little cat"))

	expect_equivalent(rm_between(x, c("/", "@a"), c("#", "@b"), extract=TRUE), z3)
    expect_equivalent(rm_between(y, c("L1", 98), c("L2", 99), extract=TRUE), z3)
		
})

test_that("rm_between is extracting between double quotes",{
    
    x <- 'Fresh or chilled Atlantic salmon "Salmo salar" and Danube salmon "Hucho hucho"'
    
    expect_equal(rm_between(x, '"', '"', extract = TRUE),
        structure(list(c("Salmo salar", "Hucho hucho")), class = c("extracted", 
            "list"))
    )

})

test_that("rm_between is extracting between single quotes",{
    
    x <- "Fresh or chilled Atlantic salmon 'Salmo salar' and Danube salmon 'Hucho hucho'"
    
    expect_equal(rm_between(x, "'", "'", extract = TRUE),
        structure(list(c("Salmo salar", "Hucho hucho")), class = c("extracted", 
            "list"))
    )

})

test_that("rm_between can use regexes when fixed = FALSE",{
    
    x <-  c(
        "There are 2.3 million species in the world",
        "There are 2.3 billion species in the world"
    )
    
    expect_equal(
        rm_between(x, left='There', right = '[mb]illion', fixed = FALSE,
            include=TRUE),
        c("species in the world", "species in the world")
    )
    
    expect_equal(    
        rm_between(x, left='There', right = '[mb]illion', fixed = FALSE,
            extract=TRUE, include=TRUE),
        structure(list("There are 2.3 million", "There are 2.3 billion"), 
            class = c("extracted", "list"))
    )

})
trinker/qdapRegex documentation built on Oct. 19, 2023, 11:31 p.m.