def test_DLLM_wrapper_TCl(self):
     config_dict = self.__get_base_config_dict()
     config_dict['test.DLLM.type']='TargetCl'
     config_dict['test.DLLM.target_Cl']=0.5
     
     DLLMWrap = DLLMWrapper('test', verbose=0)
     DLLMWrap.configure(config_dict)
     DLLMWrap.set_out_format('numpy')
     DLLMWrap.set_grad_format('numpy')
     
     DLLMWrap.analysis()
     Cl=DLLMWrap.get_F_value('Cl')
     assert((Cl-0.5)<1.e-8)
 def test_DLLM_wrapper_TLift(self):
     config_dict = self.__get_base_config_dict()
     config_dict['test.DLLM.type']='TargetLift'
     config_dict['test.DLLM.target_Lift']=769200.
     
     DLLMWrap = DLLMWrapper('test', verbose=0)
     DLLMWrap.configure(config_dict)
     DLLMWrap.set_out_format('numpy')
     DLLMWrap.set_grad_format('numpy')
     
     DLLMWrap.analysis()
     Lift=DLLMWrap.get_F_value('Lift')
     assert((Lift-769200.)<1.e-2)
config_dict['cond1.DLLM.max_iterations']=100
config_dict['cond1.DLLM.gamma_file_name']='gamma.dat'
config_dict['cond1.DLLM.target_Cl']=0.5

DLLMcond1=DLLMWrapper('cond1', verbose=0)
DLLMcond1.configure(config_dict)
DLLMcond1.set_out_format('numpy')
DLLMcond1.set_grad_format('numpy')

x0=DLLMcond1.get_x0()
print 'dv array shape',x0.shape
print 'dv_array=',x0

val_grad=FDValidGrad(2,DLLMcond1.run,DLLMcond1.run_grad,fd_step=1.e-8)
ok,df_fd,df=val_grad.compare(x0,treshold=1.e-6,split_out=True,return_all=True)

for j in xrange(len(df[:,0])):
    fid=open('gradient_file'+str(j)+'.dat','w')
    for i in xrange(len(x0)):
        fid.write(str(i)+' '+str(df_fd[j,i])+' '+str(df[j,i])+'\n')
    fid.close()

print 'Cl = ',DLLMcond1.get_F_value('Cl'), 'target =',0.5

print '\n****************************************************'
if ok:
    print 'DLLMWrapper TargetCl gradients are valid.'
else:
    print 'DLLMWrapper TargetCl gradients are not valid!'
print '****************************************************'