Просмотр исходного кода

A few more test and some code fiddling

main
Garrick Aden-Buie 7 лет назад
Родитель
Сommit
9b9588db41
4 измененных файлов: 40 добавлений и 6 удалений
  1. +7
    -6
      R/regex.R
  2. +5
    -0
      tests/testthat/test-regex.R
  3. +7
    -0
      tests/testthat/test-wrap_regex.R
  4. +21
    -0
      tests/testthat/test-wrap_result.R

+ 7
- 6
R/regex.R Просмотреть файл

result_pad <- sprintf("pad%02d", max_pad_level - 3) result_pad <- sprintf("pad%02d", max_pad_level - 3)
} }
} }
paste("<p class='results", result_pad, "'>", resi, "</p>")
paste('<p class="results', result_pad, '">', resi, "</p>")
}) })
res <- paste(res, collapse = "") res <- paste(res, collapse = "")
if (!nchar(pattern)) res <- paste("<p class='results'>", text, "</p>") if (!nchar(pattern)) res <- paste("<p class='results'>", text, "</p>")
tmp_html <- suppressWarnings( tmp_html <- suppressWarnings(
rmarkdown::render( rmarkdown::render(
tmp, tmp,
output_format = rmarkdown::html_document(css = c(system.file("styles", 'skeleton.css', package='regexplain'),
system.file("styles", 'view_regex.css', package='regexplain'),
system.file("styles", 'groups.css', package='regexplain')),
theme = NULL,
md_extensions = "-autolink_bare_uris"),
output_format = rmarkdown::html_document(
css = c(system.file("styles", 'skeleton.css', package='regexplain'),
system.file("styles", 'view_regex.css', package='regexplain'),
system.file("styles", 'groups.css', package='regexplain')),
theme = NULL,
md_extensions = "-autolink_bare_uris"),
quiet = TRUE quiet = TRUE
)) ))
rstudioapi::viewer(tmp_html) rstudioapi::viewer(tmp_html)

+ 5
- 0
tests/testthat/test-regex.R Просмотреть файл

m <- regex(text, pattern, global = TRUE) m <- regex(text, pattern, global = TRUE)
expect_equal(unique(m[[1]]$idx$pass), c(1L, 2L)) expect_equal(unique(m[[1]]$idx$pass), c(1L, 2L))
}) })

test_that("view_regex generall works", {
result <- "<p class=\"results \"> <span class=\"group g00\"><span class=\"group g01\">t</span>e</span><span class=\"group g00\"><span class=\"group g01\">s</span>t</span> </p>"
expect_equal(view_regex("test", "(\\w)\\w", render = FALSE), result)
})

+ 7
- 0
tests/testthat/test-wrap_regex.R Просмотреть файл

expect_equal(wrap_regex("((?:a(b))c)"), expect_equal(wrap_regex("((?:a(b))c)"),
"<span class=\"g01\">((?:a<span class=\"g02\">(b)</span>)c)</span>") "<span class=\"g01\">((?:a<span class=\"g02\">(b)</span>)c)</span>")
}) })

test_that("wrap_regex returns text if no matches", {
expect_equal(
wrap_result(list(text = "no result")),
"no result"
)
})

+ 21
- 0
tests/testthat/test-wrap_result.R Просмотреть файл

) )
expect_equal(wrap_result(regex(text, pattern, global = TRUE)[[1]]), result) expect_equal(wrap_result(regex(text, pattern, global = TRUE)[[1]]), result)
}) })

test_that("handles escaped parentheses", {
expect_equal(
wrap_regex("\\((word)\\)"),
'\\\\(<span class=\"g01\">(word)</span>\\\\)'
)
})

test_that("wrap_result with exact = TRUE", {
# input/output standard R characters
expect_equal(
wrap_result(regex("a\\b", "\\\\")[[1]]),
"a<span class=\"group g00\">\\</span>b"
)

# input is "literal", output is R string to match literal input
expect_equal(
wrap_result(regex("a\\b", "\\\\")[[1]], exact = TRUE),
"a<span class=\"group g00\">\\\\</span>b"
)
})

Загрузка…
Отмена
Сохранить