def test_init_from_file(self):
     fisher_1 = fd.fisher_derived(file_name=test_input +
                                  '/dummy_fisher_matrix_derived.dat')
     assert fisher_1.path == test_input + '/dummy_fisher_matrix_derived.dat'
     assert fisher_1.name == 'dummy_fisher_matrix_derived'
     assert fisher_1.indir == test_input
     assert fisher_1.num_params == 28
     assert fisher_1.num_derived == 9
     assert fisher_1.param_names == [
         'omegabh2', 'omegach2', 'omeganuh2', 'h', 'yhe', 'logA', 'ns',
         'nrun', 'nt', 'r', 'tau', 'Bias_W_1', 'Bias_W_2', 'Bias_W_3',
         'Bias_W_4', 'Bias_W_5', 'Bias_W_6', 'Bias_W_7', 'Bias_W_8',
         'Bias_W_9', 'Bias_W_10', 'Bias_W_11', 'Bias_W_12', 'Bias_W_13',
         'Bias_W_14', 'alpha_SN', 'beta_SN', 'M0_SN'
     ]
     assert fisher_1.param_names_latex == [
         '\\Omega_b h^2', '\\Omega_c h^2', '\\Omega_\\nu h^2', 'h',
         'Y_{He}', '{\\rm{ln}}(10^{10} A_s)', 'n_s', 'n_{\\rm run}', 'n_t',
         'r', '\\tau', 'b_1', 'b_2', 'b_3', 'b_4', 'b_5', 'b_6', 'b_7',
         'b_8', 'b_9', 'b_10', 'b_11', 'b_12', 'b_13', 'b_14',
         '\\alpha_{\\rm SN}', '\\beta_{\\rm SN}', 'M_0^{\\rm SN}'
     ]
     assert fisher_1.derived_param_names == [
         'omegab', 'omegac', 'omeganu', 'omegav', 'omegak', 'omegam',
         'theta', 'mnu', 'z_re'
     ]
     assert fisher_1.derived_param_names_latex == [
         '\\Omega_b', '\\Omega_c', '\\Omega_{\\nu}', '\\Omega_{\\Lambda}',
         '\\Omega_{K}', '\\Omega_{m}', '100\\theta_{MC}', '\\Sigma m_\\nu',
         'z_{\\rm re}'
     ]
 def setup(self):
     # generate the Fisher matrix. In this case a simple diagonal matrix.
     matrix = np.identity(3)
     for i in xrange(3):
         matrix[i, i] = i + 1
     # Jacobian matrix:
     matrix_derived = np.zeros((3, 2))
     matrix_derived[0, 0] = 1.0
     matrix_derived[1, 1] = 1.0
     matrix_derived[2, 0] = 1.0
     # parameter names:
     param_names_latex = ['m' + str(i) for i in xrange(3)]
     derived_param_names_latex = ['md' + str(i) for i in xrange(2)]
     # fiducial:
     fiducial = [float(i) for i in xrange(3)]
     fiducial_derived = [float(i) for i in xrange(2)]
     # initialize the Fisher type:
     self.fisher_1 = fm.fisher_matrix(fisher_matrix=matrix,
                                      param_names_latex=param_names_latex,
                                      fiducial=fiducial)
     # initialize the derived matrix:
     self.fisher_der = fd.fisher_derived(
         derived_matrix=matrix_derived,
         param_names_latex=param_names_latex,
         derived_param_names_latex=derived_param_names_latex,
         fiducial=fiducial,
         fiducial_derived=fiducial_derived)
