Ejemplo n.º 1
0
    def test_PensionBrutCOR(self):
        # Calcul de la pension annuelle (brut) de droit direct
        simulateur = SimulateurRetraites()
        analyse = simulateur.pilotageCOR()
        analyse.dessineVariable("PensionBrut")

        # Vérifie quelques valeurs numériques observées
        # Source : Les retraités et les retraites, Edition 2017,
        # Panoramas de la DREES
        for s in simulateur.scenarios:
            np.testing.assert_allclose(
                analyse.PensionBrut[s][2005],
                1224.0 * 12.0 / 1000.0,
                rtol=5.0e-2,
            )
            np.testing.assert_allclose(
                analyse.PensionBrut[s][2015],
                1520.0 * 12.0 / 1000.0,
                rtol=5.0e-2,
            )
        # Vérifie les ordres de grandeurs des calculs
        for s in simulateur.scenarios:
            for a in simulateur.annees:
                np.testing.assert_allclose(analyse.PensionBrut[s][a],
                                           20.0,
                                           atol=8.0)
        return None
Ejemplo n.º 2
0
    def test_pilotageParSoldePensionAge(self):
        simulateur = SimulateurRetraites()

        Ss = 0.0
        Ps = 0.5
        As = 62.0
        analyse = simulateur.pilotageParSoldePensionAge(Scible=Ss,
                                                        Pcible=Ps,
                                                        Acible=As)

        # Vérifie les valeurs imposées à partir de 2020
        for s in simulateur.scenarios:
            for a in simulateur.annees:
                if (a < 2020):
                    np.testing.assert_allclose(analyse.T[s][a],
                                               simulateur.T[s][a])
                    np.testing.assert_allclose(analyse.P[s][a],
                                               simulateur.P[s][a])
                    np.testing.assert_allclose(analyse.A[s][a],
                                               simulateur.A[s][a])
                else:
                    #print("s=%s, a=%s, S=%s" % (s, a, analyse.S[s][a]))
                    np.testing.assert_allclose(analyse.S[s][a], Ss)
                    np.testing.assert_allclose(analyse.P[s][a], Ps)
                    np.testing.assert_allclose(analyse.A[s][a], As)

        return None
Ejemplo n.º 3
0
    def test_pilotage5_FixeAge(self):
        # Pilotage 5 : calcul à âge et dépenses définis
        # Fixe l'âge à une valeur non nulle

        simulateur = SimulateurRetraites()
        
        analyse = simulateur.pilotageParSoldeAgeDepenses(Acible = 62.0, Scible = 0.0)
        analyse.setDirectoryImage(tempfile.gettempdir())
    
        pl.figure(figsize=(8,10))
        pl.suptitle(u"Equilibre financier, age et dépenses définies")
        analyse.dessineSimulation()
        
        pl.figure()
        analyse.setLabelLongs(False)
        analyse.graphique("Depenses")
        
        analyse.dessineLegende()
            
        # Vérifie les valeurs imposées à partir de 2020
        analyse_COR = simulateur.pilotageCOR()
        for s in simulateur.scenarios:
            for a in simulateur.annees:
                if (a<2020):
                    np.testing.assert_allclose(analyse.T[s][a], simulateur.T[s][a])
                    np.testing.assert_allclose(analyse.P[s][a], simulateur.P[s][a])
                    np.testing.assert_allclose(analyse.A[s][a], simulateur.A[s][a])
                else:
                    #print("s=%s, a=%s, S=%s" % (s, a, analyse.S[s][a]))
                    np.testing.assert_allclose(analyse.A[s][a], 62.0)
                    np.testing.assert_allclose(analyse.Depenses[s][a], analyse_COR.Depenses[s][a])
                    np.testing.assert_allclose(analyse.S[s][a], 0., atol=1.e-15)

        return None
