# Path: braubuddy/utils.py
# def abbreviate_temp_units(units):
# def convert_temp_units(temp, units_from='celsius', units_to='fahrenheit'):
# def map_temp_units_to_symbol(units):
# 
# Path: braubuddy/thermometer/base.py
# class IThermometer(object):
#     """
#     Interface for creating a thermometer for use with :mod:`braudbuddy`.
#     """
#     __metaclass__ = abc.ABCMeta
# 
#     def __init__(self):
#         pass
# 
#     @abc.abstractmethod
#     def get_temperature(self, units='celsius'):
#         """
#         Get thermometer temperature in celsius or farenheit.
# 
#         :param units: Temperature units, 'celsius' (default) or 'farenheit.'
#         :type units: :class:`str`
#         :returns: Thermometer temperature reading
#         :rtype: :class:`float`
#         :raises: :class:`braubuddy.thermometer.ReadError` if temperature can
#             not be read.
#         """
#         pass


import random
from braubuddy import utils
from braubuddy.thermometer import IThermometer


class DummyThermometer(IThermometer):
    """
    A dummy thermometer which generates random temperature readings within
    a defined range. Use for testing.

    :param `lower_bound`: Lower bound of returned temperature range
    :type `lower_bound`: :class:`int`
    :param `upper_bound`: Upper bound of returned temperature range
    :type `upper_bound`: :class:`int`
    """

    def __init__(self, lower_bound=20, upper_bound=30):
        # Set random range bounds
        self.lower_bound = lower_bound
        self.upper_bound = upper_bound
        super(DummyThermometer, self).__init__()

    def get_temperature(self, units='celsius'):
        # Returns random temperature within defined range
        current_temp = random.randrange(self.lower_bound, self.upper_bound)
        if units == 'fahrenheit':

# Path: braubuddy/utils.py
# def abbreviate_temp_units(units):
# def convert_temp_units(temp, units_from='celsius', units_to='fahrenheit'):
# def map_temp_units_to_symbol(units):
# 
# Path: braubuddy/thermometer/base.py
# class IThermometer(object):
#     """
#     Interface for creating a thermometer for use with :mod:`braudbuddy`.
#     """
#     __metaclass__ = abc.ABCMeta
# 
#     def __init__(self):
#         pass
# 
#     @abc.abstractmethod
#     def get_temperature(self, units='celsius'):
#         """
#         Get thermometer temperature in celsius or farenheit.
# 
#         :param units: Temperature units, 'celsius' (default) or 'farenheit.'
#         :type units: :class:`str`
#         :returns: Thermometer temperature reading
#         :rtype: :class:`float`
#         :raises: :class:`braubuddy.thermometer.ReadError` if temperature can
#             not be read.
#         """
#         pass


# Path: braubuddy/thermometer/dummy.py
import random
from braubuddy import utils
from braubuddy.thermometer import IThermometer



class DummyThermometer(IThermometer):
    """
    A dummy thermometer which generates random temperature readings within
    a defined range. Use for testing.

    :param `lower_bound`: Lower bound of returned temperature range
    :type `lower_bound`: :class:`int`
    :param `upper_bound`: Upper bound of returned temperature range
    :type `upper_bound`: :class:`int`
    """

    def __init__(self, lower_bound=20, upper_bound=30):
        # Set random range bounds
        self.lower_bound = lower_bound
        self.upper_bound = upper_bound
        super(DummyThermometer, self).__init__()

    def get_temperature(self, units='celsius'):
        # Returns random temperature within defined range
        current_temp = random.randrange(self.lower_bound, self.upper_bound)
        if units == 'fahrenheit':

            current_temp = utils.convert_temp_units(