Mentions légales du service

Skip to content
Snippets Groups Projects
Commit 275a2d8a authored by Denis Merigoux's avatar Denis Merigoux
Browse files

Added relative/absolute diff for new child

parent 9d38a61f
Branches
No related tags found
No related merge requests found
......@@ -59,10 +59,18 @@ search_marginal_tax = MaxMarginalTaxRateSearch(
avoid_seuil_non_distribution_bourses_college=False,
)
search_new_child = MaxGainFromNewChild(
search_new_child_relative = MaxGainFromNewChild(
menage_constraints,
nb_personnes_a_charge_init=1,
age_nouvel_enfant=0
relative=True,
nb_personnes_a_charge_init=0,
age_nouvel_enfant=None
)
search_new_child_absolute = MaxGainFromNewChild(
menage_constraints,
relative=False,
nb_personnes_a_charge_init=0,
age_nouvel_enfant=None
)
search_different_distribution_revenus = MaxGainFromDifferentRevenueDistribution(
......
......@@ -436,10 +436,12 @@ class MaxGainFromNewChild(DichotomicSearch):
def __init__(self,
menage_constraints: MenageConstraints,
relative: bool,
nb_personnes_a_charge_init: Optional[int]=None,
age_nouvel_enfant: Optional[int]=None
age_nouvel_enfant: Optional[int]=None,
):
self.menage_constraints_ = menage_constraints
self.relative = relative
self.nb_personnes_a_charge_init = nb_personnes_a_charge_init
self.age_nouvel_enfant = age_nouvel_enfant
......@@ -520,7 +522,10 @@ class MaxGainFromNewChild(DichotomicSearch):
if self.s1 is None:
raise TypeError("Error !")
if current_search_param_value >= 0:
deltai_min = self.s1 % Taux.pourcent(current_search_param_value)
if self.relative:
deltai_min = self.s1 % Taux.pourcent(current_search_param_value)
else:
deltai_min = Montant.euros(current_search_param_value, s)
else:
raise TypeError("Le gain doit être positif !")
return self.deltai >= deltai_min
......@@ -541,7 +546,11 @@ class MaxGainFromNewChild(DichotomicSearch):
relative_gain_found: float = float("inf")
else:
relative_gain_found = ratio * 100
return relative_gain_found
absolute_gain_found: float = deltai_m_print.to_float() # type:ignore
if self.relative:
return relative_gain_found
else:
return absolute_gain_found
def result_found_lines(self, s: Solver, new_search_param_value: float) -> List[Tuple[str, Any]]:
if self.deltai is None:
......@@ -549,7 +558,8 @@ class MaxGainFromNewChild(DichotomicSearch):
deltai_m = self.deltai // 12
return [
("Changement mensuel après redistribution", deltai_m),
("Gain relatif avec nouvel enfant", "{0:.1f}%".format(new_search_param_value))
(("Gain relatif avec nouvel enfant", "{0:.1f}%".format(new_search_param_value)) if self.relative else
("Gain absolu avec nouvel enfant", Montant.centimes(int(new_search_param_value * 100), s)))
]
def before_request_message(self, current_search_param_value: int) -> str:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment