Example #1
0
 def test_load_ser_sim_res_no_json(self):
     tmpfolder = gf.generate_temp_folder()
     os.makedirs(tmpfolder)
     pres = CP.load_serial_simulation_results(tmpfolder)
     shutil.rmtree(tmpfolder)
     self.assertTrue(isinstance(pres['chain'], list))
     self.assertTrue(isinstance(pres['s2chain'], list))
     self.assertEqual(pres['chain'], [])
Example #2
0
 def test_read_in_parallel_txt(self):
     parallel_dir = gf.generate_temp_folder()
     mcstat = setup_problem(parallel_dir, case='text')
     out = CP.read_in_parallel_savedir_files(parallel_dir=parallel_dir,
                                             extension='txt')
     StandardCheck(out[0], mcstat)
     StandardCheck(out[1], mcstat)
     StandardCheck(out[2], mcstat)
     shutil.rmtree(parallel_dir)
Example #3
0
 def test_read_in_parallel_unknown(self):
     parallel_dir = gf.generate_temp_folder()
     setup_problem(parallel_dir, case='binary')
     out = CP.read_in_parallel_savedir_files(parallel_dir=parallel_dir,
                                             extension='unknown')
     self.assertEqual(out[0], None)
     self.assertEqual(out[1], None)
     self.assertEqual(out[2], None)
     shutil.rmtree(parallel_dir)
Example #4
0
 def test_run_simulation(self):
     mcstat = gf.basic_mcmc()
     mcstat.simulation_options.nsimu = 100
     mcstat.simulation_options.save_to_bin = False
     mcstat.simulation_options.save_to_txt = False
     mcstat.custom_samplers.append(gf.CustomSampler(nsimu=100))
     tmpfolder = gf.generate_temp_folder()
     mcstat.simulation_options.savedir = tmpfolder
     mcstat.run_simulation()
     self.assertTrue(mcstat._mcmc_status,
                     msg='Expect True if successfully run')
Example #5
0
 def test_id_chain_no(self):
     parallel_dir = gf.generate_temp_folder()
     setup_problem(parallel_dir, case='binary')
     chainfolders = os.listdir(parallel_dir)
     chainfolders2 = CP.check_parallel_directory_contents(
         parallel_dir, chainfolders)
     self.assertEqual(
         chainfolders2, ['chain_0', 'chain_1', 'chain_2'],
         msg='List of strings do not match ({}): {} neq {}'.format(
             parallel_dir, chainfolders2,
             ['chain_0', 'chain_1', 'chain_2']))
     shutil.rmtree(parallel_dir)
Example #6
0
 def test_run_simulation(self):
     mcstat = gf.basic_mcmc()
     mcstat.simulation_options.nsimu = 100
     mcstat.simulation_options.save_to_bin = False
     mcstat.simulation_options.save_to_txt = False
     tmpfolder = gf.generate_temp_folder()
     mcstat.simulation_options.savedir = tmpfolder
     mcstat.run_simulation()
     self.assertTrue(mcstat._mcmc_status,
                     msg='Expect True if successfully run')
     check_these = ['mcmcplot', 'PI', 'chainstats']
     for ci in check_these:
         self.assertTrue(hasattr(mcstat, ci),
                         msg=str('object has attribute: {}'.format(ci)))
Example #7
0
 def test_load_ser_sim_res(self):
     tmpfolder = gf.generate_temp_folder()
     tmpfolder0 = os.path.join(tmpfolder, 'chain_0')
     os.makedirs(tmpfolder0)
     tmpfile0 = 'chain_0.json'
     tmpfile0 = os.path.join(tmpfolder0, tmpfile0)
     results = dict(a=[0, 1], b='hello')
     RS = ResultsStructure()
     RS.save_json_object(results, tmpfile0)
     pres = CP.load_serial_simulation_results(tmpfolder0)
     shutil.rmtree(tmpfolder)
     self.assertTrue(isinstance(pres['a'], np.ndarray))
     self.assertTrue(isinstance(pres['b'], str))
     self.assertEqual(pres['b'], 'hello')
Example #8
0
 def test_save_to_log_file_txt(self):
     mcstat = gf.basic_mcmc()
     mcstat.simulation_options.save_to_bin = False
     mcstat.simulation_options.save_to_txt = True
     tmpfolder = gf.generate_temp_folder()
     mcstat.simulation_options.savedir = tmpfolder
     chains = []
     chains.append(
         dict(file='chain', mtx=np.random.random_sample((1000, 3))))
     savecount, lastbin = mcstat._MCMC__save_to_log_file(chains=chains,
                                                         start=0,
                                                         end=100)
     self.assertEqual(savecount, 0, msg='Expect 0')
     self.assertEqual(lastbin, 100, msg='Expect lastbin = end = 100')
     shutil.rmtree(tmpfolder)
Example #9
0
    def test_save_to_log_file_txt_no_append(self):
        mcstat = gf.basic_mcmc()
        mcstat.simulation_options.save_to_bin = False
        mcstat.simulation_options.save_to_txt = True

        tmpfolder = gf.generate_temp_folder()
        mcstat.simulation_options.savedir = tmpfolder
        tmpfile = tmpfolder + os.sep + 'txtlogfile.txt'
        chains = []
        chains.append(
            dict(file='chain', mtx=np.random.random_sample((1000, 3))))
        savecount, lastbin = mcstat._MCMC__save_to_log_file(
            chains=chains, start=0, end=100, append_to_log=False)
        self.assertFalse(os.path.isfile(tmpfile),
                         msg=str('File exists: {}'.format(tmpfile)))
        shutil.rmtree(tmpfolder)
Example #10
0
 def test_no_save_to_log_file(self):
     mcstat = gf.basic_mcmc()
     mcstat.simulation_options.save_to_bin = False
     mcstat.simulation_options.save_to_txt = False
     tmpfolder = gf.generate_temp_folder()
     mcstat.simulation_options.savedir = tmpfolder
     chains = []
     chains.append(
         dict(file='chain', mtx=np.random.random_sample((1000, 3))))
     savecount, lastbin = mcstat._MCMC__save_to_log_file(chains=chains,
                                                         start=0,
                                                         end=100)
     self.assertEqual(savecount, 0, msg='Expect 0')
     self.assertEqual(lastbin, 100, msg='Expect lastbin = end = 100')
     self.assertFalse(os.path.isdir(tmpfolder),
                      msg=str('Folder exists: {}'.format(tmpfolder)))
Example #11
0
 def test_id_chain_no_with_bad_items(self):
     parallel_dir = gf.generate_temp_folder()
     setup_problem(parallel_dir, case='binary')
     tmpfile = gf.generate_temp_file()
     os.mkdir(parallel_dir + os.sep + 'chain')
     if not os.path.exists(parallel_dir + os.sep + tmpfile):
         with open(parallel_dir + os.sep + tmpfile, 'w'):
             pass
     chainfolders = os.listdir(parallel_dir)
     chainfolders2 = CP.check_parallel_directory_contents(
         parallel_dir, chainfolders)
     self.assertEqual(
         chainfolders2, ['chain_0', 'chain_1', 'chain_2'],
         msg='List of strings do not match ({}): {} neq {}'.format(
             parallel_dir, chainfolders2,
             ['chain_0', 'chain_1', 'chain_2']))
     shutil.rmtree(parallel_dir)
Example #12
0
 def test_run_simulation_with_json(self):
     mcstat = gf.basic_mcmc()
     mcstat.simulation_options.nsimu = 100
     mcstat.simulation_options.save_to_bin = False
     mcstat.simulation_options.save_to_txt = False
     tmpfile = gf.generate_temp_file(extension='json')
     tmpfolder = gf.generate_temp_folder()
     os.mkdir(tmpfolder)
     mcstat.simulation_options.savedir = tmpfolder
     mcstat.simulation_options.results_filename = tmpfile
     mcstat.simulation_options.save_to_json = True
     mcstat.run_simulation()
     self.assertTrue(mcstat._mcmc_status,
                     msg='Expect True if successfully run')
     check_these = ['mcmcplot', 'PI', 'chainstats']
     for ci in check_these:
         self.assertTrue(hasattr(mcstat, ci),
                         msg=str('object has attribute: {}'.format(ci)))
     shutil.rmtree(tmpfolder)
Example #13
0
    def test_read_in_savedir_files_unknown(self):
        mcstat = gf.setup_case()
        savedir = gf.generate_temp_folder()
        mcstat.simulation_options.savedir = savedir
        mcstat.simulation_options.save_to_txt = True
        mcstat._MCMC__save_to_log_file(chains=mcstat._MCMC__chains,
                                       start=0,
                                       end=100)
        mcstat._MCMC__save_to_log_file(chains=[
            dict(mtx=np.dot(mcstat._covariance._R.transpose(),
                            mcstat._covariance._R))
        ],
                                       start=0,
                                       end=100,
                                       covmtx=True)

        out = CP.read_in_savedir_files(savedir, extension='unknown')
        self.assertEqual(out, None, msg='Expect None')
        shutil.rmtree(savedir)
