<commit_before># -*- coding:utf-8 -*-
#
# This file is part of OpenFisca.
# OpenFisca is a socio-fiscal microsimulation software
# Copyright © 2011 <NAME>, <NAME>
# Licensed under the terms of the GPL (version 3 or later) license
# (see openfisca/__init__.py for details)

from __future__ import division

from numpy import (zeros, maximum as max_, minimum as min_, logical_not as not_)
from openfisca_core.accessors import law

from .input_variables.base import QUIFAM, QUIFOY


CHEF = QUIFAM['chef']
PART = QUIFAM['part']
ENFS = [QUIFAM['enf1'], QUIFAM['enf2'], QUIFAM['enf3'], QUIFAM['enf4'], QUIFAM['enf5'], QUIFAM['enf6'], QUIFAM['enf7'], QUIFAM['enf8'], QUIFAM['enf9'], ]
VOUS = QUIFOY['vous']


def _acs_montant__2009(self, age_holder):
    '''
    Calcule le montant de l'ACS en cas d'éligibilité (jusqu'au 31 juillet 2009)
    '''
    # TODO
    ages = self.filter_role(age_holder, role = CHEF)
    return 0*ages


def _acs_montant_2009_(self, age_holder, P = law.cmu):
    '''
    Calcule le montant de l'ACS en cas d'éligibilité (à compter du 1 août 2009)
    '''
    ages_couple = self.split_by_roles(age_holder, roles = [CHEF, PART])
    ages_pac = self.split_by_roles(age_holder, roles = ENFS)
    return 12 * ((nb_par_age(ages_couple, 0, 15) + nb_par_age(ages_pac, 0, 15)) * P.acs_moins_16_ans +
       (nb_par_age(ages_couple, 16, 49) + nb_par_age(ages_pac, 16, 25)) * P.acs_16_49_ans +
       nb_par_age(ages_couple, 50, 59) * P.acs_50_59_ans +
       nb_par_age(ages_couple, 60, 200) * P.acs_plus_60_ans)


def _cmu_forfait_logement_base(cmu_nbp_foyer, P = law.cmu.forfait_logement, law_rsa = law.minim.rmi):
    '''
    Calcule le forfait logement applicable en cas de propriété ou d'occupation à titre gratuit
    '''
    return forfait_logement(cmu_nbp_foyer, P, law_rsa)


def _cmu_forfait_logement_al(cmu_nbp_foyer, P = law.cmu.forfait_logement_al, law_rsa = law.minim.rmi):
    '''
    Calcule le forfait logement applicable en cas d'aide au logement
    '''
    return forfait_logement(cmu_nbp_foyer, P, law_rsa)


def _cmu_nbp_foyer(nb_par, cmu_nb_pac):
    '''
    Calcule le nombre de personnes dans le foyer CMU
    '''
    return nb_par + cmu_nb_pac


def _cmu_c_plafond(cmu_nbp_foyer, P = law.cmu):
    '''
    Calcule le plafond de ressources pour la CMU complémentaire
    TODO: Rajouter la majoration pour les DOM
    '''
    return (P.plafond_base * (1 +
        (cmu_nbp_foyer >= 2) * P.coeff_p2 +
        min_(2, cmu_nbp_foyer - 2) * P.coeff_p3_p4 +
        max_(0, cmu_nbp_foyer - 4) * P.coeff_p5_plus
    ))


def _acs_plafond(cmu_c_plafond, P = law.cmu):
    '''
    Calcule le plafond de ressources pour l'ACS
    '''
    return cmu_c_plafond * (1 + P.majoration_plafond_acs)


def _cmu_br_i(activite, sali, choi, rsti, alr, P = law.cmu):
    '''
    Calcule la base de ressource d'un individu pour la CMU
    '''<commit_msg>fix erreur de calcul plafond cmu-c<commit_after># -*- coding:utf-8 -*-
