Your task is to implement and test the following functions

Name

Information needed

Parameters

Result computed

Return type

round_nearest_100

an integer

value

int value

value rounded to

nearest multiple of 100; e,g:

round_nearest_100(204) == 200

round_nearest_100(361) == 400

int

is_odd

an integer

value

int value

true (1) if value is odd, false (0) if value is even

int

poly

a double value

double x 3x ^{2}+ 6x + 12

double

celsuis_to_fahr

a temperature

in Celsius

double tempC

temperature in Fahrenheit,

which is mathematically

equal to (tempC * 9/5) + 32

double

Just as you did in Lab 18, use the ASSERT_EQUALS function to check that each function computes the correct result for a particular input value. Specifically, the first argument value should be the expected value, and the second should be a call to the function that you want to test.

The main
function of your
program should look something like this:

int main()

{

ASSERT_EQUALS(200, round_nearest_100(204));

ASSERT_EQUALS(400, round_nearest_100(361));

/* More tests here... */

printf("All tests passed\n");

return 0;

}

Each function should have at least 4 tests.

If you have a solution open in Visual Studio, close it (File->Close Solution).

Download lab19.zip. Import it into Visual Studio (File->Import...).

Add your code to the source file called Functions.c.

Get one function and its tests completely working before
proceeding
to the next.

Try writing the tests for a function before writing the function itself. You should try to write tests that differ from each other: for example, your tests for the is_odd function should include cases for all possible combinations of even/odd and positive/negative numbers.

For the functions returning a double value, the expected value should be computed using an expression that mimics the computation that the function your are testing will perform. For example:

ASSERT_EQUALS( 3*(2.0*2.0) + 6*2.0 + 12, poly(2.0) );