Example #14
0
    def test_read_in_savedir_files_txt(self):
        mcstat = gf.setup_case()
        savedir = gf.generate_temp_folder()
        mcstat.simulation_options.savedir = savedir
        mcstat.simulation_options.save_to_txt = True
        mcstat._MCMC__save_to_log_file(chains=mcstat._MCMC__chains,
                                       start=0,
                                       end=100)
        mcstat._MCMC__save_to_log_file(chains=[
            dict(mtx=np.dot(mcstat._covariance._R.transpose(),
                            mcstat._covariance._R))
        ],
                                       start=0,
                                       end=100,
                                       covmtx=True)

        out = CP.read_in_savedir_files(savedir, extension='txt')
        StandardCheck(out, mcstat)
        shutil.rmtree(savedir)
Example #15
0
    def test_print_log_files(self):
        mcstat = gf.setup_case()
        savedir = gf.generate_temp_folder()
        mcstat.simulation_options.savedir = savedir

        mcstat.simulation_options.save_to_bin = True

        chains = mcstat._MCMC__chains
        mcstat._MCMC__save_to_log_file(chains=chains, start=0, end=100)

        capturedOutput = io.StringIO()
        sys.stdout = capturedOutput
        CP.print_log_files(savedir)
        sys.stdout = sys.__stdout__

        self.assertTrue(isinstance(capturedOutput.getvalue(), str),
                        msg='Should contain a string')
        self.assertTrue('Display log file:' in capturedOutput.getvalue(),
                        msg='Expect string to contain these words')
        shutil.rmtree(savedir)
Example #16
0
 def test_covmtx_save_to_log_file(self):
     mcstat = gf.setup_case()
     mcstat.simulation_options.save_to_bin = False
     mcstat.simulation_options.save_to_txt = True
     tmpfolder = gf.generate_temp_folder()
     mcstat.simulation_options.savedir = tmpfolder
     tmpfile = tmpfolder + os.sep + 'txtlogfile.txt'
     tmptxtfile = tmpfolder + os.sep + 'covchainfile.txt'
     savecount, lastbin = mcstat._MCMC__save_to_log_file(chains=[
         dict(mtx=np.dot(mcstat._covariance._R.transpose(),
                         mcstat._covariance._R))
     ],
                                                         start=0,
                                                         end=100,
                                                         covmtx=True)
     self.assertEqual(savecount, 0, msg='Expect 0')
     self.assertEqual(lastbin, 100, msg='Expect lastbin = end = 100')
     self.assertTrue(os.path.isfile(tmpfile),
                     msg=str('File exists: {}'.format(tmpfile)))
     self.assertTrue(os.path.isfile(tmptxtfile),
                     msg=str('File exists: {}'.format(tmptxtfile)))
     mcstat.simulation_options.save_to_bin = True
     mcstat.simulation_options.save_to_txt = False
     tmpfile = tmpfolder + os.sep + 'binlogfile.txt'
     tmpbinfile = tmpfolder + os.sep + 'covchainfile.h5'
     savecount, lastbin = mcstat._MCMC__save_to_log_file(chains=[
         dict(mtx=np.dot(mcstat._covariance._R.transpose(),
                         mcstat._covariance._R))
     ],
                                                         start=0,
                                                         end=100,
                                                         covmtx=True)
     self.assertEqual(savecount, 0, msg='Expect 0')
     self.assertEqual(lastbin, 100, msg='Expect lastbin = end = 100')
     self.assertTrue(os.path.isfile(tmpfile),
                     msg=str('File exists: {}'.format(tmpfile)))
     self.assertTrue(os.path.isfile(tmpbinfile),
                     msg=str('File exists: {}'.format(tmpbinfile)))
     shutil.rmtree(tmpfolder)
Example #17
0
 def test_check_directory(self):
     tmpfolder = gf.generate_temp_folder()
     CP._check_directory(tmpfolder)
     self.assertTrue(os.path.isdir(tmpfolder), msg='Directory exists')
     os.removedirs(tmpfolder)
def setup_par_mcmc_basic():
    mcstat = gf.basic_mcmc()
    tmpfolder = gf.generate_temp_folder()
    mcstat.simulation_options.savedir = tmpfolder
    return mcstat, tmpfolder
 def test_check_directory(self):
     tmpfolder = gf.generate_temp_folder()
     check_directory(tmpfolder)
     self.assertTrue(os.path.exists(tmpfolder),
                     msg='Directory should exist')
     shutil.rmtree(tmpfolder)