#
# This file is part of OpenFisca.
# OpenFisca is a socio-fiscal microsimulation software
# Copyright © 2011 <NAME>, <NAME>
# Licensed under the terms of the GPL (version 3 or later) license
# (see openfisca/__init__.py for details)

from __future__ import division

from numpy import (zeros, maximum as max_, minimum as min_, logical_not as not_)
from openfisca_core.accessors import law

from .input_variables.base import QUIFAM, QUIFOY


CHEF = QUIFAM['chef']
PART = QUIFAM['part']
ENFS = [QUIFAM['enf1'], QUIFAM['enf2'], QUIFAM['enf3'], QUIFAM['enf4'], QUIFAM['enf5'], QUIFAM['enf6'], QUIFAM['enf7'], QUIFAM['enf8'], QUIFAM['enf9'], ]
VOUS = QUIFOY['vous']


def _acs_montant__2009(self, age_holder):
    '''
    Calcule le montant de l'ACS en cas d'éligibilité (jusqu'au 31 juillet 2009)
    '''
    # TODO
    ages = self.filter_role(age_holder, role = CHEF)
    return 0*ages


def _acs_montant_2009_(self, age_holder, P = law.cmu):
    '''
    Calcule le montant de l'ACS en cas d'éligibilité (à compter du 1 août 2009)
    '''
    ages_couple = self.split_by_roles(age_holder, roles = [CHEF, PART])
    ages_pac = self.split_by_roles(age_holder, roles = ENFS)
    return 12 * ((nb_par_age(ages_couple, 0, 15) + nb_par_age(ages_pac, 0, 15)) * P.acs_moins_16_ans +
       (nb_par_age(ages_couple, 16, 49) + nb_par_age(ages_pac, 16, 25)) * P.acs_16_49_ans +
       nb_par_age(ages_couple, 50, 59) * P.acs_50_59_ans +
       nb_par_age(ages_couple, 60, 200) * P.acs_plus_60_ans)


def _cmu_forfait_logement_base(cmu_nbp_foyer, P = law.cmu.forfait_logement, law_rsa = law.minim.rmi):
    '''
    Calcule le forfait logement applicable en cas de propriété ou d'occupation à titre gratuit
    '''
    return forfait_logement(cmu_nbp_foyer, P, law_rsa)


def _cmu_forfait_logement_al(cmu_nbp_foyer, P = law.cmu.forfait_logement_al, law_rsa = law.minim.rmi):
    '''
    Calcule le forfait logement applicable en cas d'aide au logement
    '''
    return forfait_logement(cmu_nbp_foyer, P, law_rsa)


def _cmu_nbp_foyer(nb_par, cmu_nb_pac):
    '''
    Calcule le nombre de personnes dans le foyer CMU
    '''
    return nb_par + cmu_nb_pac


def _cmu_c_plafond(cmu_nbp_foyer, P = law.cmu):
    '''
    Calcule le plafond de ressources pour la CMU complémentaire
    TODO: Rajouter la majoration pour les DOM
    '''
    return (P.plafond_base * (1 +
        (cmu_nbp_foyer >= 2) * P.coeff_p2 +
        max_(0, min_(2, cmu_nbp_foyer - 2)) * P.coeff_p3_p4 +
        max_(0, cmu_nbp_foyer - 4) * P.coeff_p5_plus
    ))


def _acs_plafond(cmu_c_plafond, P = law.cmu):
    '''
    Calcule le plafond de ressources pour l'ACS
    '''
    return cmu_c_plafond * (1 + P.majoration_plafond_acs)


def _cmu_br_i(activite, sali, choi, rsti, alr, P = law.cmu):
    '''
    Calcule la base de ressource d'un individu pour la CMU
    '''
{'fraction_non_alphanumeric': 0.11627906976744186, 'fraction_numerical': 0.02898299201666088, 'mean_word_length': 3.8025, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4414154', 'n_tokens_mistral': 2548, 'n_tokens_neox': 2362, 'n_words': 560}