Ejemplo n.º 4
0
    def test_4(self):
        # Pilotage 2 : calcul à cotisations et pensions définies
        # génération des graphes pour la réforme Macron avec point indexé sur 
        # le salaire moyen (rapport (pension moyenne/)(salaire moyen) constant égal à celui de 2020)

        simulateur = SimulateurRetraites()
        pl.figure(figsize=(6,8))
        pl.suptitle(u'Equilibre financier & ratio pension/salaire fixe',fontsize=12)

        Pcible=simulateur.P[1][2020]
        analyse = simulateur.pilotageParSoldePensionCotisations(Scible=0.0, Pcible=Pcible)
        analyse.setDirectoryImage(tempfile.gettempdir())

        analyse.dessineSimulation()
        analyse.sauveFigure("macron_point_indexe")

        print("Maintien du rapport pension moyenne / salaire moyen")
        analyse.afficheSolutionsSimulateurCOR()

        # Vérifie les valeurs
        for s in simulateur.scenarios:
            for a in simulateur.annees:
                if (a<2020):
                    np.testing.assert_allclose(analyse.T[s][a], simulateur.T[s][a])
                    np.testing.assert_allclose(analyse.P[s][a], simulateur.P[s][a])
                    np.testing.assert_allclose(analyse.A[s][a], simulateur.A[s][a])
                else:
                    #print("s=%s, a=%s, S=%s" % (s, a, analyse.S[s][a]))
                    np.testing.assert_allclose(analyse.T[s][a], simulateur.T[s][a])
                    np.testing.assert_allclose(analyse.P[s][a], simulateur.P[s][2020])
                    np.testing.assert_allclose(analyse.S[s][a], 0.0, atol=1.e-15)
        return None
    def test_InitCOREI(self):
        """
        Teste la création de l'objet ModelePensionProbabiliste lorsqu'on
        utilise un âge qui dépend de l'année.
        """
        simulateur = SimulateurRetraites()
        S = 0.0
        D = 0.14
        annee = 2050
        modele = ModelePensionProbabiliste(
            simulateur, annee, S, D, bornesAgeConstant=False
        )
        # Vérifie la fonction
        fonction = modele.getFonction()
        dim = fonction.getInputDimension()
        self.assertEqual(dim, 3)
        # Vérifie la distribution
        inputDistribution = modele.getInputDistribution()
        dim = inputDistribution.getDimension()
        self.assertEqual(dim, 3)

        # Idem en 2020 : l'âge min est égal à l'âge max
        # la distribution est un Dirac
        simulateur = SimulateurRetraites()
        S = 0.0
        D = 0.14
        annee = 2020
        modele = ModelePensionProbabiliste(
            simulateur, annee, S, D, bornesAgeConstant=False
        )

        return None
Ejemplo n.º 6
0
    def test_pilotageParAgeCotisationsDepenses(self):
        simulateur = SimulateurRetraites()

        As = 62.0
        Ts = 0.28
        Ds = 0.13
        analyse = simulateur.pilotageParAgeCotisationsDepenses(Acible=As,
                                                               Tcible=Ts,
                                                               Dcible=Ds)

        # Vérifie les valeurs imposées à partir de 2020
        for s in simulateur.scenarios:
            for a in simulateur.annees:
                if a < 2020:
                    np.testing.assert_allclose(analyse.T[s][a],
                                               simulateur.T[s][a])
                    np.testing.assert_allclose(analyse.P[s][a],
                                               simulateur.P[s][a])
                    np.testing.assert_allclose(analyse.A[s][a],
                                               simulateur.A[s][a])
                else:
                    # print("s=%s, a=%s, S=%s" % (s, a, analyse.S[s][a]))
                    np.testing.assert_allclose(analyse.A[s][a], As)
                    np.testing.assert_allclose(analyse.T[s][a], Ts)
                    np.testing.assert_allclose(analyse.Depenses[s][a], Ds)

        return None