Exemplo n.º 3
0
 def test_init_from_python_only_fisher_derived(self):
     matrix_derived = np.zeros( (3, 2) )
     matrix_derived[0,0] = 1.0
     matrix_derived[1,1] = 1.0
     matrix_derived[2,0] = 1.0
     # parameter names:
     param_names_latex = [ 'm'+str(i) for i in xrange(3) ]
     derived_param_names_latex = [ 'md'+str(i) for i in xrange(2) ]
     # fiducial:
     fiducial = [ float(i) for i in xrange(3) ]
     fiducial_derived = [ float(i) for i in xrange(2) ]
     # initialize the derived matrix:
     fisher_1 = fd.fisher_derived( derived_matrix=matrix_derived )
     # after calling init all the objects of the class have to be initialized properly:
     assert np.allclose( fisher_1.derived_matrix, matrix_derived )           
     assert fisher_1.path == ''
     assert fisher_1.name == ''
     assert fisher_1.indir == ''
     assert fisher_1.num_params == 3
     assert fisher_1.num_derived == 2
     assert fisher_1.param_names == ['p1','p2','p3']
     assert fisher_1.param_names_latex == fisher_1.param_names
     assert np.allclose( fisher_1.param_fiducial, [0.0,0.0,0.0] )
     assert fisher_1.derived_param_names == ['p4','p5']
     assert fisher_1.derived_param_names_latex == fisher_1.derived_param_names
     assert np.allclose( fisher_1.derived_param_fiducial, [0.0,0.0] )
 def test_init_from_python_only_fisher_derived(self):
     matrix_derived = np.zeros((3, 2))
     matrix_derived[0, 0] = 1.0
     matrix_derived[1, 1] = 1.0
     matrix_derived[2, 0] = 1.0
     # parameter names:
     param_names_latex = ['m' + str(i) for i in xrange(3)]
     derived_param_names_latex = ['md' + str(i) for i in xrange(2)]
     # fiducial:
     fiducial = [float(i) for i in xrange(3)]
     fiducial_derived = [float(i) for i in xrange(2)]
     # initialize the derived matrix:
     fisher_1 = fd.fisher_derived(derived_matrix=matrix_derived)
     # after calling init all the objects of the class have to be initialized properly:
     assert np.allclose(fisher_1.derived_matrix, matrix_derived)
     assert fisher_1.path == ''
     assert fisher_1.name == ''
     assert fisher_1.indir == ''
     assert fisher_1.num_params == 3
     assert fisher_1.num_derived == 2
     assert fisher_1.param_names == ['p1', 'p2', 'p3']
     assert fisher_1.param_names_latex == fisher_1.param_names
     assert np.allclose(fisher_1.param_fiducial, [0.0, 0.0, 0.0])
     assert fisher_1.derived_param_names == ['p4', 'p5']
     assert fisher_1.derived_param_names_latex == fisher_1.derived_param_names
     assert np.allclose(fisher_1.derived_param_fiducial, [0.0, 0.0])
Exemplo n.º 5
0
 def test_realistic_add(self):
     # get the original real Fisher:
     fisher   = fm.fisher_matrix( file_name=test_input+'/dummy_fisher_matrix.dat' )
     # get the derived Fisher:
     fisher_1 = fd.fisher_derived( file_name=test_input+'/dummy_fisher_matrix_derived.dat' )
     # add them:
     new_fisher = fisher_1.add_derived( fisher_matrix=fisher, preserve_input=True )
     # check wether the initial spectrum is contained in the final spectrum:
     old_eigen = [ i for i in fisher.fisher_eigenvalues if i> 1.1*fisher.fisher_cutoff ] # remove the cutoff modes
     assert np.amin(new_fisher.fisher_eigenvalues) < np.amin(old_eigen)
     assert np.amax(new_fisher.fisher_eigenvalues) > np.amax(old_eigen)
Exemplo n.º 6
0
 def test_init_from_file(self):
     fisher_1 = fd.fisher_derived( file_name=test_input+'/dummy_fisher_matrix_derived.dat' )
     assert fisher_1.path == test_input+'/dummy_fisher_matrix_derived.dat'
     assert fisher_1.name == 'dummy_fisher_matrix_derived'
     assert fisher_1.indir == test_input
     assert fisher_1.num_params == 28
     assert fisher_1.num_derived == 9
     assert fisher_1.param_names == ['omegabh2', 'omegach2', 'omeganuh2', 'h', 'yhe', 'logA', 'ns', 'nrun', 'nt', 'r', 'tau', 'Bias_W_1', 'Bias_W_2', 'Bias_W_3', 'Bias_W_4', 'Bias_W_5', 'Bias_W_6', 'Bias_W_7', 'Bias_W_8', 'Bias_W_9', 'Bias_W_10', 'Bias_W_11', 'Bias_W_12', 'Bias_W_13', 'Bias_W_14', 'alpha_SN', 'beta_SN', 'M0_SN']
     assert fisher_1.param_names_latex == ['\\Omega_b h^2', '\\Omega_c h^2', '\\Omega_\\nu h^2', 'h', 'Y_{He}', '{\\rm{ln}}(10^{10} A_s)', 'n_s', 'n_{\\rm run}', 'n_t', 'r', '\\tau', 'b_1', 'b_2', 'b_3', 'b_4', 'b_5', 'b_6', 'b_7', 'b_8', 'b_9', 'b_10', 'b_11', 'b_12', 'b_13', 'b_14', '\\alpha_{\\rm SN}', '\\beta_{\\rm SN}', 'M_0^{\\rm SN}']
     assert fisher_1.derived_param_names == ['omegab', 'omegac', 'omeganu', 'omegav', 'omegak', 'omegam', 'theta', 'mnu', 'z_re']
     assert fisher_1.derived_param_names_latex == ['\\Omega_b', '\\Omega_c', '\\Omega_{\\nu}', '\\Omega_{\\Lambda}', '\\Omega_{K}', '\\Omega_{m}', '100\\theta_{MC}', '\\Sigma m_\\nu', 'z_{\\rm re}']
