#include <iostream>
using namespace std;
// Compute the maximum of two numbers.
double myMax (double a, double b); // declaration/prototype
void testMyMax(double a, double b, double expected);
double average(double a, double b, double c);
void testAverage(double a, double b, double c, double expected);
void passFail(double actual, double expected);
//double maxOf3(double a, double b, double c);
int main()
{
// "Test cases" for Test-Driven Development
testMyMax(2.4, 8.1, 8.1);
testMyMax(70.04, 70.01, 70.04);
testMyMax(70, 70, 70);
testMyMax(-4, -10, -4);
testMyMax(0, -1, 0);
testAverage(90, 80, 100, 90);
return 0;
}
double average(double a, double b, double c)
{
return (a+b+c) / 3;
}
void testAverage(double a, double b, double c, double expected)
{
double r = average(a, b, c);
cout << "average(" << a << "," << b << "," << c << ") is " << r;
passFail(r, expected);
}
double myMax(double a, double b)
{
if(a > b)
{
return a;
}
else
{
return b;
}
}
void testMyMax(double a, double b, double expected)
{
double r3 = myMax(a, b); // function call
cout << "myMax(" << a << ", " << b << ") is " << r3;
passFail(r3, expected);
}
void passFail(double actual, double expected)
{
if(actual == expected)
{
cout << " ==> PASS\n";
}
else
{
cout << " ==> FAIL\n";
}
}