#' #' Calcul des facteurs de croissance annuels des EPRC estimés par âge
#' #'
#' #' Ce module calcule les facteurs de croissance annuels des EPRC calculés pour
#' #' chaque âge (voir étape 1) afin de les appliquer sur les EPRC calculés à
#' #' partir du registre des rentes.
#' #'
#' #' @param list `tidylist`. Elément obligatoire dans tous les modules. Au lieu de
#' #'   fournir des dataframes au module, il est possible de l'alimenter uniquement
#' #'   avec une`tidylist` qui contient les tidy dataframes. Tous les datframes
#' #'   listés doivent être présents dans la tidylist, avec le même nom. De plus,
#' #'   la `tidylist` peut aussi contenir des dataframes qui ne sont pas utilisés
#' #'   par le module.
#' #'
#' #' @param PARAM_GLOBAL a single row data frame, of which we use the following
#' #'   parameters:
#' #'   - `jahr_rr`: année de l'évaluation du RR
#' #'
#' #' @param EPRC_ESTIMATION data frame contenant les EPRC calculés dans la
#' #' fonction \code{\link{mod_eprc_estimation}} grâce aux
#' #' données de la population et aux taux de mortalité de l'OFS.
#' #'
#' #' @references \href{https://www.bsv.admin.ch/dam/bsv/fr/dokumente/ahv/finanzperspektiven/validierung-modellansatz-ahv.pdf.download.pdf/2018_07_09_definitif_ld_rapport_ofas.pdf}{Rapport de Prof. Dr Laurent Donzé}
#' #'
#' #' @return une `tidylist` contenant le data frame suivant:
#' #' - FACTEURS_CROISSANCE_ANNUELS_EPRC_ESTIMES
#' #'
#' #' @author [MAS BSV](mailto:sekretariat.mas@bsv.admin.ch)
#' #'
#' #' @export
#' #'
#' 
#' # mod_facteurs_croissance_annuels_eprc_estimes_ <-
#' mod_facteurs_croissance_annuels_eprc_estimes <- function(PARAM_GLOBAL,
#'                                                          EPRC_ESTIMATION
#'                                                          ) {
#' 
#'     
#'     print("Run module: mod_facteurs_croissance_annuels_eprc_estimes")
#' 
#'   # --- Calcul des taux de croissance annuels pour chaque âge ---------------------
#' 
#'   # Remarque: EPRC_ESTIMATION commence en 1971 mais
#'   # FACTEURS_CROISSANCE_ANNUELS_EPRC_ESTIMES commence en jahr_rr!
#' 
#' 
#'   #-------Méthode pour contrôler les 0 des EPRC et de la population------------
#' 
#'   # Calculer les facteurs de croissance
#'   FACTEURS_CROISSANCE_ANNUELS_EPRC_ESTIMES <- EPRC_ESTIMATION %>%
#'     filter(jahr >= PARAM_GLOBAL$jahr_rr) %>%
#'     arrange(sex, nat, dom, alt, jahr) %>%
#'     group_by(sex, nat, dom, alt) %>%
#'     # Construire une population fake pour éviter de diviser par 0 (si popu= 0 en
#'     # t et en t-1, facteur de croissance = 1)
#'     mutate(
#'       bevendejahr_fake = if_else(bevendejahr == 0 &
#'         lag(bevendejahr) == 0,
#'       1, bevendejahr
#'       ),
#'       eprc_fake = if_else(eprc == 0 &
#'         lag(eprc) == 0,
#'       1, eprc
#'       )
#'     ) %>%
#'     mutate(
#'       bevendejahr_fake = if_else(is.na(bevendejahr_fake) &
#'         jahr == PARAM_GLOBAL$jahr_rr,
#'       1, bevendejahr_fake
#'       ),
#'       eprc_fake = if_else(is.na(eprc_fake) &
#'         jahr == PARAM_GLOBAL$jahr_rr,
#'       1, eprc_fake
#'       )
#'     ) %>%
#'     # Construction des facteurs de croissance
#'     mutate(
#'       wachstumsfaktor = eprc_fake / lag(eprc_fake),
#'       wachstumsfaktor_popu = bevendejahr_fake / lag(bevendejahr_fake)
#'     ) %>%
#'     mutate(wachstumsfaktor = if_else(is.na(wachstumsfaktor) &
#'       jahr == min(jahr),
#'     1,
#'     wachstumsfaktor
#'     )) %>%
#'     mutate(wachstumsfaktor_popu = if_else(is.na(wachstumsfaktor_popu) &
#'       jahr == min(jahr),
#'     1,
#'     wachstumsfaktor_popu
#'     )) %>%
#'     ungroup()
#' 
#' 
#'   stopifnot(nrow(filter(FACTEURS_CROISSANCE_ANNUELS_EPRC_ESTIMES, is.na(wachstumsfaktor))) == 0)
#' 
#'   return(FACTEURS_CROISSANCE_ANNUELS_EPRC_ESTIMES = FACTEURS_CROISSANCE_ANNUELS_EPRC_ESTIMES)
#' }
