def test_data_by_output(): """Test the data_by_output command.""" runner = CliRunner() sql_path = './tests/result/eplusout_hourly.sql' result = runner.invoke(data_by_output, [sql_path, "Zone Ideal Loads Supply Air Total Cooling Energy"]) assert result.exit_code == 0 data_list = json.loads(result.output) assert len(data_list) == 7 assert all(isinstance(HourlyContinuousCollection.from_dict(dc), HourlyContinuousCollection) for dc in data_list) out_names = [ 'Zone Ideal Loads Supply Air Total Cooling Energy', 'Zone Ideal Loads Supply Air Total Heating Energy' ] result = runner.invoke(data_by_output, [sql_path, json.dumps(out_names)]) assert result.exit_code == 0 data_list = json.loads(result.output) assert len(data_list) == 14 assert all(isinstance(HourlyContinuousCollection.from_dict(dc), HourlyContinuousCollection) for dc in data_list) result = runner.invoke(data_by_output, [sql_path, "Zone Lights Total Heating Energy"]) assert result.exit_code == 0 data_list = json.loads(result.output) assert len(data_list) == 0
def test_data_by_outputs(): """Test the data_by_output command.""" runner = CliRunner() sql_path = './tests/result/eplusout_hourly.sql' out_names1 = [ 'Zone Ideal Loads Supply Air Total Cooling Energy', 'Zone Ideal Loads Supply Air Total Heating Energy' ] result = runner.invoke(data_by_outputs, [sql_path] + out_names1) assert result.exit_code == 0 data_list = json.loads(result.output) assert len(data_list) == 2 assert len(data_list[0]) == 7 assert all(isinstance(HourlyContinuousCollection.from_dict(dc), HourlyContinuousCollection) for dc in data_list[0]) out_names2 = [ 'Zone Lights Total Heating Energy', 'Chiller Electricity Energy' ] result = runner.invoke(data_by_outputs, [sql_path] + out_names2) assert result.exit_code == 0 data_list = json.loads(result.output) assert len(data_list) == 2 assert len(data_list[0]) == 0 input_args = [sql_path, json.dumps(out_names1), json.dumps(out_names2)] result = runner.invoke(data_by_outputs, input_args) assert result.exit_code == 0 data_list = json.loads(result.output) assert len(data_list) == 2 assert len(data_list[0]) == 14 assert len(data_list[1]) == 0
def test_dict_methods_continuous(): """Test the to/from dict methods for continuous collection.""" header = Header(Temperature(), 'C', AnalysisPeriod(end_month=1, end_day=1)) values = list(xrange(24)) dc = HourlyContinuousCollection(header, values) dc_dict = dc.to_dict() reconstruced_dc = HourlyContinuousCollection.from_dict(dc_dict) assert dc_dict == reconstruced_dc.to_dict()
def serialize_data(data_dicts): """Reserialize a list of collection dictionaries.""" if len(data_dicts) == 0: return [] elif data_dicts[0]['type'] == 'HourlyContinuousCollection': return [HourlyContinuousCollection.from_dict(data) for data in data_dicts] elif data_dicts[0]['type'] == 'MonthlyCollection': return [MonthlyCollection.from_dict(data) for data in data_dicts] elif data_dicts[0]['type'] == 'DailyCollection': return [DailyCollection.from_dict(data) for data in data_dicts]
def test_set(): runner = CliRunner() input_epw = './tests/epw/chicago.epw' result = runner.invoke( set_, [input_epw, '--exclude-wind', '--exclude-sun', '--json']) assert result.exit_code == 0 data_dict = json.loads(result.output) set_data = HourlyContinuousCollection.from_dict(data_dict) assert len(set_data) == 8760
def test_pmv_by_room(): runner = CliRunner() input_sql = './tests/sql/eplusout.sql' result = runner.invoke(pmv_by_room, [input_sql]) assert result.exit_code == 0 data_dicts = json.loads(result.output) pmv_data = [ HourlyContinuousCollection.from_dict(dat) for dat in data_dicts ] assert len(pmv_data) == 2 assert len(pmv_data[0]) == 8760
def test_adaptive_by_room(): runner = CliRunner() input_sql = './tests/sql/eplusout.sql' input_epw = './tests/epw/chicago.epw' result = runner.invoke(adaptive_by_room, [input_sql, input_epw, '-v', '0.65']) assert result.exit_code == 0 data_dicts = json.loads(result.output) ad_data = [HourlyContinuousCollection.from_dict(dat) for dat in data_dicts] assert len(ad_data) == 2 assert len(ad_data[0]) == 8760
def test_adaptive_by_room_custom(): runner = CliRunner() input_sql = './tests/sql/eplusout.sql' input_epw = './tests/epw/chicago.epw' air_speed = [0.65] * 8760 air_speed = json.dumps(air_speed) comf_par = AdaptiveParameter(False) comf_par.set_neutral_offset_from_comfort_class(1) result = runner.invoke( adaptive_by_room, [input_sql, input_epw, '-v', air_speed, '-cp', str(comf_par)]) assert result.exit_code == 0 data_dicts = json.loads(result.output) ad_data = [HourlyContinuousCollection.from_dict(dat) for dat in data_dicts] assert len(ad_data) == 2 assert len(ad_data[0]) == 8760
def serialize_data(data_dicts): """Reserialize a list of collection dictionaries.""" return [HourlyContinuousCollection.from_dict(dat) for dat in data_dicts]