Ejemplo n.º 7
0
    def test_pilotageParSoldeAgeCotisations(self):
        simulateur = SimulateurRetraites()

        Ss = 0.0
        As = 62.0
        Ts = 0.28
        analyse = simulateur.pilotageParSoldeAgeCotisations(Scible=Ss,
                                                            Acible=As,
                                                            Tcible=Ts)

        # Vérifie les valeurs imposées à partir de 2020
        for s in simulateur.scenarios:
            for a in simulateur.annees:
                if a < 2020:
                    np.testing.assert_allclose(analyse.T[s][a],
                                               simulateur.T[s][a])
                    np.testing.assert_allclose(analyse.P[s][a],
                                               simulateur.P[s][a])
                    np.testing.assert_allclose(analyse.A[s][a],
                                               simulateur.A[s][a])
                else:
                    # print("s=%s, a=%s, S=%s" % (s, a, analyse.S[s][a]))
                    np.testing.assert_allclose(analyse.S[s][a], Ss, atol=1e-15)
                    np.testing.assert_allclose(analyse.A[s][a], As)
                    np.testing.assert_allclose(analyse.T[s][a], Ts)

        return None
Ejemplo n.º 8
0
    def test_pilotageParSoldePensionDepenses(self):
        simulateur = SimulateurRetraites()

        Ss = 0.0
        Ps = 0.5
        Ds = 0.13
        analyse = simulateur.pilotageParSoldePensionDepenses(Scible=Ss,
                                                             Pcible=Ps,
                                                             Dcible=Ds)

        # Vérifie les valeurs imposées à partir de 2020
        for s in simulateur.scenarios:
            for a in simulateur.annees:
                if a < 2020:
                    np.testing.assert_allclose(analyse.T[s][a],
                                               simulateur.T[s][a])
                    np.testing.assert_allclose(analyse.P[s][a],
                                               simulateur.P[s][a])
                    np.testing.assert_allclose(analyse.A[s][a],
                                               simulateur.A[s][a])
                else:
                    # print("s=%s, a=%s, S=%s" % (s, a, analyse.S[s][a]))
                    np.testing.assert_allclose(analyse.S[s][a], Ss, atol=1e-15)
                    np.testing.assert_allclose(analyse.P[s][a], Ps)
                    np.testing.assert_allclose(analyse.Depenses[s][a], Ds)

        return None
Ejemplo n.º 9
0
    def test_3(self):
        # Pilotage 3 : calcul à cotisations et niveau de vie défini
        # génération des graphes pour la réforme Macron avec maintien du niveau de vie

        simulateur = SimulateurRetraites()
                    
        RNV=1.0
        analyse = simulateur.pilotageParNiveauDeVieEtCotisations(RNVcible=RNV, Scible=0.0)
        analyse.setDirectoryImage(tempfile.gettempdir())
        
        pl.figure(figsize=(6,8))
        pl.suptitle(u'Equilibre financier & maintien du niveau de vie',fontsize=12)
        analyse.dessineSimulation()
        
        print("Maintien du niveau de vie")
        analyse.afficheSolutionsSimulateurCOR()
        
        analyse.sauveFigure("macron_niveau_de_vie")
        
        # Vérifie les valeurs
        for s in simulateur.scenarios:
            for a in simulateur.annees:
                if (a<2020):
                    np.testing.assert_allclose(analyse.T[s][a], simulateur.T[s][a])
                    np.testing.assert_allclose(analyse.P[s][a], simulateur.P[s][a])
                    np.testing.assert_allclose(analyse.A[s][a], simulateur.A[s][a])
                else:
                    #print("s=%s, a=%s, S=%s" % (s, a, analyse.S[s][a]))
                    np.testing.assert_allclose(analyse.T[s][a], 0.3, atol=0.3)
                    np.testing.assert_allclose(analyse.RNV[s][a], RNV)
                    np.testing.assert_allclose(analyse.S[s][a], 0.0, atol=1.e-15)

        return None