Exemplo n.º 7
0
 def test_realistic_add(self):
     # get the original real Fisher:
     fisher   = fm.fisher_matrix( file_name=test_input+'/dummy_fisher_matrix.dat' )
     # get the derived Fisher:
     fisher_1 = fd.fisher_derived( file_name=test_input+'/dummy_fisher_matrix_derived.dat' )
     # add them:
     new_fisher = fisher_1.add_derived( fisher_matrix=fisher, preserve_input=True )
     # check wether the initial spectrum is contained in the final spectrum:
     old_eigen = [ i for i in fisher.fisher_eigenvalues if i> 1.1*fisher.fisher_cutoff ] # remove the cutoff modes
     assert np.amin(new_fisher.fisher_eigenvalues) < np.amin(old_eigen)
     assert np.amax(new_fisher.fisher_eigenvalues) > np.amax(old_eigen)
Exemplo n.º 8
0
 def test_load_paramnames_invalid_num(self):
     matrix_derived = np.zeros( (3, 3) )
     matrix_derived[0,0] = 1.0
     matrix_derived[1,1] = 1.0
     matrix_derived[2,0] = 1.0
     param_names = [ 'q'+str(i) for i in xrange(3) ]   
     param_names_latex = [ 'm'+str(i) for i in xrange(3) ]
     derived_param_names = [ 'qd'+str(i) for i in xrange(4) ]   
     derived_param_names_latex = [ 'md'+str(i) for i in xrange(4) ]
     fiducial = [ float(i) for i in xrange(3) ]
     fiducial_derived = [ float(i) for i in xrange(4) ]
     fisher_1 = fd.fisher_derived( derived_matrix=matrix_derived )
     assert_raises( ValueError, fisher_1.load_paramnames_from_file, file_name=test_input+'/dummy_paramnames_5_derived.paramnames' )
Exemplo n.º 9
0
 def test_load_paramnames_invalid_num(self):
     matrix_derived = np.zeros( (3, 3) )
     matrix_derived[0,0] = 1.0
     matrix_derived[1,1] = 1.0
     matrix_derived[2,0] = 1.0
     param_names = [ 'q'+str(i) for i in range(3) ]   
     param_names_latex = [ 'm'+str(i) for i in range(3) ]
     derived_param_names = [ 'qd'+str(i) for i in range(4) ]   
     derived_param_names_latex = [ 'md'+str(i) for i in range(4) ]
     fiducial = [ float(i) for i in range(3) ]
     fiducial_derived = [ float(i) for i in range(4) ]
     fisher_1 = fd.fisher_derived( derived_matrix=matrix_derived )
     assert_raises( ValueError, fisher_1.load_paramnames_from_file, file_name=test_input+'/dummy_paramnames_5_derived.paramnames' )
Exemplo n.º 10
0
 def test_init_1D_fisher_derived(self):
     matrix = [10]
     fisher_1 = fd.fisher_derived( derived_matrix=matrix )
     assert np.allclose( fisher_1.derived_matrix, matrix )           
     assert fisher_1.path == ''
     assert fisher_1.name == ''
     assert fisher_1.indir == ''
     assert fisher_1.num_params == 1
     assert fisher_1.num_derived == 1
     assert fisher_1.param_names == ['p1']
     assert fisher_1.param_names_latex == fisher_1.param_names
     assert np.allclose( fisher_1.param_fiducial, [0.0] )
     assert fisher_1.derived_param_names == ['p2']
     assert fisher_1.derived_param_names_latex == fisher_1.derived_param_names
     assert np.allclose( fisher_1.derived_param_fiducial, [0.0] )
Exemplo n.º 11
0
 def test_init_1D_fisher_derived(self):
     matrix = [10]
     fisher_1 = fd.fisher_derived(derived_matrix=matrix)
     assert np.allclose(fisher_1.derived_matrix, matrix)
     assert fisher_1.path == ''
     assert fisher_1.name == ''
     assert fisher_1.indir == ''
     assert fisher_1.num_params == 1
     assert fisher_1.num_derived == 1
     assert fisher_1.param_names == ['p1']
     assert fisher_1.param_names_latex == fisher_1.param_names
     assert np.allclose(fisher_1.param_fiducial, [0.0])
     assert fisher_1.derived_param_names == ['p2']
     assert fisher_1.derived_param_names_latex == fisher_1.derived_param_names
     assert np.allclose(fisher_1.derived_param_fiducial, [0.0])
