Regularization is on the Model, so it needs to take that as input.

Testing is completed on every SimPEG regularization object by default.
This commit is contained in:
rowanc1
2014-01-22 19:17:15 -07:00
parent 1055b613ce
commit 5452f2be4b
4 changed files with 125 additions and 89 deletions
+30
View File
@@ -0,0 +1,30 @@
import numpy as np
import unittest
from SimPEG import *
from TestUtils import checkDerivative
from scipy.sparse.linalg import dsolve
import inspect
class RegularizationTests(unittest.TestCase):
def setUp(self):
self.mesh2 = Mesh.TensorMesh([3, 2])
def test_regularization(self):
for R in dir(Regularization):
r = getattr(Regularization, R)
if not inspect.isclass(r): continue
if not issubclass(r, Regularization.BaseRegularization):
continue
# if 'Regularization' not in R: continue
print 'Check:', R
model = r.modelPair(self.mesh2)
reg = r(self.mesh2, model)
m = model.example()
passed = checkDerivative(lambda m : [reg.modelObj(m), reg.modelObjDeriv(m)], m, plotIt=False)
self.assertTrue(passed)
if __name__ == '__main__':
unittest.main()