class StdEnKFTest(ResTest): def setUp(self): self.rng = RandomNumberGenerator(RngAlgTypeEnum.MZRAN, RngInitModeEnum.INIT_DEFAULT) self.module = AnalysisModule(name = "STD_ENKF" ) def toggleKey(self, key): self.assertTrue( self.module.hasVar( key )) # check it is true self.assertTrue( self.module.setVar( key , True ) ) self.assertTrue( self.module.getBool(key) ) # set it to false self.assertTrue( self.module.setVar( key , False ) ) self.assertFalse( self.module.getBool(key) ) def test_EE_option(self): self.toggleKey( 'USE_EE' ) def test_GE_option(self): self.toggleKey( 'USE_GE' ) def test_scaledata_option(self): self.toggleKey( 'ANALYSIS_SCALE_DATA' )
def setUp(self): self.rng = RandomNumberGenerator(RngAlgTypeEnum.MZRAN, RngInitModeEnum.INIT_DEFAULT) if sys.platform.lower() == 'darwin': self.libname = res.res_lib_path + "/std_enkf_debug.dylib" else: self.libname = res.res_lib_path + "/std_enkf_debug.so" self.module = AnalysisModule(lib_name=self.libname)
def setUp(self): self.rng = RandomNumberGenerator(RngAlgTypeEnum.MZRAN, RngInitModeEnum.INIT_DEFAULT) if sys.platform.lower() == 'darwin': lib_name = "std_enkf_debug.dylib" else: lib_name = "std_enkf_debug.so" self.libname = find_file(self.SOURCE_ROOT, lib_name) if self.libname: self.module = AnalysisModule(lib_name=self.libname) else: pytest.skip('Debug library not found')
def test_initX_enkf_linalg_lowrankCinv(self): """Test AnalysisModule.initX with EE=False and GE=False""" mod = AnalysisModule(name="STD_ENKF") A, S, R, dObs, E, D = self._n_identity_mcs() self.assertFalse(mod.getBool("USE_EE")) self.assertFalse(mod.getBool("USE_GE")) elt_a, elt_b = 1.222, -0.111 vals = (elt_a, elt_b, elt_b, elt_b, elt_a, elt_b, elt_b, elt_b, elt_a) expected = self.construct_matrix(3, vals) X = mod.initX(A, S, R, dObs, E, D, self.rng) self._matrix_close(X, expected)
class StdEnKFDebugTest(ResTest): def setUp(self): self.rng = RandomNumberGenerator(RngAlgTypeEnum.MZRAN, RngInitModeEnum.INIT_DEFAULT) if sys.platform.lower() == 'darwin': self.libname = res.res_lib_path + "/std_enkf_debug.dylib" else: self.libname = res.res_lib_path + "/std_enkf_debug.so" self.module = AnalysisModule(lib_name=self.libname) def toggleKey(self, key): self.assertTrue(self.module.hasVar(key)) # check it is true self.assertTrue(self.module.setVar(key, True)) self.assertTrue(self.module.getBool(key)) # set it to false self.assertTrue(self.module.setVar(key, False)) self.assertFalse(self.module.getBool(key)) def test_EE_option(self): self.toggleKey('USE_EE') def test_scaledata_option(self): self.toggleKey('ANALYSIS_SCALE_DATA') def test_prefix(self): self.assertTrue(self.module.hasVar("PREFIX")) self.assertTrue(self.module.setVar("PREFIX", "Path"))
class StdEnKFDebugTest(ResTest): def setUp(self): self.rng = RandomNumberGenerator(RngAlgTypeEnum.MZRAN, RngInitModeEnum.INIT_DEFAULT) if sys.platform.lower() == "darwin": lib_name = "std_enkf_debug.dylib" else: lib_name = "std_enkf_debug.so" self.libname = find_file(self.SOURCE_ROOT, lib_name) if self.libname: self.module = AnalysisModule(lib_name=self.libname) else: pytest.skip("Debug library not found") def toggleKey(self, key): self.assertTrue(self.module.hasVar(key)) # check it is true self.assertTrue(self.module.setVar(key, True)) self.assertTrue(self.module.getBool(key)) # set it to false self.assertTrue(self.module.setVar(key, False)) self.assertFalse(self.module.getBool(key)) def test_EE_option(self): self.toggleKey("USE_EE") def test_scaledata_option(self): self.toggleKey("ANALYSIS_SCALE_DATA") def test_prefix(self): self.assertTrue(self.module.hasVar("PREFIX")) self.assertTrue(self.module.setVar("PREFIX", "Path"))
def test_set_get_var(self): mod = AnalysisModule(name="STD_ENKF") with self.assertRaises(KeyError): mod.setVar("NO-NOT_THIS_KEY", 100) with self.assertRaises(KeyError): mod.getInt("NO-NOT_THIS_KEY")
def test_set_get_var(self): mod = AnalysisModule(100, AnalysisModeEnum.ENSEMBLE_SMOOTHER) with self.assertRaises(KeyError): mod.setVar("NO-NOT_THIS_KEY", 100) with self.assertRaises(KeyError): mod.getInt("NO-NOT_THIS_KEY")
def test_analysis_module(self): am = AnalysisModule(100, AnalysisModeEnum.ITERATED_ENSEMBLE_SMOOTHER) self.assertTrue(am.setVar("ITER", "1")) self.assertEqual(am.name(), "IES_ENKF") self.assertTrue( am.checkOption(AnalysisModuleOptionsEnum.ANALYSIS_ITERABLE)) self.assertTrue(am.hasVar("ITER")) self.assertIsInstance(am.getDouble("ENKF_TRUNCATION"), float) self.assertIsInstance(am.getInt("ITER"), int)
def test_set_get_var(): mod = AnalysisModule(100, 1) with pytest.raises(KeyError): mod.setVar("NO-NOT_THIS_KEY", 100) with pytest.raises(KeyError): mod.getInt("NO-NOT_THIS_KEY")
def test_analysis_module(): am = AnalysisModule(100, 2) assert am.setVar("ITER", "1") assert am.name() == "IES_ENKF" assert am.hasVar("ITER") assert isinstance(am.getDouble("ENKF_TRUNCATION"), float) assert isinstance(am.getInt("ITER"), int)
def test_initX_enkf_linalg_lowrank_EE(self): """Test AnalysisModule.initX with EE=True and GE=False""" mod = AnalysisModule(name="STD_ENKF") A, S, R, dObs, E, D = self._n_identity_mcs() mod.setVar('USE_EE', True) self.assertTrue(mod.getBool('USE_EE')) self.assertFalse(mod.getBool('USE_GE')) elt_a, elt_b = 1.33, -0.167 vals = (elt_a, elt_b, elt_b, elt_b, elt_a, elt_b, elt_b, elt_b, elt_a) expected = self.construct_matrix(3, vals) X = mod.initX(A, S, R, dObs, E, D, self.rng) self._matrix_close(X, expected)
def test_initX_subspace_inversion_algorithm(self): """Test AnalysisModule.initX with EE=True and GE=True, the subspace inversion algorithm""" mod = AnalysisModule(name="STD_ENKF") A, S, R, dObs, E, D = self._n_identity_mcs() mod.setVar("USE_EE", True) mod.setVar("USE_GE", True) self.assertTrue(mod.getBool("USE_EE")) self.assertTrue(mod.getBool("USE_GE")) elt_a, elt_b = 1.33, -0.167 vals = (elt_a, elt_b, elt_b, elt_b, elt_a, elt_b, elt_b, elt_b, elt_a) expected = self.construct_matrix(3, vals) X = mod.initX(A, S, R, dObs, E, D, self.rng) self._matrix_close(X, expected)
def test_initX_subspace_inversion_algorithm(self): """Test AnalysisModule.initX with EE=True and GE=True, the subspace inversion algorithm""" mod = AnalysisModule(name="STD_ENKF") A, S, R, dObs, E, D = self._n_identity_mcs() mod.setVar('USE_EE', True) mod.setVar('USE_GE', True) self.assertTrue(mod.getBool('USE_EE')) self.assertTrue(mod.getBool('USE_GE')) vals = (1.39, -0.111, -0.278, -0.111, 1.39, -0.278, -0.278, -0.278, 1.56) expected = self.construct_matrix(3, vals) X = mod.initX(A, S, R, dObs, E, D, self.rng) self._matrix_close(X, expected)
def createAnalysisModule(self): rng = RandomNumberGenerator(RngAlgTypeEnum.MZRAN, RngInitModeEnum.INIT_DEFAULT) return AnalysisModule(lib_name=self.libname)
def setUp(self): self.rng = RandomNumberGenerator(RngAlgTypeEnum.MZRAN, RngInitModeEnum.INIT_DEFAULT) self.libname = res.res_lib_path + "/std_enkf_debug.so" self.module = AnalysisModule(lib_name=self.libname)
def setUp(self): self.rng = RandomNumberGenerator(RngAlgTypeEnum.MZRAN, RngInitModeEnum.INIT_DEFAULT) self.module = AnalysisModule(name = "STD_ENKF" )
def test_create_internal(self): with self.assertRaises(KeyError): mod = AnalysisModule(name="STD_ENKFXXX") mod = AnalysisModule(name="STD_ENKF")
def createAnalysisModule(self): return AnalysisModule(lib_name=self.libname)