def setUpClass(self): """ Runs the short simulation over reynolds mountain east """ run_dir = os.path.abspath( os.path.join(os.path.dirname(awsm.__file__), '..', 'tests', 'RME')) # Gold paths self.gold = os.path.abspath( os.path.join(os.path.dirname(awsm.__file__), '..', 'tests', 'RME', 'gold')) self.gold_em = os.path.join(self.gold, 'em.nc') self.gold_snow = os.path.join(self.gold, 'snow.nc') # Output self.output = os.path.join( run_dir, 'output/rme/devel/wy1986/rme_test/runs/run3337_3344') self.output_em = os.path.join(self.output, 'em.nc') self.output_snow = os.path.join(self.output, 'snow.nc') # Remove any potential files to ensure fresh run if os.path.isdir(self.output): shutil.rmtree(self.output) # for f in [self.output_snow,self.output_em]: # if os.path.isfile(f): # os.remove(f) config = os.path.join(run_dir, 'config.ini') # Run simulation can_i_run_awsm(config)
def test_base_run(self): """ Test the config for running configurations with different options """ # test the base run with the config file result = can_i_run_awsm(self.config_file) self.assertTrue(result) # self.assertTrue(False) # test the base run with the config file result = can_i_run_awsm(self.base_config) self.assertTrue(result)
def test_isnobal_restart(self): """ Test standard iSnobal with crash restart """ config = deepcopy(self.base_config) config.raw_cfg['awsm master']['model_type'] = 'isnobal' config.raw_cfg['awsm master']['make_nc'] = False config.apply_recipes() config = cast_all_variables(config, config.mcfg) result = can_i_run_awsm(config) # run again with restart config = deepcopy(self.base_config) config.raw_cfg['awsm master']['model_type'] = 'isnobal' config.raw_cfg['awsm master']['make_nc'] = False config.raw_cfg['isnobal restart']['restart_crash'] = True config.raw_cfg['isnobal restart']['wyh_restart_output'] = 1464 config.apply_recipes() config = cast_all_variables(config, config.mcfg) self.assertTrue(result)
def test_pysnobal_netcdf(self): """ Test PySnobal with netCDF Forcing """ config = deepcopy(self.base_config) config.raw_cfg['awsm master']['make_in'] = False config.raw_cfg['awsm master']['mask_isnobal'] = True config.raw_cfg['ipysnobal']['forcing_data_type'] = 'netcdf' config.apply_recipes() config = cast_all_variables(config, config.mcfg) result = can_i_run_awsm(config) self.assertTrue(result)
def test_smrf_pysnobal_thread(self): """ Test smrf passing variables to PySnobal threaded """ config = deepcopy(self.base_config) config.raw_cfg['awsm master']['run_smrf'] = False config.raw_cfg['awsm master']['make_in'] = False config.raw_cfg['awsm master']['model_type'] = 'smrf_ipysnobal' config.raw_cfg['system']['threading'] = True config.apply_recipes() config = cast_all_variables(config, config.mcfg) result = can_i_run_awsm(config) self.assertTrue(result)
def test_pysnobal(self): """ Test standard Pysnobal """ config = deepcopy(self.base_config) # config.raw_cfg['files']['init_type'] = 'ipw_out' # config.raw_cfg['files']['init_file'] = './RME/snow.2538' config.apply_recipes() config = cast_all_variables(config, config.mcfg) # ensure that the recipes are used self.assertTrue(config.cfg['awsm master']['model_type'] == 'ipysnobal') result = can_i_run_awsm(config) self.assertTrue(result)
def test_isnobal(self): """ Test standard iSnobal """ config = deepcopy(self.base_config) config.raw_cfg['awsm master']['make_nc'] = True config.raw_cfg['awsm master']['mask_isnobal'] = True config.raw_cfg['awsm master']['model_type'] = 'isnobal' config.apply_recipes() config = cast_all_variables(config, config.mcfg) # ensure that the recipes are used self.assertTrue(config.cfg['awsm master']['model_type'] == 'isnobal') result = can_i_run_awsm(config) self.assertTrue(result)