summaryrefslogtreecommitdiffstats
path: root/Wrappers
diff options
context:
space:
mode:
authorEdoardo Pasca <edo.paskino@gmail.com>2019-04-16 06:03:41 -0400
committerEdoardo Pasca <edo.paskino@gmail.com>2019-04-16 06:03:41 -0400
commit8150daa22398fb0f6308c5a39a06ec116c4c2532 (patch)
treeef45e785fa94281a4951cf238f7dec640af8b45c /Wrappers
parent35c6b27df5beb860d961d04744e6badc87c8a058 (diff)
downloadframework-8150daa22398fb0f6308c5a39a06ec116c4c2532.tar.gz
framework-8150daa22398fb0f6308c5a39a06ec116c4c2532.tar.bz2
framework-8150daa22398fb0f6308c5a39a06ec116c4c2532.tar.xz
framework-8150daa22398fb0f6308c5a39a06ec116c4c2532.zip
fix tests with removed ops.py
Diffstat (limited to 'Wrappers')
-rwxr-xr-xWrappers/Python/test/test_BlockDataContainer.py6
-rw-r--r--Wrappers/Python/test/test_BlockOperator.py22
-rwxr-xr-xWrappers/Python/test/test_Gradient.py4
-rwxr-xr-xWrappers/Python/test/test_algorithms.py12
-rw-r--r--Wrappers/Python/test/test_functions.py7
-rwxr-xr-xWrappers/Python/test/test_run_test.py52
6 files changed, 25 insertions, 78 deletions
diff --git a/Wrappers/Python/test/test_BlockDataContainer.py b/Wrappers/Python/test/test_BlockDataContainer.py
index a20f289..aeb8454 100755
--- a/Wrappers/Python/test/test_BlockDataContainer.py
+++ b/Wrappers/Python/test/test_BlockDataContainer.py
@@ -7,15 +7,9 @@ Created on Tue Mar 5 16:08:23 2019
import unittest
import numpy
-#from ccpi.plugins.ops import CCPiProjectorSimple
-from ccpi.optimisation.ops import PowerMethodNonsquare
-from ccpi.optimisation.ops import TomoIdentity
-from ccpi.optimisation.funcs import Norm2sq, Norm1
from ccpi.framework import ImageGeometry, AcquisitionGeometry
from ccpi.framework import ImageData, AcquisitionData
-#from ccpi.optimisation.algorithms import GradientDescent
from ccpi.framework import BlockDataContainer, DataContainer
-#from ccpi.optimisation.Algorithms import CGLS
import functools
from ccpi.optimisation.operators import Gradient, Identity, BlockOperator
diff --git a/Wrappers/Python/test/test_BlockOperator.py b/Wrappers/Python/test/test_BlockOperator.py
index e1c05fb..601a58c 100644
--- a/Wrappers/Python/test/test_BlockOperator.py
+++ b/Wrappers/Python/test/test_BlockOperator.py
@@ -1,12 +1,12 @@
import unittest
from ccpi.optimisation.operators import BlockOperator
from ccpi.framework import BlockDataContainer
-from ccpi.optimisation.ops import TomoIdentity
+from ccpi.optimisation.ops import Identity
from ccpi.framework import ImageGeometry, ImageData
import numpy
from ccpi.optimisation.operators import FiniteDiff
-class TestOperator(TomoIdentity):
+class TestOperator(Identity):
def __init__(self, *args, **kwargs):
super(TestOperator, self).__init__(*args, **kwargs)
self.range = kwargs.get('range', self.geometry)
@@ -21,7 +21,7 @@ class TestBlockOperator(unittest.TestCase):
ImageGeometry(10,20,30) , \
ImageGeometry(10,20,30) ]
x = [ g.allocate() for g in ig ]
- ops = [ TomoIdentity(g) for g in ig ]
+ ops = [ Identity(g) for g in ig ]
K = BlockOperator(*ops)
X = BlockDataContainer(x[0])
@@ -50,7 +50,7 @@ class TestBlockOperator(unittest.TestCase):
ImageGeometry(10,20,30) , \
ImageGeometry(10,20,30) ]
x = [ g.allocate() for g in ig ]
- ops = [ TomoIdentity(g) for g in ig ]
+ ops = [ Identity(g) for g in ig ]
K = BlockOperator(*ops)
self.assertTrue(False)
@@ -90,7 +90,7 @@ class TestBlockOperator(unittest.TestCase):
ImageGeometry(10,20,30) , \
ImageGeometry(10,20,30) ]
x = [ g.allocate() for g in ig ]
- ops = [ TomoIdentity(g) for g in ig ]
+ ops = [ Identity(g) for g in ig ]
val = 1
# test limit as non Scaled
@@ -121,7 +121,7 @@ class TestBlockOperator(unittest.TestCase):
#ImageGeometry(10,20,30) , \
ImageGeometry(2,3 ) ]
x = [ g.allocate() for g in ig ]
- ops = [ TomoIdentity(g) for g in ig ]
+ ops = [ Identity(g) for g in ig ]
# test limit as non Scaled
@@ -158,7 +158,7 @@ class TestBlockOperator(unittest.TestCase):
print (img.shape, ig.shape)
self.assertTrue(img.shape == (30,20,10))
self.assertEqual(img.sum(), 0)
- Id = TomoIdentity(ig)
+ Id = Identity(ig)
y = Id.direct(img)
numpy.testing.assert_array_equal(y.as_array(), img.as_array())
@@ -167,7 +167,7 @@ class TestBlockOperator(unittest.TestCase):
from ccpi.plugins.ops import CCPiProjectorSimple
from ccpi.optimisation.ops import PowerMethodNonsquare
- from ccpi.optimisation.ops import TomoIdentity
+ from ccpi.optimisation.operators import Identity
from ccpi.optimisation.funcs import Norm2sq, Norm1
from ccpi.framework import ImageGeometry, AcquisitionGeometry
from ccpi.optimisation.Algorithms import GradientDescent
@@ -265,8 +265,8 @@ class TestBlockOperator(unittest.TestCase):
ImageData(geometry=ig, dimension_labels=['horizontal_x','horizontal_y','vertical']))
# setup a tomo identity
- Ibig = 1e5 * TomoIdentity(geometry=ig)
- Ismall = 1e-5 * TomoIdentity(geometry=ig)
+ Ibig = 1e5 * Identity(ig)
+ Ismall = 1e-5 * Identity(ig)
# composite operator
Kbig = BlockOperator(A, Ibig, shape=(2,1))
@@ -362,4 +362,4 @@ class TestBlockOperator(unittest.TestCase):
G1 = FiniteDiff(ig1, direction=2, bnd_cond = 'Periodic')
print(ig1.shape==u1.shape)
print (G1.norm())
- numpy.testing.assert_allclose(G1.norm(), numpy.sqrt(4), atol=0.1) \ No newline at end of file
+ numpy.testing.assert_allclose(G1.norm(), numpy.sqrt(4), atol=0.1)
diff --git a/Wrappers/Python/test/test_Gradient.py b/Wrappers/Python/test/test_Gradient.py
index 1d6485c..c6b2d2e 100755
--- a/Wrappers/Python/test/test_Gradient.py
+++ b/Wrappers/Python/test/test_Gradient.py
@@ -1,9 +1,5 @@
import unittest
import numpy
-#from ccpi.plugins.ops import CCPiProjectorSimple
-from ccpi.optimisation.ops import PowerMethodNonsquare
-from ccpi.optimisation.ops import TomoIdentity
-from ccpi.optimisation.funcs import Norm2sq, Norm1
from ccpi.framework import ImageGeometry, AcquisitionGeometry
from ccpi.framework import ImageData, AcquisitionData
#from ccpi.optimisation.algorithms import GradientDescent
diff --git a/Wrappers/Python/test/test_algorithms.py b/Wrappers/Python/test/test_algorithms.py
index a35ffc1..669804e 100755
--- a/Wrappers/Python/test/test_algorithms.py
+++ b/Wrappers/Python/test/test_algorithms.py
@@ -12,7 +12,7 @@ from ccpi.framework import ImageData
from ccpi.framework import AcquisitionData
from ccpi.framework import ImageGeometry
from ccpi.framework import AcquisitionGeometry
-from ccpi.optimisation.ops import TomoIdentity
+from ccpi.optimisation.operators import Identity
from ccpi.optimisation.funcs import Norm2sq
from ccpi.optimisation.algorithms import GradientDescent
from ccpi.optimisation.algorithms import CGLS
@@ -26,7 +26,7 @@ class TestAlgorithms(unittest.TestCase):
def setUp(self):
#wget.download('https://github.com/DiamondLightSource/Savu/raw/master/test_data/data/24737_fd.nxs')
#self.filename = '24737_fd.nxs'
- # we use TomoIdentity as the operator and solve the simple least squares
+ # we use Identity as the operator and solve the simple least squares
# problem for a random-valued ImageData or AcquisitionData b?
# Then we know the minimiser is b itself
@@ -48,7 +48,7 @@ class TestAlgorithms(unittest.TestCase):
# fill with random numbers
b.fill(numpy.random.random(x_init.shape))
- identity = TomoIdentity(geometry=ig)
+ identity = Identity(ig)
norm2sq = Norm2sq(identity, b)
@@ -66,7 +66,7 @@ class TestAlgorithms(unittest.TestCase):
# fill with random numbers
b.fill(numpy.random.random(x_init.shape))
- identity = TomoIdentity(geometry=ig)
+ identity = Identity(ig)
alg = CGLS(x_init=x_init, operator=identity, data=b)
alg.max_iteration = 1
@@ -83,7 +83,7 @@ class TestAlgorithms(unittest.TestCase):
x_init = ImageData(geometry=ig)
x_init.fill(numpy.random.random(x_init.shape))
- identity = TomoIdentity(geometry=ig)
+ identity = Identity(ig)
norm2sq = Norm2sq(identity, b)
norm2sq.L = 2 * norm2sq.c * identity.norm()**2
@@ -121,4 +121,4 @@ class TestAlgorithms(unittest.TestCase):
if __name__ == '__main__':
unittest.main()
- \ No newline at end of file
+
diff --git a/Wrappers/Python/test/test_functions.py b/Wrappers/Python/test/test_functions.py
index 05bdd7a..b428c12 100644
--- a/Wrappers/Python/test/test_functions.py
+++ b/Wrappers/Python/test/test_functions.py
@@ -17,15 +17,10 @@ from ccpi.framework import BlockDataContainer
from numbers import Number
from ccpi.optimisation.operators import Gradient
-#from ccpi.optimisation.functions import SimpleL2NormSq
from ccpi.optimisation.functions import L2NormSquared
-#from ccpi.optimisation.functions import SimpleL1Norm
from ccpi.optimisation.functions import L1Norm, MixedL21Norm
-from ccpi.optimisation.funcs import Norm2sq
-# from ccpi.optimisation.functions.L2NormSquared import SimpleL2NormSq, L2NormSq
-# from ccpi.optimisation.functions.L1Norm import SimpleL1Norm, L1Norm
-#from ccpi.optimisation.functions import mixed_L12Norm
+from ccpi.optimisation.functions import Norm2sq
from ccpi.optimisation.functions import ZeroFunction
from ccpi.optimisation.functions import FunctionOperatorComposition
diff --git a/Wrappers/Python/test/test_run_test.py b/Wrappers/Python/test/test_run_test.py
index c698032..9b4d53b 100755
--- a/Wrappers/Python/test/test_run_test.py
+++ b/Wrappers/Python/test/test_run_test.py
@@ -8,16 +8,15 @@ from ccpi.framework import ImageGeometry
from ccpi.framework import AcquisitionGeometry
from ccpi.optimisation.algorithms import FISTA
#from ccpi.optimisation.algs import FBPD
-from ccpi.optimisation.funcs import Norm2sq
+from ccpi.optimisation.functions import Norm2sq
from ccpi.optimisation.functions import ZeroFunction
from ccpi.optimisation.funcs import Norm1
-from ccpi.optimisation.funcs import TV2D
from ccpi.optimisation.funcs import Norm2
-from ccpi.optimisation.ops import LinearOperatorMatrix
-from ccpi.optimisation.ops import TomoIdentity
-from ccpi.optimisation.ops import Identity
-from ccpi.optimisation.ops import PowerMethodNonsquare
+from ccpi.optimisation.operators import LinearOperatorMatrix
+from ccpi.optimisation.operators import Identity
+#from ccpi.optimisation.ops import PowerMethodNonsquare
+from ccpi.optimisation.operators import LinearOperator
import numpy.testing
@@ -220,7 +219,7 @@ class TestAlgorithms(unittest.TestCase):
# Create object instances with the test data A and b.
f = Norm2sq(A, b, c=0.5, memopt=True)
- f.L = PowerMethodNonsquare(A, 25, x_init)[0]
+ f.L = LinearOperator.PowerMethod(A, 25, x_init)[0]
print ("Lipschitz", f.L)
g0 = ZeroFun()
@@ -289,7 +288,7 @@ class TestAlgorithms(unittest.TestCase):
# Data fidelity term
f_denoise = Norm2sq(I, y, c=0.5, memopt=True)
x_init = ImageData(geometry=ig)
- f_denoise.L = PowerMethodNonsquare(I, 25, x_init)[0]
+ f_denoise.L = LinearOperator.PowerMethod(I, 25, x_init)[0]
# 1-norm regulariser
lam1_denoise = 1.0
@@ -335,43 +334,6 @@ class TestAlgorithms(unittest.TestCase):
self.assertNumpyArrayAlmostEqual(
x_fbpd1_denoise.array.flatten(), x1_denoise.value, 5)
- x1_cvx = x1_denoise.value
- x1_cvx.shape = (N, N)
-
- # Now TV with FBPD
- lam_tv = 0.1
- gtv = TV2D(lam_tv)
- gtv(gtv.op.direct(x_init_denoise))
-
- opt_tv = {'tol': 1e-4, 'iter': 10000}
-
- x_fbpdtv_denoise, itfbpdtv_denoise, timingfbpdtv_denoise,\
- criterfbpdtv_denoise = \
- FBPD(x_init_denoise, gtv.op, None, f_denoise, gtv, opt=opt_tv)
- print(x_fbpdtv_denoise)
- print(criterfbpdtv_denoise[-1])
-
- # Compare to CVXPY
-
- # Construct the problem.
- xtv_denoise = Variable((N, N))
- objectivetv_denoise = Minimize(
- 0.5*sum_squares(xtv_denoise - y.array) + lam_tv*tv(xtv_denoise))
- probtv_denoise = Problem(objectivetv_denoise)
-
- # The optimal objective is returned by prob.solve().
- resulttv_denoise = probtv_denoise.solve(
- verbose=False, solver=SCS, eps=1e-12)
-
- # The optimal solution for x is stored in x.value and optimal objective value
- # is in result as well as in objective.value
- print("CVXPY least squares plus 1-norm solution and objective value:")
- print(xtv_denoise.value)
- print(objectivetv_denoise.value)
-
- self.assertNumpyArrayAlmostEqual(
- x_fbpdtv_denoise.as_array(), xtv_denoise.value, 1)
-
else:
self.assertTrue(cvx_not_installable)