Ejemplo n.º 10
0
    def test_article3(self):
        # Pilotage 4 : calcul à cotisations et âge définis

        print("Données et figures pour article 3")

        simulateur = SimulateurRetraites()
        Age = 62.0
        analyse = simulateur.pilotageParSoldeAgeCotisations(Scible=0.0,
                                                            Acible=Age)
        analyse.setDirectoryImage(tempfile.gettempdir())

        pl.figure(figsize=(6, 8))
        pl.suptitle(u"Equilibre financier, cotisations et âge définis")
        analyse.dessineSimulation()

        titre = (
            u"Modèle du COR: Réforme Macron (éq. financier & départ à 62 ans)")

        pl.figure(figsize=(9, 6))
        analyse.dessineVariable("RNV")
        pl.suptitle(titre, fontsize=14)
        pl.legend(loc="best")
        analyse.sauveFigure("macron_62_ans_nv")

        pl.figure(figsize=(9, 6))
        analyse.dessineVariable("P")
        pl.suptitle(titre, fontsize=14)
        pl.legend(loc="best")
        analyse.sauveFigure("macron_62_ans_p")

        print("Réforme Macron, Départ à 62 ans")
        analyse.afficheSolutionsSimulateurCOR()
        print("\nEvolution du niveau de vie:")
        analyse.afficheVariable(analyse.RNV)
        print("\nEvolution du ratio pension/salaire:")
        analyse.afficheVariable(analyse.P)

        # Vérifie les valeurs
        for s in simulateur.scenarios:
            for a in simulateur.annees:
                if a < 2020:
                    np.testing.assert_allclose(analyse.T[s][a],
                                               simulateur.T[s][a])
                    np.testing.assert_allclose(analyse.P[s][a],
                                               simulateur.P[s][a])
                    np.testing.assert_allclose(analyse.A[s][a],
                                               simulateur.A[s][a])
                else:
                    # print("s=%s, a=%s, S=%s" % (s, a, analyse.S[s][a]))
                    np.testing.assert_allclose(analyse.T[s][a],
                                               simulateur.T[s][a])
                    np.testing.assert_allclose(analyse.A[s][a], Age)
                    np.testing.assert_allclose(analyse.S[s][a],
                                               0.0,
                                               atol=1.0e-15)
        return None
Ejemplo n.º 11
0
    def test_article2(self):
        # Pilotage 3 : calcul à cotisations et niveau de vie défini
        print("Données et figure pour article 2")

        simulateur = SimulateurRetraites()
        analyse = simulateur.pilotageParNiveauDeVieEtCotisations(RNVcible=1.0,
                                                                 Scible=0.0)
        analyse.setDirectoryImage(tempfile.gettempdir())

        pl.figure(figsize=(9, 6))
        analyse.dessineVariable("A")
        pl.suptitle(
            u"Modèle du COR: Réforme Macron (éq."
            "financier & niveau de vie maintenu)",
            fontsize=14,
        )
        pl.legend(loc="best")
        analyse.sauveFigure("macron_68_ans")

        pl.figure(figsize=(9, 6))
        analyse.dessineVariable("A")
        pl.suptitle(
            u"Modèle du COR: Réforme Macron (éq."
            "financier & niveau de vie maintenu)",
            fontsize=14,
        )
        pl.legend(loc="best")
        analyse.sauveFigure("macron_68_ans_tout")

        print("Réforme Macron, Maintien du niveau de vie")
        analyse.afficheSolutionsSimulateurCOR()

        # Vérifie les valeurs
        for s in simulateur.scenarios:
            for a in simulateur.annees:
                if a < 2020:
                    np.testing.assert_allclose(analyse.T[s][a],
                                               simulateur.T[s][a])
                    np.testing.assert_allclose(analyse.P[s][a],
                                               simulateur.P[s][a])
                    np.testing.assert_allclose(analyse.A[s][a],
                                               simulateur.A[s][a])
                else:
                    # print("s=%s, a=%s, S=%s" % (s, a, analyse.S[s][a]))
                    np.testing.assert_allclose(analyse.T[s][a],
                                               simulateur.T[s][a])
                    np.testing.assert_allclose(analyse.RNV[s][a], 1.0)
                    np.testing.assert_allclose(analyse.S[s][a],
                                               0.0,
                                               atol=1.0e-15)
        return None
Ejemplo n.º 12
0
    def test_2(self):
        # Pilotage 1 : calcul à âge et niveau de vie défini
        # génération des graphes pour des réformes à prestation garantie

        simulateur = SimulateurRetraites()
        S = 0.0
        Age = 61.0
        RNV = 1.0
        analyse = simulateur.pilotageParAgeEtNiveauDeVie(Acible=Age,
                                                         RNVcible=RNV,
                                                         Scible=S)
        analyse.setDirectoryImage(tempfile.gettempdir())

        pl.figure(figsize=(6, 8))
        if Age != 0:
            pl.suptitle(
                (u"Eq. financier, maintien du niveau"
                 "de vie & départ à %d ans" % (Age)),
                fontsize=10,
            )
        else:
            pl.suptitle(u"Equilibre financier & maintien du niveau de vie",
                        fontsize=1)

        analyse.dessineSimulation()

        if Age != 0:
            analyse.sauveFigure(("%dans" % (Age)))
        else:
            analyse.sauveFigure("cotisations")

        # Vérifie les valeurs imposées à partir de 2020
        for s in simulateur.scenarios:
            for a in simulateur.annees:
                if a < 2020:
                    np.testing.assert_allclose(analyse.T[s][a],
                                               simulateur.T[s][a])
                    np.testing.assert_allclose(analyse.P[s][a],
                                               simulateur.P[s][a])
                    np.testing.assert_allclose(analyse.A[s][a],
                                               simulateur.A[s][a])
                else:
                    # print("s=%s, a=%s, S=%s" % (s, a, analyse.S[s][a]))
                    np.testing.assert_allclose(analyse.A[s][a], Age)
                    np.testing.assert_allclose(analyse.RNV[s][a], RNV)
                    np.testing.assert_allclose(analyse.S[s][a],
                                               S,
                                               atol=1.0e-15)

        return None
Ejemplo n.º 13
0
    def test_PilotageParSoldePensionDuree(self):
        # Pilotage 11 : fixe la durée de vie en retraite
        simulateur = SimulateurRetraites()
        REVcible = 0.30
        Acible = simulateur.calculeAge(REVcible=REVcible)
        analyse = simulateur.pilotageParSoldePensionAge(Acible=Acible)
        analyse.dessineVariable("REV")

        # Vérifie la durée de vie en retraite
        for s in simulateur.scenarios:
            for a in simulateur.annees_futures:
                np.testing.assert_allclose(analyse.REV[s][a],
                                           REVcible,
                                           rtol=1.0e-2)
        return None
    def test_AgeParAnnee(self):
        simulateur = SimulateurRetraites()
        etudeImpact = EtudeImpact(simulateur)

        # Vérifie l'age par année et par génération
        
        # Génération 1975
        an = 1975.0
        ageDepart_reference = 63.6
        ageDepart = etudeImpact.ageDepartParGeneration(an)
        print("Generation",an, ", ageDepart", ageDepart)
        np.testing.assert_allclose(ageDepart, ageDepart_reference, atol= 0.1)
        anneeDepart = 2038.6 # 1975.0 + 63.6
        ageDepart = etudeImpact.ageDepartParAnnee(anneeDepart)
        print("Annee",anneeDepart, ", ageDepart", ageDepart)
        np.testing.assert_allclose(ageDepart, ageDepart_reference, atol= 0.1)
        
        # Génération 2000
        an = 2000.0
        ageDepart_reference = 65.2
        ageDepart = etudeImpact.ageDepartParGeneration(an)
        print("Generation",an, ", ageDepart", ageDepart)
        np.testing.assert_allclose(ageDepart, ageDepart_reference, atol= 0.1)
        anneeDepart = 2065.2 # 2000.0 + 65.2
        ageDepart = etudeImpact.ageDepartParAnnee(anneeDepart)
        print("Annee",anneeDepart, ", ageDepart", ageDepart)
        np.testing.assert_allclose(ageDepart, ageDepart_reference, atol= 0.1)
        return None
Ejemplo n.º 15
0
 def test_PensionParAnnee(self):
     """
     Vérifie P par comparaison avec les calculs du COR
     """
     simulateur = SimulateurRetraites()
     analyse = simulateur.pilotageCOR()
     for annee in simulateur.annees:
         for scenario in [
                 simulateur.scenario_central,
                 simulateur.scenario_optimiste,
                 simulateur.scenario_pessimiste,
         ]:
             Y = CalculePAvecModelePension(annee, scenario)[0]
             Y_exact = analyse.P[scenario][annee]
             np.testing.assert_allclose(Y, Y_exact)
     return None
