Files
simpeg/SimPEG/Tests/test_regularization.py
T
rowanc1 5452f2be4b Regularization is on the Model, so it needs to take that as input.
Testing is completed on every SimPEG regularization object by default.
2014-01-22 19:17:15 -07:00

31 lines
911 B
Python

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()