1: //test_stopwatch.cpp
2: //A test driver for the Scobey::Stopwatch class.
4: #include <iostream>
5: using namespace std;
7: #include "utilities.h"
8: using Scobey::Stopwatch;
9: using Scobey::Pause;
11: int main()
12: {
13: Pause(0, "\nTesting the Scobey::Stopwatch class ..."
14: "\n\nThis program performs three different calculations, "
15: "times each, and displays\nthe timing results in two ways: "
16: "once by accessing the elapsed seconds directly\nand once "
17: "using the display() method of the Stopwatch class. In the "
18: "first case,\nthe event being timed has no name, in the second "
19: "case it is given a name in the\nconstructor of the Stopwatch "
20: "object, and in the last case it is given a name\nvia a call "
21: "to the setEventName() method.");
23: int sum = 0;
24: Stopwatch timer1;
25: timer1.start();
26: for (int i=1; i<=500; i++) sum += 6;
27: timer1.stop();
28: cout << "sum = " << sum << "\n";
29: cout << "Time taken to add 500 values, each equal to 6, is "
30: << timer1.getSeconds() << " seconds.\n";
31: Pause(0, "The above information was obtained by calling the "
32: "timer's getSeconds() method.");
33: Pause(0, "Now we report the same information by calling the "
34: "timer's display() method.");
35: timer1.display();
36: Pause();
38: sum = 0;
39: Stopwatch timer2("adding the same 500 values (with delay)");
40: timer2.start();
41: for (int i=1; i<=500; i++)
42: {
43: sum += 6;
44: timer2.delay();
45: }
46: timer2.stop();
47: cout << "sum = " << sum << "\n";
48: cout << "Time taken for " << timer2.getEventName() << " = "
49: << timer2.getSeconds() << " seconds\n";
50: Pause();
51: Pause(0, "Again we report the same information by calling the "
52: "timer's display() method.");
53: timer2.display();
54: Pause();
56: sum = 0;
57: Stopwatch timer3;
58: timer3.setEventName("adding 1000 values");
59: timer3.start();
60: for (int i=1; i<=1000; i++)
61: {
62: sum += 6;
63: timer3.delay();
64: }
65: timer3.stop();
66: cout << "sum = " << sum << "\n";
67: cout << "Time taken to add 1000 values, each equal to 6 (with delay) = "
68: << timer3.getSeconds() << " seconds\n";
69: Pause();
70: Pause(0, "And now we report the same information by calling the "
71: "timer's display() method.");
72: timer3.display();
73: Pause();
75: Pause(0, "No more tests to perform."
76: "\nProgram will now terminate.");
77: }