Skip to content
Snippets Groups Projects
Commit f202a646 authored by Gael  MILLOT's avatar Gael MILLOT
Browse files

3rd commit

parent 9d62e6d6
No related branches found
No related tags found
No related merge requests found
......@@ -3,6 +3,6 @@ Download the desired Tagged version, never the current master.
Source the cute_little_functions.R into R/RStudio to have the functions available in the working environment.
WHAT'S NEW IN v1.1:
WHAT'S NEW IN v1.2:
1) printing result improvment
1) printing result improvement
################################################################
## ##
## R DEBUGGING TOOLS v1.1 ##
## R DEBUGGING TOOLS v1.2 ##
## ##
## Gael A. Millot ##
## ##
......@@ -16,9 +16,10 @@ str_basic_arg_check_dev <- '
# NULL argument default value
# argument without default values
# STRING
function.name <- as.list(match.call(expand.dots=FALSE))[[1]]
default.arg.list <- formals(fun = sys.function(sys.parent(n = 2))) # list of all the arguments of the function with their default values (not the values of the user !). Use n = 2 when he string has to be evaluated by eval() inside a function. Use n=1 (default) if not evaluation. It seems that ls() as first line of the function provide the names of the arguments (empty, called, etc., or not)
arg.without.default.value <- sapply(default.arg.list, is.symbol) & sapply(sapply(default.arg.list, as.character), identical, "") # logical to detect argument without default values (these are typeof "symbol" and class "name" and empty character
cat(paste0("\n\n================================\n\nARGUMENT CHECKING\n\n================================\n"))
cat(paste0("\n\n================================\n\n", function.name," FUNCTION ARGUMENT CHECKING\n\n================================\n"))
cat(paste0("\n================\nARGUMENTS OF THE FUNCTION ARE (INCLUDING DEFAULT VALUES):\n\n"))
print(default.arg.list)
if(any(sapply(default.arg.list, FUN = is.null))){
......@@ -40,6 +41,7 @@ str_arg_check_with_fun_param_check_dev <- '
# string that check:
# which arguments have been checked using fun_param_check()
# STRING
function.name <- as.list(match.call(expand.dots=FALSE))[[1]]
default.arg.list <- formals(fun = sys.function(sys.parent(n = 2))) # list of all the arguments of the function with their default values (not the values of the user !). Use n = 2 when he string has to be evaluated by eval() inside a function. Use n=1 (default) if not evaluation. It seems that ls() as first line of the function provide the names of the arguments (empty, called, etc., or not)
if( ! any(ls() %in% "checked.arg.names")){
cat(paste0("\n\n================\n\nERROR: MISSING checked.arg.names OBJECT. ARGUMENTS MAY HAVE NOT BEEN CHECKED USING fun_param_check(). SEE THE fun_export_data() FUNCTION FOR THIS KIND OF CHECKING\n\n================\n\n"))
......@@ -47,7 +49,7 @@ if( ! any(ls() %in% "checked.arg.names")){
if( ! find("fun_param_check") == ".GlobalEnv"){
cat(paste0("\n\n================\n\nERROR: MISSING fun_param_check() FUNCTION IN THE GLOBAL ENVIRONMENT. ARGUMENTS MAY HAVE NOT BEEN CHECKED USING fun_param_check(). SEE THE fun_export_data() FUNCTION FOR THIS KIND OF CHECKING\n\n================\n\n"))
}
cat(paste0("\n\n================================\n\nARGUMENT CHECKING USING fun_param_check()\n\n================================\n"))
cat(paste0("\n\n================================\n\n", function.name," FUNCTION ARGUMENT CHECKING USING fun_param_check()\n\n================================\n"))
if(any(duplicated(checked.arg.names))){ # for function debbuging
cat(paste0("\n================\nTHESE ARGUMENTS ARE DUPLICATED IN CHECK USING fun_param_check(): ", paste(checked.arg.names[duplicated(checked.arg.names)], collapse = " ")))
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment