diff --git a/SimPEG/PropMaps.py b/SimPEG/PropMaps.py index d7bd2ba2..bddd3df7 100644 --- a/SimPEG/PropMaps.py +++ b/SimPEG/PropMaps.py @@ -238,3 +238,6 @@ class PropMap(object): def __call__(self, vec): return self.PropModel(self, vec) + def __contains__(self, val): + activeMaps = [name for name in self._properties if getattr(self, '%sMap'%name) is not None] + return val in activeMaps diff --git a/SimPEG/Tests/test_PropMaps.py b/SimPEG/Tests/test_PropMaps.py index c2726d71..6861f09b 100644 --- a/SimPEG/Tests/test_PropMaps.py +++ b/SimPEG/Tests/test_PropMaps.py @@ -36,6 +36,10 @@ class TestPropMaps(unittest.TestCase): assert PM.muMap is None assert PM.muIndex is None + assert 'sigma' in PM + assert 'mu' not in PM + assert 'mui' not in PM + m = PM(np.r_[1.,2,3]) assert m.mu == mu_0 assert m.muModel is None @@ -67,6 +71,10 @@ class TestPropMaps(unittest.TestCase): assert pm.nP == 6 + assert 'sigma' in PM + assert 'mu' in PM + assert 'mui' not in PM + assert np.all(pm.sigmaModel == [1.,2,3]) assert np.all(pm.sigma == np.exp([1.,2,3])) assert np.all(pm.muModel == [4.,5,6]) @@ -83,6 +91,10 @@ class TestPropMaps(unittest.TestCase): assert pm.nP == 3 + assert 'sigma' in PM + assert 'mu' in PM + assert 'mui' not in PM + assert np.all(pm.sigmaModel == [1,2,3]) assert np.all(pm.sigma == np.exp([1,2,3])) assert np.all(pm.muModel == [1,2,3]) @@ -103,6 +115,11 @@ class TestPropMaps(unittest.TestCase): assert pm.sigmaDeriv is not None assert pm.rhoDeriv is not None + assert 'sigma' in PM + assert 'rho' not in PM + assert 'mu' not in PM + assert 'mui' not in PM + assert pm.mu == mu_0 assert pm.mui == 1.0/mu_0 assert pm.muMap is None @@ -121,6 +138,11 @@ class TestPropMaps(unittest.TestCase): assert pm.sigmaDeriv is not None assert pm.rhoDeriv is not None + assert 'sigma' not in PM + assert 'rho' in PM + assert 'mu' not in PM + assert 'mui' not in PM + self.assertRaises(AssertionError, MyReciprocalPropMap, [('rho', iMap), ('sigma', iMap)]) self.assertRaises(AssertionError, MyReciprocalPropMap, [('sigma', iMap), ('rho', iMap)])