def wind(self, unit='meters_sec'): """Returns a dict containing wind info :param unit: the unit of measure for the wind values. May be: '*meters_sec*' (default), '*miles_hour*, '*km_hour*', '*knots*' or '*beaufort*' :type unit: str :returns: a dict containing wind info """ if unit == 'meters_sec': return self.wnd elif unit == 'miles_hour': wind_dict = {k: self.wnd[k] for k in self.wnd if self.wnd[k] is not None} return measurables.metric_wind_dict_to_imperial(wind_dict) elif unit == 'km_hour': wind_dict = {k: self.wnd[k] for k in self.wnd if self.wnd[k] is not None} return measurables.metric_wind_dict_to_km_h(wind_dict) elif unit == 'knots': wind_dict = {k: self.wnd[k] for k in self.wnd if self.wnd[k] is not None} return measurables.metric_wind_dict_to_knots(wind_dict) elif unit == 'beaufort': wind_dict = {k: self.wnd[k] for k in self.wnd if self.wnd[k] is not None} return measurables.metric_wind_dict_to_beaufort(wind_dict) else: raise ValueError("Invalid value for target wind conversion unit")
def test_metric_wind_dict_to_imperial(self): input = {'speed': 2, 'gust': 3, 'deg': 7.89} expected = {'speed': 4.47388, 'gust': 6.71082, 'deg': 7.89} result = measurables.metric_wind_dict_to_imperial(input) self.assertEqual(expected, result)