Ejemplo n.º 16
0
def CalculePAvecModelePension(annee, scenario):
    """
    Pour une annéee et un scenario, calcule P avec les paramètres
    du COR.
    """
    simulateur = SimulateurRetraites()
    modele = FonctionPension(simulateur, annee)
    analyse = simulateur.pilotageCOR()
    # Evaluation
    S = analyse.S[scenario][annee]
    D = analyse.Depenses[scenario][annee]
    As = analyse.A[scenario][annee]
    F = 0.5
    TauC = simulateur.scenarios_chomage[scenario]
    X = ot.Point([S, D, As, F, TauC])
    Y = modele(X)
    return Y
Ejemplo n.º 17
0
    def test_simulateur_retraites(self):
        # génération des graphes sur la conjoncture
        simulateur = SimulateurRetraites()
        
        simulateur.setDirectoryImage(tempfile.gettempdir())

        pl.figure(figsize=(10,8))
        pl.suptitle(u"Projections du COR (hypothèses)",fontsize=16)
        simulateur.dessineConjoncture()
        
        simulateur.sauveFigure("conjoncture")
        return None
Ejemplo n.º 18
0
    def test_Specifie_JSON(self):
        # génération des graphes pour le statu quo (COR)
        simulateur = SimulateurRetraites('../retraites/fileProjection.json')
        
        pl.figure(figsize=(6,8))
        pl.suptitle('Projections du COR',fontsize=16)
        
        analyse = simulateur.pilotageCOR()

        # Vérifie les ordres de grandeurs des calculs
        for s in simulateur.scenarios:
            for a in simulateur.annees:
                #print("s=%s, a=%s, S=%s" % (s, a, analyse.S[s][a]))
                np.testing.assert_allclose(analyse.A[s][a], 64.0, atol=4.0)
                np.testing.assert_allclose(analyse.RNV[s][a], 0.8, atol=0.3)
                np.testing.assert_allclose(analyse.S[s][a], 0.0, atol=0.02)
                np.testing.assert_allclose(analyse.REV[s][a], 0.3, atol=0.2)
                np.testing.assert_allclose(analyse.T[s][a], 0.3, atol=0.3)
                np.testing.assert_allclose(analyse.P[s][a], 0.5, atol=0.3)
        return None
Ejemplo n.º 19
0
    def test_PIB(self):
        # Calcul du PIB
        simulateur = SimulateurRetraites()
        analyse = simulateur.pilotageCOR()
        analyse.graphique("PIB")

        # Vérifie quelques valeurs numériques observées
        # Source : https://fr.wikipedia.org/wiki/Produit_int%C3%A9rieur_brut_de_la_France
        for s in simulateur.scenarios:
            np.testing.assert_allclose(analyse.PIB[s][2005], 1772.0)
            np.testing.assert_allclose(analyse.PIB[s][2018], 2353.1)
        # Vérifie les ordres de grandeurs des calculs
        for s in simulateur.scenarios:
            for a in simulateur.annees:
                np.testing.assert_allclose(analyse.PIB[s][a],
                                           2300.0,
                                           atol=4000.0)
        # Vérifie que la série est croissante dans le futur
        for s in simulateur.scenarios:
            for a in simulateur.annees_futures:
                if a < simulateur.horizon:
                    self.assertTrue(analyse.PIB[s][a] < analyse.PIB[s][a + 1])
        return None
 def test_Init(self):
     """
     Teste la création de l'objet ModelePensionProbabiliste.
     """
     simulateur = SimulateurRetraites()
     S = 0.0
     D = 0.14
     annee = 2050
     modele = ModelePensionProbabiliste(simulateur, annee, S, D)
     # Vérifie la fonction
     fonction = modele.getFonction()
     dim = fonction.getInputDimension()
     self.assertEqual(dim, 3)
     # Vérifie la distribution
     inputDistribution = modele.getInputDistribution()
     dim = inputDistribution.getDimension()
     self.assertEqual(dim, 3)
     return None
