def _set_location(self, ltype, value): """Check supplied location data for validity, and update.""" if self._angle == 'degrees': if isinstance(value, (tuple, list)): value = utils.to_dd(*value) setattr(self, '_%s' % ltype, float(value)) setattr(self, '_rad_%s' % ltype, math.radians(float(value))) elif self._angle == 'radians': setattr(self, '_rad_%s' % ltype, float(value)) setattr(self, '_%s' % ltype, math.degrees(float(value))) else: raise ValueError('Unknown angle type %r' % self._angle) if ltype == 'latitude' and not -90 <= self._latitude <= 90: raise ValueError('Invalid latitude value %r' % value) elif ltype == 'longitude' and not -180 <= self._longitude <= 180: raise ValueError('Invalid longitude value %r' % value)
def test_to_dd(angle, result): assert '%.3f' % to_dd(*angle) == result
def test_to_dd(): expect('%.3f' % to_dd(52, 0, 54)) == '52.015' expect('%.3f' % to_dd(0, -13, -15)) == '-0.221' expect('%.3f' % to_dd(0, -13.25)) == '-0.221'