diff --git a/R/icd_check.R b/R/icd_check.R index b40c1eb..728c49c 100644 --- a/R/icd_check.R +++ b/R/icd_check.R @@ -31,16 +31,22 @@ icd_check_release <- function(release, verbose = TRUE) { Classification[`Release ID` == release] ) - if (verbose) message( - paste0( - "Release `", release, "` matches a known release for ", - icd_set, "." + if (verbose) + message( + paste0( + "Release `", release, "` matches a known release for ", + icd_set, "." + ) |> + strwrap(width = 80) ) - ) } else { stop( - "Release `", release, "` does not match any known release for ICD-11 - or ICD-10. Please verify and check with `icd_versions` and try again." + paste0( + "Release `", release, + "` does not match any known release for ICD-11 or ICD-10.", + " Please verify and check with `icd_versions` and try again." + ) |> + strwrap(width = 80) ) } } @@ -64,16 +70,25 @@ icd_check_language <- function(release = NULL, language, verbose = TRUE) { if (length(language) == 1) { if (language %in% languages_available) { - if (verbose) message( - paste0("Language `", language, "` is available for the release specified.") - ) + if (verbose) + message( + paste0( + "Language `", language, + "` is available for the release specified." + ) |> + strwrap(width = 80) + ) } else { warning( paste0( "Language `", language, - "` is not available for the release specified. Returning results for `en` (default)." - ) + "` is not available for the release specified. Returning results for + `en` (default)." + ) |> + strwrap(width = 80) ) + + ## Set language to default ---- language <- "en" } } @@ -81,21 +96,31 @@ icd_check_language <- function(release = NULL, language, verbose = TRUE) { if (length(language) > 1) { if (any(language %in% languages_available)) { + ## Detect languages ---- language_result <- language[language %in% languages_available] - message( - paste0( - "The following languages requested are available for the release specified: ", - language_result, "." - ) - ) - + ## Set language to language_result ---- language <- language_result + + ## Show message? ---- + if (verbose) + message( + paste0( + "The following languages requested are available for the release + specified: ", language_result, "." + ) |> + strwrap(width = 80) + ) } else { warning( - paste0( - "None of the languages requested are available for the release specified. Returning results for `en` (default).") + strwrap( + "None of the languages requested are available for the release + specified. Returning results for `en` (default).", + width = 80 + ) ) + + ## Set language to default ---- language <- "en" } } diff --git a/tests/testthat/test-icd_autocode.R b/tests/testthat/test-icd_autocode.R index 21e19fd..5293c80 100644 --- a/tests/testthat/test-icd_autocode.R +++ b/tests/testthat/test-icd_autocode.R @@ -1,2 +1,64 @@ # Test autocode function ------------------------------------------------------- +## Autocode foundation ---- + +testthat::expect_s3_class( + icd_autocode_foundation("colorectal cancer"), + "tbl_df" +) + +testthat::expect_s3_class( + icd_autocode_foundation("colorectal cancer", release = "2024-01"), + "tbl_df" +) + +testthat::expect_message( + icd_autocode_foundation("colorectal cancer") +) + +testthat::expect_error( + icd_autocode_foundation("colorectal cancer", release = "2025-01") +) + +testthat::expect_no_message( + icd_autocode_foundation("colorectal cancer", verbose = FALSE) +) + +testthat::expect_type( + icd_autocode_foundation("colorectal cancer", tabular = FALSE), + "list" +) + +testthat::expect_s3_class( + icd_autocode_foundation("colorectal cancer", threshold = 1), + "tbl_df" +) + +## Autocode linearisation - mms ---- + +testthat::expect_s3_class( + icd_autocode_mms("colorectal cancer"), + "tbl_df" +) + +testthat::expect_message( + icd_autocode_mms("colorectal cancer") +) + +testthat::expect_error( + icd_autocode_mms("colorectal cancer", release = "2025-01") +) + +testthat::expect_no_message( + icd_autocode_mms("colorectal cancer", verbose = FALSE) +) + +testthat::expect_type( + icd_autocode_mms("colorectal cancer", tabular = FALSE), + "list" +) + +testthat::expect_s3_class( + icd_autocode_mms("colorectal cancer", threshold = 1), + "tbl_df" +)