Exemplo n.º 1
0
    def check(self):
        var_string = self.ui.lineEdit_var.text()
        shocks_string = self.ui.lineEdit_shocks.text()
        parameters_string = self.ui.lineEdit_parameters.text()
        params_definition = self.ui.plainTextEdit.toPlainText()
        initval_string = self.ui.plainTextEdit_2.toPlainText()
        l = [el.get_text() for el in self.widgets]
        l = [e for e in l if e]
        content = str.join(';\n', l)
        if len(l) > 0:
            content += ';'
        simple_mod = '''
var {vars};
varexo {varexo};
parameters {parms};
{params_definition}
model;
{equations}
end;
initval;
{initval_string}
end;
        '''.format(vars=var_string,
                   varexo=shocks_string,
                   parms=parameters_string,
                   equations=content,
                   params_definition=params_definition,
                   initval_string=initval_string)

        from dolo.misc.modfile import parse_dynare_text
        try:
            model = parse_dynare_text(simple_mod)
            model.check(verbose=True)
            info = model.info
            info['name'] = model.fname
            txt = '''
Model check {name}:
Number of variables :  {n_variables}
Number of equations :  {n_equations}
Number of shocks :     {n_shocks}'''.format(**info)
        except Exception as e:
            txt = '\nModel is not valid'
            self.ui.textEdit.setText(txt)
            return
        try:
            from dolo.numeric.perturbations import solve_decision_rule
            dr = solve_decision_rule(model, order=1)
            txt += '\nBlanchard-Kahn conditions are met.'
        except ImportError as e:
            txt += '\nImpossible to solve the model (lapack could not be imported)'
        except Exception as e:
            txt += '\nImpossible to solve the model (yet).'
            print e
        self.ui.textEdit.setText(txt)
Exemplo n.º 2
0
    def check(self):
        var_string = self.ui.lineEdit_var.text()
        shocks_string = self.ui.lineEdit_shocks.text()
        parameters_string = self.ui.lineEdit_parameters.text()
        params_definition = self.ui.plainTextEdit.toPlainText()
        initval_string = self.ui.plainTextEdit_2.toPlainText()
        l = [ el.get_text() for el in self.widgets]
        l = [ e for e in l if e]
        content = str.join(';\n',l)
        if len(l)>0:
            content += ';'
        simple_mod = '''
var {vars};
varexo {varexo};
parameters {parms};
{params_definition}
model;
{equations}
end;
initval;
{initval_string}
end;
        '''.format(vars = var_string,varexo = shocks_string,
        parms=parameters_string,equations = content,
        params_definition=params_definition, initval_string=initval_string)

        from dolo.misc.modfile import parse_dynare_text
        try:
            model = parse_dynare_text(simple_mod)
            model.check(verbose=True)
            info = model.info
            info['name'] = model.fname
            txt ='''
Model check {name}:
Number of variables :  {n_variables}
Number of equations :  {n_equations}
Number of shocks :     {n_shocks}'''.format(**info)
        except Exception as e:
            txt = '\nModel is not valid'
            self.ui.textEdit.setText(txt)            
            return
        try:
            from dolo.numeric.perturbations import solve_decision_rule
            dr = solve_decision_rule( model, order = 1 )
            txt += '\nBlanchard-Kahn conditions are met.'
        except ImportError as e:
            txt += '\nImpossible to solve the model (lapack could not be imported)'
        except Exception as e:
            txt += '\nImpossible to solve the model (yet).'
            print e
        self.ui.textEdit.setText(txt)
    def test_dynare_modfile_import(self):
        # we test whether each of the modfile included with dynare
        # can be imported successfully

        modfiles = os.listdir(DYNARE_MODFILES_PATH)
        results = []
        for mf in [m for m in modfiles if m not in exclude]:
            fname = DYNARE_MODFILES_PATH + mf
            try:
                f = file(fname)
                txt  = f.read()
                f.close()
                model = parse_dynare_text(txt)
                res = (fname,'ok')
                results.append( res )
            except Exception as e:
                res = (fname, e)
                results.append( res )
            print res
        for r in results:
            print r
Exemplo n.º 4
0
    def test_test_ramsey(self):
        #assert x != y;
        #self.assertEqual(x, y, "Msg");

        #path = '/home/pablo/Documents/Recherche/Ongoing/SDP Pricing/SD_without_struct/SD_ramsey/'
        #path = "/home/pablo/Documents/Recherche/Ongoing/SDP Pricing/ce_qui_change/SD_ramsey_MIU/"
        path = "/home/pablo/Documents/Recherche/Ongoing/SDP Pricing/ce_qui_change/SD_ramsey_CIASGU/"
        fname = path + 'state_dependent-macroexp.mod'
        f = file(fname)
        txt = f.read()
        f.close()
        txt = txt.replace('addpath', '//')
        txt = txt.replace('@#', '//')
        txt = txt.replace('^', '**')

        dynare_model = parse_dynare_text(txt)
        dynare_model.check()

        rmodel = RamseyModel(dynare_model)
        rmodel.check(verbose=True)

        comp = DynareCompiler(rmodel)
        txt = comp.export_to_modfile(path+'state_dependent_ramsey.mod', return_text=True)