1: //test_operationcounter.cpp
2: //A test driver for the Scobey::OperationCounter class.
4: #include <iostream>
5: using namespace std;
7: #include "utilities.h"
8: using Scobey::OperationCounter;
9: using Scobey::Pause;
11: int main()
12: {
13: Pause(0, "\nTesting the Scobey::OperationCounter class ..."
14: "\n\nOur first display is the output from displayNonZeroCounts "
15: "immediately after\ncreating the counter object, and followed "
16: "by a default pause.");
18: OperationCounter counter;
19: counter.displayNonZeroCounts();
20: Pause();
22: Pause(0, "Our next display is the output from displayAllCounts "
23: "immediately after\ncreating the counter object, and followed "
24: "by a default pause.");
25: counter.displayAllCounts();
26: Pause();
28: Pause(0, "\nNext, we will first count 1 comparison, 2 exchanges, "
29: "and 3 assignments.\nThen we will set the name of the "
30: "\"other\" operation to \"Function Calls\",\nand count 4 of "
31: "these operations. No such operations are actually performed."
32: "\nThen we show both displays after those counts. Note that "
33: "both displays are\nthe same, because everything, including the "
34: "\"other\" operation, was counted\nat least once.");
36: counter.incrementComparisons();
37: counter.incrementExchanges(2);
38: counter.incrementAssignments(3);
39: counter.setNameOfOtherOp("Function Calls");
40: counter.incrementOtherOp(4);
41: counter.displayNonZeroCounts();
42: Pause();
43: counter.displayAllCounts();
44: Pause();
46: counter.reset();
47: Pause(0, "\nFinally, we reset the counter, count just 2 "
48: "comparisons and 4 assignments,\nand then show the same "
49: "two displays as above.");
51: counter.incrementComparisons(2);
52: counter.incrementAssignments(4);
54: counter.displayNonZeroCounts();
55: Pause();
56: counter.displayAllCounts();
57: Pause();
58: Pause(0, "Note that the default name of the \"other\" operation "
59: "is \"Other Op\" if no name\nis supplied by the client.");
61: Pause(0, "No more tests to perform.\n"
62: "Program will now terminate.");
63: }