# Computer Lab 06, Modules and testing

## Practical work

### Celsius and Fahrenheit

Search the internet and find the conversion equations between the Celsius and Fahrenheit temperature scales.

### Module ''temperature.py''

Create module temperature.py with 2 functions:

• celsius_to_fahrenheit(degrees_celsius) and
• fahrenheit_to_celsius(degrees_fahrenheit).

Specifications:

• Function celsius_to_fahrenheit shall accept a numeric argument representing a temperature in degrees Celsius and will return a numeric value representing the temperature in degrees Fahrenheit.
• Function celsius_to_fahrenheit shall accept a numeric argument representing a temperature in degrees Fahrenheit and will return a numeric value representing the temperature in degrees Celsius.

### Test the functions

• Document the usage of the functions by examples in docstrings, and try to run them using the doctest module. Inspire yourself in the following code:

# file average.py
def average(x,y):
"""Return the average of 2 numbers.

>>> average(10,20)
15.0
>>> average(1.5, 2.0)
1.75
"""
return (x + y) / 2

if __name__ == "__main__":
import doctest
doctest.testmod(verbose=True)

• Optionally, implement test cases using module unittest, also from the standard library.
• Optionally, use a simple testing tool implemented in module testing.py. Create a test script test_temperature.py that will use our testing.py module to test the same situations that you used above to document the functions.

### Convertor

Still in module temperature.py, create a function convert which shall

• accept a single string argument, e.g. '0C', '23.5C', or '122.1F'
• return a similar string containing the temperature in the other scale, including the scale “identifier” C or F at the end of the string.
• Test the function using the above 2 approaches again.

## Homework

• Finish all the above tasks, and the tasks from last week, if you haven't finished them yet.
• Finish Homework 3: vectorlib and upload your solution to the upload system! See the deadline there!
• Prepare for the midterm test! Its contents may be based on all the topics covered so far.
courses/be5b33prg/labs/week_06.txt · Last modified: 2018/11/08 11:41 by iscenahm