Exemplo n.º 12
0
 def test_spectral_change(self):
     # redefine the Jacobian matrix:
     matrix_derived = np.zeros( (3, 2) )
     matrix_derived[0,0] = 1.e10
     matrix_derived[2,0] = 1.e-10
     # parameter names:
     param_names_latex = [ 'm'+str(i) for i in xrange(3) ]
     derived_param_names_latex = [ 'md'+str(i) for i in xrange(2) ]
     # fiducial:
     fiducial = [ float(i) for i in xrange(3) ]
     fiducial_derived = [ float(i) for i in xrange(2) ]
     # initialize the derived matrix:
     fisher_der = fd.fisher_derived( derived_matrix=matrix_derived, 
                                          param_names_latex=param_names_latex, 
                                          derived_param_names_latex=derived_param_names_latex, 
                                          fiducial=fiducial, fiducial_derived=fiducial_derived)
     
     fisher_2 = fisher_der.add_derived( fisher_matrix=self.fisher_1, preserve_input=True )
Exemplo n.º 13
0
 def test_spectral_change(self):
     # redefine the Jacobian matrix:
     matrix_derived = np.zeros( (3, 2) )
     matrix_derived[0,0] = 1.e10
     matrix_derived[2,0] = 1.e-10
     # parameter names:
     param_names_latex = [ 'm'+str(i) for i in range(3) ]
     derived_param_names_latex = [ 'md'+str(i) for i in range(2) ]
     # fiducial:
     fiducial = [ float(i) for i in range(3) ]
     fiducial_derived = [ float(i) for i in range(2) ]
     # initialize the derived matrix:
     fisher_der = fd.fisher_derived( derived_matrix=matrix_derived, 
                                          param_names_latex=param_names_latex, 
                                          derived_param_names_latex=derived_param_names_latex, 
                                          fiducial=fiducial, fiducial_derived=fiducial_derived)
     
     fisher_2 = fisher_der.add_derived( fisher_matrix=self.fisher_1, preserve_input=True )
Exemplo n.º 14
0
 def test_load_paramnames_from_file_5(self):
     matrix_derived = np.zeros( (3, 4) )
     matrix_derived[0,0] = 1.0
     matrix_derived[1,1] = 1.0
     matrix_derived[2,0] = 1.0
     param_names = [ 'q'+str(i) for i in xrange(3) ]   
     param_names_latex = [ 'm'+str(i) for i in xrange(3) ]
     derived_param_names = [ 'qd'+str(i) for i in xrange(4) ]   
     derived_param_names_latex = [ 'md'+str(i) for i in xrange(4) ]
     fiducial = [ float(i) for i in xrange(3) ]
     fiducial_derived = [ float(i) for i in xrange(4) ]
     fisher_1 = fd.fisher_derived( derived_matrix=matrix_derived )
     fisher_1.load_paramnames_from_file( file_name=test_input+'/dummy_paramnames_5_derived.paramnames')
     # test if everything is properly initialized:
     assert fisher_1.param_names == ['p1', 'p2', 'p3']     
     assert fisher_1.param_names_latex == ['p_1', 'p_2', 'p_3']
     assert np.allclose( fisher_1.param_fiducial, [1.0, 2.0, 3.0] )
     assert fisher_1.derived_param_names == ['p4', 'p5', 'p6', 'p7']
     assert fisher_1.derived_param_names_latex == ['p_4', 'p_5', 'p_6', 'p7']
     assert np.allclose( fisher_1.derived_param_fiducial, [4.0, 5.0,0.0,0.0] ) 