Ejemplo n.º 21
0
    def test_0(self):
        simulateur = SimulateurRetraites()
        etudeImpact = EtudeImpact(simulateur)
        analyse = etudeImpact.calcule()

        # Vérifie les ordres de grandeurs des calculs
        for s in simulateur.scenarios:
            for a in simulateur.annees:
                np.testing.assert_allclose(analyse.A[s][a], 64.0, atol=4.0)
                np.testing.assert_allclose(analyse.RNV[s][a], 0.8, atol=0.3)
                np.testing.assert_allclose(analyse.S[s][a], 0.0, atol=0.02)
                np.testing.assert_allclose(analyse.REV[s][a], 0.3, atol=0.2)
                np.testing.assert_allclose(analyse.T[s][a], 0.3, atol=0.3)
                np.testing.assert_allclose(analyse.P[s][a], 0.5, atol=0.3)

        # Vérifie la cohérence interne de l'objet
        for s in simulateur.scenarios:
            for a in simulateur.annees:
                np.testing.assert_allclose(analyse.A[s][a],
                                           etudeImpact.As[s][a])
                np.testing.assert_allclose(analyse.S[s][a],
                                           etudeImpact.Ss[s][a],
                                           atol=1.0e-7)
                np.testing.assert_allclose(analyse.Depenses[s][a],
                                           etudeImpact.Ds[s][a])

        # Vérifie précisément certaines valeurs numériques
        s = 2  # on se concentre sur le scenario 1,3% croissance
        a = 2030
        np.testing.assert_allclose(etudeImpact.As[s][a], 63.0, atol=0.1)
        np.testing.assert_allclose(etudeImpact.Ss[s][a], 0.0, atol=1.0e-7)
        np.testing.assert_allclose(etudeImpact.Ds[s][a], 0.135, atol=0.001)
        a = 2050
        np.testing.assert_allclose(etudeImpact.As[s][a], 64.3, atol=0.1)
        np.testing.assert_allclose(etudeImpact.Ss[s][a], 0.0, atol=1.0e-7)
        np.testing.assert_allclose(etudeImpact.Ds[s][a], 0.129, atol=0.001)
        a = 2070
        np.testing.assert_allclose(etudeImpact.As[s][a], 65.5, atol=0.1)
        np.testing.assert_allclose(etudeImpact.Ss[s][a], 0.0, atol=1.0e-7)
        np.testing.assert_allclose(etudeImpact.Ds[s][a], 0.126, atol=0.001)
        return None
Ejemplo n.º 22
0
 def test_Init(self):
     simulateur = SimulateurRetraites()
     # Initialisation
     annee = 2020
     modele = FonctionPension(simulateur, annee)
     # Evaluation
     S = 0.0
     D = 0.14
     As = 63.0
     F = 0.5
     TauC = 7.00
     X = ot.Point([S, D, As, F, TauC])
     Y = modele(X)
     Y_exact = [0.547295]
     np.testing.assert_allclose(Y, Y_exact)
     # Description
     description = modele.getInputDescription()
     self.assertEqual(description, ["S", "D", "As", "F", "TauC"])
     description = modele.getOutputDescription()
     self.assertEqual(description, ["P"])
     return None
Ejemplo n.º 23
0
 def test_GetSample(self):
     """
     Teste l'utilisation de l'objet ModelePensionProbabiliste.
     """
     simulateur = SimulateurRetraites()
     S = 0.0
     D = 0.14
     annee = 2050
     modele = ModelePensionProbabiliste(simulateur, annee, S, D)
     fonction = modele.getFonction()
     inputDistribution = modele.getInputDistribution()
     # Crée un vecteur aléatoire
     inputRandomVector = ot.RandomVector(inputDistribution)
     outputRandomVector = ot.CompositeRandomVector(fonction,
                                                   inputRandomVector)
     sampleSize = 100
     sample = outputRandomVector.getSample(sampleSize)
     # Vérifie l'échantillon
     dim = sample.getDimension()
     self.assertEqual(dim, 1)
     size = sample.getSize()
     self.assertEqual(size, sampleSize)
     return None
