Notes from 11/7

max.cpp

#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";
    }
}