Exemplo n.º 15
0
 def test_load_paramnames_from_file_5(self):
     matrix_derived = np.zeros( (3, 4) )
     matrix_derived[0,0] = 1.0
     matrix_derived[1,1] = 1.0
     matrix_derived[2,0] = 1.0
     param_names = [ 'q'+str(i) for i in range(3) ]   
     param_names_latex = [ 'm'+str(i) for i in range(3) ]
     derived_param_names = [ 'qd'+str(i) for i in range(4) ]   
     derived_param_names_latex = [ 'md'+str(i) for i in range(4) ]
     fiducial = [ float(i) for i in range(3) ]
     fiducial_derived = [ float(i) for i in range(4) ]
     fisher_1 = fd.fisher_derived( derived_matrix=matrix_derived )
     fisher_1.load_paramnames_from_file( file_name=test_input+'/dummy_paramnames_5_derived.paramnames')
     # test if everything is properly initialized:
     assert fisher_1.param_names == ['p1', 'p2', 'p3']     
     assert fisher_1.param_names_latex == ['p_1', 'p_2', 'p_3']
     assert np.allclose( fisher_1.param_fiducial, [1.0, 2.0, 3.0] )
     assert fisher_1.derived_param_names == ['p4', 'p5', 'p6', 'p7']
     assert fisher_1.derived_param_names_latex == ['p_4', 'p_5', 'p_6', 'p7']
     assert np.allclose( fisher_1.derived_param_fiducial, [4.0, 5.0,0.0,0.0] ) 
Exemplo n.º 16
0
 def test_init_from_python_invalid_fiducial_derived(self):
     matrix_derived = np.zeros( (3, 2) )
     matrix_derived[0,0] = 1.0
     matrix_derived[1,1] = 1.0
     matrix_derived[2,0] = 1.0
     # parameter names:
     param_names = [ 'q'+str(i) for i in range(3) ]   
     param_names_latex = [ 'm'+str(i) for i in range(3) ]
     derived_param_names = [ 'qd'+str(i) for i in range(2) ]   
     derived_param_names_latex = [ 'md'+str(i) for i in range(2) ]
     # fiducial:
     fiducial = [ float(i) for i in range(3) ]
     fiducial_derived = [ float(i) for i in range(3) ]
     # initialize the derived matrix:
     fisher_1 = fd.fisher_derived( derived_matrix=matrix_derived )
     assert_raises( ValueError,  fd.fisher_derived, derived_matrix=matrix_derived,
                                          param_names = param_names,
                                          derived_param_names = derived_param_names,
                                          param_names_latex=param_names_latex, 
                                          derived_param_names_latex=derived_param_names_latex, 
                                          fiducial=fiducial, fiducial_derived=fiducial_derived)  
Exemplo n.º 17
0
 def test_init_from_python_invalid_fiducial_derived(self):
     matrix_derived = np.zeros( (3, 2) )
     matrix_derived[0,0] = 1.0
     matrix_derived[1,1] = 1.0
     matrix_derived[2,0] = 1.0
     # parameter names:
     param_names = [ 'q'+str(i) for i in xrange(3) ]   
     param_names_latex = [ 'm'+str(i) for i in xrange(3) ]
     derived_param_names = [ 'qd'+str(i) for i in xrange(2) ]   
     derived_param_names_latex = [ 'md'+str(i) for i in xrange(2) ]
     # fiducial:
     fiducial = [ float(i) for i in xrange(3) ]
     fiducial_derived = [ float(i) for i in xrange(3) ]
     # initialize the derived matrix:
     fisher_1 = fd.fisher_derived( derived_matrix=matrix_derived )
     assert_raises( ValueError,  fd.fisher_derived, derived_matrix=matrix_derived,
                                          param_names = param_names,
                                          derived_param_names = derived_param_names,
                                          param_names_latex=param_names_latex, 
                                          derived_param_names_latex=derived_param_names_latex, 
                                          fiducial=fiducial, fiducial_derived=fiducial_derived)  
Exemplo n.º 18
0
 def setup(self):
     # generate the Fisher matrix. In this case a simple diagonal matrix.
     matrix = np.identity(3)
     for i in xrange(3):
         matrix[i,i] = i+1
     # Jacobian matrix:
     matrix_derived = np.zeros( (3, 2) )
     matrix_derived[0,0] = 1.0
     matrix_derived[1,1] = 1.0
     matrix_derived[2,0] = 1.0
     # parameter names:
     param_names_latex = [ 'm'+str(i) for i in xrange(3) ]
     derived_param_names_latex = [ 'md'+str(i) for i in xrange(2) ]
     # fiducial:
     fiducial = [ float(i) for i in xrange(3) ]
     fiducial_derived = [ float(i) for i in xrange(2) ]
     # initialize the Fisher type:
     self.fisher_1 = fm.fisher_matrix( fisher_matrix=matrix, param_names_latex=param_names_latex, fiducial=fiducial )
     # initialize the derived matrix:
     self.fisher_der = fd.fisher_derived( derived_matrix=matrix_derived, 
                                          param_names_latex=param_names_latex, 
                                          derived_param_names_latex=derived_param_names_latex, 
                                          fiducial=fiducial, fiducial_derived=fiducial_derived)