#!/usr/bin/python
# coding:utf-8

from retraites.SimulateurRetraites import SimulateurRetraites

simulateur = SimulateurRetraites()
analyse = simulateur.pilotageCOR()
analyse.afficheSolutionsSimulateurCOR()

Ejemplo n.º 25
0
    def test_graphiquesSimulateur(self):
        # Graphiques de la classe SimulateurRetraites
        simulateur = SimulateurRetraites()

        simulateur.setDirectoryImage(tempfile.gettempdir())

        pl.figure(figsize=(6, 8))
        pl.suptitle("Projections du COR", fontsize=16)
        simulateur.dessineConjoncture()
        pl.close()

        # Teste les options des graphiques
        pl.figure()
        simulateur.dessineVariable("B")
        pl.close()

        pl.figure()
        simulateur.dessineVariable("B", simulateur.B)
        pl.close()

        pl.figure()
        simulateur.dessineVariable("B", dessine_legende=True)
        pl.close()

        pl.figure()
        simulateur.dessineVariable("B", scenarios_indices=range(1, 5))
        pl.close()

        pl.figure()
        simulateur.dessineVariable("B", dessine_annees=range(2020, 2041))
        pl.close()

        pl.figure()
        simulateur.dessineVariable("B", taille_fonte_titre=14)
        pl.close()

        pl.figure()
        simulateur.dessineVariable("G")
        pl.close()

        pl.figure()
        simulateur.dessineVariable("NR")
        pl.close()

        pl.figure()
        simulateur.dessineVariable("NC")
        pl.close()

        pl.figure()
        simulateur.dessineVariable("dP")
        pl.close()

        pl.figure()
        simulateur.dessineVariable("TPR")
        pl.close()

        pl.figure()
        simulateur.dessineVariable("TPS")
        simulateur.sauveFigure("TPS")
        pl.close()

        # Configure des longs titres
        simulateur.setLabelLongs(True)
        simulateur.dessineVariable("CNV")
        pl.close()

        # Dessine la légende
        simulateur.dessineLegende()
        simulateur.sauveFigure("EV")
        pl.close()

        return None
Ejemplo n.º 26
0
    def test_graphiques(self):
        # génération des graphes pour le statu quo (COR)
        simulateur = SimulateurRetraites()
        
        
        analyse = simulateur.pilotageCOR()
        analyse.setDirectoryImage(tempfile.gettempdir())

        pl.figure(figsize=(6,8))
        pl.suptitle('Projections du COR',fontsize=16)
        analyse.dessineSimulation()
        pl.close()
        
        # Teste les options des graphiques
        pl.figure()
        analyse.graphique("P", analyse.P)
        pl.close()

        pl.figure()
        analyse.graphique("P")
        pl.close()

        pl.figure()
        analyse.graphique("P", dessine_legende = True)
        pl.close()

        pl.figure()
        analyse.graphique("P", scenarios_indices = range(1,5))
        pl.close()

        pl.figure()
        analyse.graphique("P", dessine_annees = range(2020,2041))
        pl.close()

        pl.figure()
        analyse.graphique("P", taille_fonte_titre = 14)
        pl.close()

        pl.figure()
        analyse.graphique("A")
        pl.close()

        pl.figure()
        analyse.graphique("S")
        pl.close()

        pl.figure()
        analyse.graphique("T")
        pl.close()

        pl.figure()
        analyse.graphique("RNV")
        pl.close()

        pl.figure()
        analyse.graphique("REV")
        pl.close()

        pl.figure()
        analyse.graphique("Depenses")
        analyse.sauveFigure("Depenses")
        pl.close()

        # Configure des longs titres
        analyse.setLabelLongs(True)
        analyse.graphique("P", analyse.P)
        pl.close()
        
        # Dessine la légende
        analyse.dessineLegende()
        analyse.sauveFigure("Legende")    
        pl.close()

        analyse.afficheSolutionsSimulateurCOR()

        return None