diff options
-rw-r--r-- | Wrappers/Python/test/run_test.py | 148 |
1 files changed, 96 insertions, 52 deletions
diff --git a/Wrappers/Python/test/run_test.py b/Wrappers/Python/test/run_test.py index 19af0ec..04bbd40 100644 --- a/Wrappers/Python/test/run_test.py +++ b/Wrappers/Python/test/run_test.py @@ -9,7 +9,11 @@ def rmse(im1, im2): return rmse class TestRegularisers(unittest.TestCase): - def __init__(self): + + def setUp(self): + pass + + def test_cpu_regularisers(self): filename = os.path.join(".." , ".." , ".." , "data" ,"lena_gray_512.tif") # read noiseless image @@ -17,89 +21,129 @@ class TestRegularisers(unittest.TestCase): Im = np.asarray(Im, dtype='float32') Im = Im/255 - self.u0 = Im - self.Im = Im - self.tolerance = 1e-05 - self.rms_rof_exp = 0.006812507 #expected value for ROF model - self.rms_fgp_exp = 0.019152347 #expected value for FGP model + tolerance = 1e-05 + rms_rof_exp = 0.006812507 #expected value for ROF model + rms_fgp_exp = 0.019152347 #expected value for FGP model # set parameters for ROF-TV - self.pars_rof_tv = {'algorithm': ROF_TV, \ - 'input' : self.u0,\ - 'regularisation_parameter':0.04,\ - 'number_of_iterations': 50,\ - 'time_marching_parameter': 0.0025 - } + pars_rof_tv = {'algorithm': ROF_TV, \ + 'input' : Im,\ + 'regularisation_parameter':0.04,\ + 'number_of_iterations': 50,\ + 'time_marching_parameter': 0.0025 + } # set parameters for FGP-TV - self.pars_fgp_tv = {'algorithm' : FGP_TV, \ - 'input' : self.u0,\ - 'regularisation_parameter':0.04, \ - 'number_of_iterations' :50 ,\ - 'tolerance_constant':1e-08,\ - 'methodTV': 0 ,\ - 'nonneg': 0 ,\ - 'printingOut': 0 - } - def test_cpu_regularisers(self): + pars_fgp_tv = {'algorithm' : FGP_TV, \ + 'input' : Im,\ + 'regularisation_parameter':0.04, \ + 'number_of_iterations' :50 ,\ + 'tolerance_constant':1e-08,\ + 'methodTV': 0 ,\ + 'nonneg': 0 ,\ + 'printingOut': 0 + } print ("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%") print ("_________testing ROF-TV (2D, CPU)__________") print ("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%") - rof_cpu = ROF_TV(self.pars_rof_tv['input'], - self.pars_rof_tv['regularisation_parameter'], - self.pars_rof_tv['number_of_iterations'], - self.pars_rof_tv['time_marching_parameter'],'cpu') - rms_rof = rmse(self.Im, rof_cpu) + res = True + rof_cpu = ROF_TV(pars_rof_tv['input'], + pars_rof_tv['regularisation_parameter'], + pars_rof_tv['number_of_iterations'], + pars_rof_tv['time_marching_parameter'],'cpu') + rms_rof = rmse(Im, rof_cpu) # now compare obtained rms with the expected value + self.assertLess(abs(rms_rof-rms_rof_exp) , tolerance) + """ if abs(rms_rof-self.rms_rof_exp) > self.tolerance: raise TypeError('ROF-TV (2D, CPU) test FAILED') else: print ("test PASSED") + """ print ("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%") print ("_________testing FGP-TV (2D, CPU)__________") print ("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%") - fgp_cpu = FGP_TV(self.pars_fgp_tv['input'], - self.pars_fgp_tv['regularisation_parameter'], - self.pars_fgp_tv['number_of_iterations'], - self.pars_fgp_tv['tolerance_constant'], - self.pars_fgp_tv['methodTV'], - self.pars_fgp_tv['nonneg'], - self.pars_fgp_tv['printingOut'],'cpu') - rms_fgp = rmse(self.Im, fgp_cpu) + fgp_cpu = FGP_TV(pars_fgp_tv['input'], + pars_fgp_tv['regularisation_parameter'], + pars_fgp_tv['number_of_iterations'], + pars_fgp_tv['tolerance_constant'], + pars_fgp_tv['methodTV'], + pars_fgp_tv['nonneg'], + pars_fgp_tv['printingOut'],'cpu') + rms_fgp = rmse(Im, fgp_cpu) # now compare obtained rms with the expected value + self.assertLess(abs(rms_fgp-rms_fgp_exp) , tolerance) + """ if abs(rms_fgp-self.rms_fgp_exp) > self.tolerance: raise TypeError('FGP-TV (2D, CPU) test FAILED') else: print ("test PASSED") + """ + self.assertTrue(res) def test_gpu_regularisers(self): + filename = os.path.join(".." , ".." , ".." , "data" ,"lena_gray_512.tif") + + # read noiseless image + Im = plt.imread(filename) + Im = np.asarray(Im, dtype='float32') + + Im = Im/255 + tolerance = 1e-05 + rms_rof_exp = 0.006812507 #expected value for ROF model + rms_fgp_exp = 0.019152347 #expected value for FGP model + + # set parameters for ROF-TV + pars_rof_tv = {'algorithm': ROF_TV, \ + 'input' : Im,\ + 'regularisation_parameter':0.04,\ + 'number_of_iterations': 50,\ + 'time_marching_parameter': 0.0025 + } + # set parameters for FGP-TV + pars_fgp_tv = {'algorithm' : FGP_TV, \ + 'input' : Im,\ + 'regularisation_parameter':0.04, \ + 'number_of_iterations' :50 ,\ + 'tolerance_constant':1e-08,\ + 'methodTV': 0 ,\ + 'nonneg': 0 ,\ + 'printingOut': 0 + } print ("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%") print ("_________testing ROF-TV (2D, GPU)__________") print ("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%") - rof_gpu = ROF_TV(self.pars_rof_tv['input'], - self.pars_rof_tv['regularisation_parameter'], - self.pars_rof_tv['number_of_iterations'], - self.pars_rof_tv['time_marching_parameter'],'gpu') - rms_rof = rmse(self.Im, rof_gpu) + res = True + rof_gpu = ROF_TV(pars_rof_tv['input'], + pars_rof_tv['regularisation_parameter'], + pars_rof_tv['number_of_iterations'], + pars_rof_tv['time_marching_parameter'],'gpu') + rms_rof = rmse(Im, rof_gpu) # now compare obtained rms with the expected value + self.assertLess(abs(rms_rof-rms_rof_exp) , tolerance) + """ if abs(rms_rof-self.rms_rof_exp) > self.tolerance: raise TypeError('ROF-TV (2D, GPU) test FAILED') else: print ("test PASSED") + """ print ("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%") print ("_________testing FGP-TV (2D, GPU)__________") print ("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%") - fgp_gpu = FGP_TV(self.pars_fgp_tv['input'], - self.pars_fgp_tv['regularisation_parameter'], - self.pars_fgp_tv['number_of_iterations'], - self.pars_fgp_tv['tolerance_constant'], - self.pars_fgp_tv['methodTV'], - self.pars_fgp_tv['nonneg'], - self.pars_fgp_tv['printingOut'],'gpu') - rms_fgp = rmse(self.Im, fgp_gpu) + fgp_gpu = FGP_TV(pars_fgp_tv['input'], + pars_fgp_tv['regularisation_parameter'], + pars_fgp_tv['number_of_iterations'], + pars_fgp_tv['tolerance_constant'], + pars_fgp_tv['methodTV'], + pars_fgp_tv['nonneg'], + pars_fgp_tv['printingOut'],'gpu') + rms_fgp = rmse(Im, fgp_gpu) + # now compare obtained rms with the expected value + self.assertLess(abs(rms_fgp-rms_fgp_exp) , tolerance) + """ if abs(rms_fgp-self.rms_fgp_exp) > self.tolerance: raise TypeError('FGP-TV (2D, GPU) test FAILED') else: print ("test PASSED") - # now compare obtained rms with the expected value - #self.assertLess(...) -#if __name__ == '__main__': - #unittest.main()
\ No newline at end of file + """ + self.assertTrue(res) +if __name__ == '__main__': + unittest.main()
\ No newline at end of file |