root/ggpa/TestSentenceStructure.cpp

Revision 1, 4.1 kB (checked in by pantley2, 4 years ago)

GGPA code from the good old days of SIGART

Line 
1 /*
2  * TestSentenceStructure.cpp
3  * Main function to test the SentenceStructure class
4  */
5
6 #include "SentenceStructure.h"
7 #include "TestTools.h"
8
9 #include <iostream>
10
11 /*
12  * testConstructor
13  * No parameters or return types
14  * Test that the values are properly set by the constructor
15  */
16 void testConstructor() {
17     cout << "TestConstructor ..." << endl;
18     string name = "cell";
19     int num = 3;
20     int action = false;
21
22     SentenceStructure sentenceStructure(name, num, action);
23
24     assertEquals(name, sentenceStructure.getName(), "Error in name");
25     assertEquals(num, sentenceStructure.getNumParameters(),
26                  "Wrong number of parameters");
27     assertTrue(action == sentenceStructure.isAction());
28     cout << "Passed" << endl;
29     return;
30 }
31
32 /*
33  * TestSetters
34  * No parameters or return type
35  * Checks to see if the getters and setters world properly
36  */
37 void testSetters() {
38     cout << "TestSetters ..." << endl;
39     string name = "cell";
40     int num = 3;
41     int action = false;
42     int offset = 42;
43
44     SentenceStructure sentenceStructure(name, num, action);
45     sentenceStructure.setOffset(offset);
46
47     assertEquals(offset, sentenceStructure.getOffset(), "Error in offset");
48
49     assertEquals(name, sentenceStructure.getName(), "Error in name");
50     assertEquals(num, sentenceStructure.getNumParameters(),
51                  "Wrong number of parameters");
52     assertTrue(action == sentenceStructure.isAction());
53     cout << "Passed" << endl;
54     return;
55
56 }
57
58 /*
59  * testValueInsertion
60  * No parameters or return types
61  * Tests insertion of new values and retrieval of values
62  */
63 void testValueInsertion() {
64     cout << "TestValueInsertion ..." << endl;
65     string name = "cell";
66     int num = 3;
67     int action = false;
68     int offset = 42;
69     string value0 = "1";
70     string value1 = "2";
71     string value2 = "3";
72
73     SentenceStructure sentenceStructure(name, num, action);
74     sentenceStructure.setOffset(offset);
75
76     // test that you can insert and retrieve values
77     sentenceStructure.addValue(0, value0);
78     assertEquals(1, sentenceStructure.getValues(0).size(),
79                  "Size is incorrect");
80     assertEquals(value0, sentenceStructure.getValues(0).front(),
81                  "Failed to retrieve value0 from parameter 0");
82
83     // add a second value to cell i
84     sentenceStructure.addValue(0, value1);
85     assertEquals(2, sentenceStructure.getValues(0).size(),
86                  "Size is incorrect after adding second value");
87     assertEquals(value0, sentenceStructure.getValues(0)[0],
88                  "Failed to retrieve value0 after inserting value1");
89     assertEquals(value1, sentenceStructure.getValues(0)[1],
90                  "Failed to retrieve value1");
91
92     // check that only new values are added
93     sentenceStructure.addValue(0, value1);
94     assertEquals(2, sentenceStructure.getValues(0).size(),
95                  "Size is incorrect after adding duplicate");
96
97     // check that we can add to more than one parameter
98     sentenceStructure.addValue(1, value2);
99     assertEquals(2, sentenceStructure.getValues(0).size(),
100                  "Size of parameter 0 is incorrect");
101     assertEquals(1, sentenceStructure.getValues(1).size(),
102                  "Size of parameter 1 is incorrect");
103     assertEquals(value0, sentenceStructure.getValues(0)[0],
104                  "Failed to retrieve value0 after inserting value1");
105     assertEquals(value2, sentenceStructure.getValues(1)[0],
106                  "Failed to retrieve value0 after inserting value1");
107    
108     // check the basic values
109     assertEquals(offset, sentenceStructure.getOffset(), "Error in offset");
110
111     assertEquals(name, sentenceStructure.getName(), "Error in name");
112     assertEquals(num, sentenceStructure.getNumParameters(),
113                  "Wrong number of parameters");
114     assertTrue(action == sentenceStructure.isAction());
115     cout << "Passed" << endl;
116     return;
117
118 }
119
120
121
122
123
124 /*
125  * main
126  * No parameters
127  * Return type: int
128  * Runs the tests
129  */
130 int main() {
131     cout << "***** Running Tests *****" << endl;
132    
133     testConstructor();
134     testSetters();
135     testValueInsertion();
136
137     cout << "***** Tests Passed! *****" << endl;
138     return 0;
139 }
Note: See TracBrowser for help on using the browser.