#' - text: message indicating the details of the problem, or the absence of problem
#' - text: message indicating the details of the problem, or the absence of problem
#' - object.name: value of the data.name argument (i.e., name of the checked object if provided, NULL otherwise)
#' - object.name: value of the data.name argument (i.e., name of the checked object if provided, NULL otherwise)
#' @details
#' @details
#' - If options == NULL, then at least class or type or mode or length argument must be non-null
#' - If options == NULL, then at least class or type or mode or length argument must be non-null
#' - If options is non-null, then class, type and mode must be NULL, and length can be NULL or specified
#' - If options is non-null, then class, type and mode must be NULL, and length can be NULL or specified
#'
#'
#' - WARNINGS
#' - WARNINGS
#' The function tests what is written in its arguments, even if what is written is incoherent. For instance, fun_check(data = factor(1), class = "factor", mode = "character") will return a problem, whatever the object tested in the data argument, because no object can be class "factor" and mode "character" (factors are class "factor" and mode "numeric"). Of note, length of object of class "environment" is always 0
#' The function tests what is written in its arguments, even if what is written is incoherent. For instance, fun_check(data = factor(1), class = "factor", mode = "character") will return a problem, whatever the object tested in the data argument, because no object can be class "factor" and mode "character" (factors are class "factor" and mode "numeric"). Of note, length of object of class "environment" is always 0
#' Check if the specified R packages are present in the computer and import them into the working environment
#' Check if the specified R packages are present in the computer and import them into the working environment
#' @param req.package Character vector of package names to import
#' @param req.package Character vector of package names to import
#' @param load Logical. Load the package into the environement (using library())? Interesting if packages are not in default folders or for checking the functions names of packages using search()
#' @param load Logical. Load the package into the environment (using library())? Interesting if packages are not in default folders or for checking the functions names of packages using search()
#' @param lib.path Optional character vector specifying the absolute pathways of the directories containing some of the listed packages in the req.package argument, if not in the default directories. Ignored if NULL
#' @param lib.path Optional character vector specifying the absolute pathways of the directories containing some of the listed packages in the req.package argument, if not in the default directories. Ignored if NULL