def auto_setup_uwg(epw_path=DEFAULT_EPW_PATH, param_path=DEFAULT_PARAM_PATH, log_file_name=None, log_level=None, uwg_param_dir=None): """Set up uwg object from initialize.uwg.""" if log_file_name and log_level: setup_log_file(log_file_name, log_level) if param_path: model = UWG.from_param_file(param_path, epw_path=epw_path, new_epw_dir=NEW_DIR) else: model = UWG(epw_path, new_epw_dir=NEW_DIR) # Increase precision for testing model.epw_precision = 16 return model
def test_init(): """Test initialization methods.""" test_dir = os.path.abspath(os.path.dirname(__file__)) param_path = os.path.join(test_dir, 'parameters', 'initialize_singapore.uwg') epw_path = os.path.join(test_dir, 'epw', 'SGP_Singapore.486980_IWEC.epw') refBEM, refSch = UWG.load_refDOE() refBEM[0][2][0].building.shgc = 0.9 ref_bem_vec = [refBEM[0][2][0], refBEM[2][2][0]] ref_sch_vec = [refSch[0][2][0], refSch[2][2][0]] # base init UWG(epw_path) # from param_file UWG.from_param_file(param_path, epw_path) # from args UWG.from_param_args(bldheight=10.0, blddensity=0.5, vertohor=0.5, zone='1A', treecover=0.1, grasscover=0.1, epw_path=epw_path) model = UWG.from_param_args(10.0, 0.5, 0.5, treecover=0.1, grasscover=0.1, zone='1A', ref_bem_vector=[], ref_sch_vector=[], epw_path=epw_path) model.generate() assert model.ref_bem_vector == [] assert model.ref_sch_vector == [] UWG.from_param_args(10.0, 0.5, 0.5, 0.1, 0.1, '1A', ref_bem_vector=ref_bem_vec, ref_sch_vector=ref_sch_vec, epw_path=epw_path) with pytest.raises(AssertionError): UWG.from_param_args(10.0, 0.5, 0.5, 0.1, 0.1, '1A', ref_bem_vector=ref_bem_vec, ref_sch_vector=ref_sch_vec[:1]) with pytest.raises(AssertionError): UWG.from_param_args(10.0, 0.5, 0.5, 0.1, 0.1, '1A', ref_bem_vector=None, ref_sch_vector=ref_sch_vec) with pytest.raises(Exception): # No epw_path model = UWG.from_param_args(bldheight=10.0, blddensity=0.5, vertohor=0.5, grasscover=0.1, treecover=0.1, zone='1A') model.generate() # from dict data = UWG.from_param_args(10.0, 0.5, 0.5, 0.1, 0.1, '1A').to_dict(include_refDOE=False) UWG.from_dict(data) model1 = UWG.from_param_args(10.0, 0.5, 0.5, 0.1, 0.1, '1A', ref_bem_vector=ref_bem_vec, ref_sch_vector=ref_sch_vec) data = model1.to_dict(include_refDOE=True) model2 = UWG.from_dict(data, epw_path=epw_path) model2.generate() assert model2.ref_bem_vector[0].building.shgc == pytest.approx(0.9, abs=1e-10) assert model2.refBEM[0][2][0].building.shgc == pytest.approx(0.9, abs=1e-10)