@@ -43,14 +43,14 @@ public void BuildFromTable()
43
43
}
44
44
45
45
session . BuildFromTable ( table ) ;
46
- Assert . AreEqual ( 10 , session . Trials . Count ( ) ) ;
47
- Assert . AreEqual ( 1 , session . blocks . Count ) ;
46
+ Assert . AreEqual ( 10 , session . Trials . Count ( ) ) ;
47
+ Assert . AreEqual ( 1 , session . blocks . Count ) ;
48
48
49
49
foreach ( var trial in session . Trials )
50
50
{
51
- Assert . AreEqual ( "hello" , trial . settings . GetString ( "some_text" ) ) ;
52
- Assert . AreEqual ( 123 , trial . settings . GetInt ( "an_integer" ) ) ;
53
- Assert . AreEqual ( 3.14f , trial . settings . GetFloat ( "a_float" ) ) ;
51
+ Assert . AreEqual ( "hello" , trial . settings . GetString ( "some_text" ) ) ;
52
+ Assert . AreEqual ( 123 , trial . settings . GetInt ( "an_integer" ) ) ;
53
+ Assert . AreEqual ( 3.14f , trial . settings . GetFloat ( "a_float" ) ) ;
54
54
}
55
55
56
56
}
@@ -83,22 +83,22 @@ public void BuildFromTableWithBlockNum()
83
83
}
84
84
85
85
session . BuildFromTable ( table ) ;
86
- Assert . AreEqual ( 20 , session . Trials . Count ( ) ) ;
87
- Assert . AreEqual ( 2 , session . blocks . Count ) ;
86
+ Assert . AreEqual ( 20 , session . Trials . Count ( ) ) ;
87
+ Assert . AreEqual ( 2 , session . blocks . Count ) ;
88
88
89
89
foreach ( var trial in session . Trials )
90
90
{
91
91
Assert . IsFalse ( trial . settings . ContainsKey ( "block_num" ) ) ;
92
92
Assert . AreEqual ( "hello" , trial . settings . GetString ( "some_text" ) ) ;
93
- Assert . AreEqual ( 123 , trial . settings . GetInt ( "an_integer" ) ) ;
94
- Assert . AreEqual ( 3.14f , trial . settings . GetFloat ( "a_float" ) ) ;
93
+ Assert . AreEqual ( 123 , trial . settings . GetInt ( "an_integer" ) ) ;
94
+ Assert . AreEqual ( 3.14f , trial . settings . GetFloat ( "a_float" ) ) ;
95
95
}
96
96
97
97
}
98
98
99
- [ Test ]
100
- public void BuildTableFromCSV ( )
101
- {
99
+ [ Test ]
100
+ public void BuildTableFromCSV ( )
101
+ {
102
102
string testCsv = "some_text,an_integer,a_float\n " +
103
103
"hello,123,3.14\n " +
104
104
"hello,123,3.14\n " +
@@ -110,54 +110,121 @@ public void BuildTableFromCSV()
110
110
"hello,123,3.14\n " +
111
111
"hello,123,3.14\n " ;
112
112
113
- string [ ] csvLines = testCsv . Split ( '\n ' ) ;
113
+ string [ ] csvLines = testCsv . Split ( '\n ' ) ;
114
114
115
115
// build a table from the CSV
116
116
UXFDataTable table = UXFDataTable . FromCSV ( csvLines ) ;
117
117
118
- // test that the table contains the correct data
119
- Assert . AreEqual ( 3 , table . Headers . Count ( ) ) ;
118
+ // test that the table contains the correct data
119
+ Assert . AreEqual ( 3 , table . Headers . Count ( ) ) ;
120
120
121
121
var rows = table . GetAsListOfDict ( ) ;
122
122
foreach ( var row in rows )
123
- {
124
- Assert . AreEqual ( "hello" , row [ "some_text" ] ) ;
125
- Assert . AreEqual ( "123" , row [ "an_integer" ] ) ;
126
- Assert . AreEqual ( "3.14" , row [ "a_float" ] ) ;
127
- }
123
+ {
124
+ Assert . AreEqual ( "hello" , row [ "some_text" ] ) ;
125
+ Assert . AreEqual ( "123" , row [ "an_integer" ] ) ;
126
+ Assert . AreEqual ( "3.14" , row [ "a_float" ] ) ;
127
+ }
128
+ }
129
+
130
+ [ Test ]
131
+ public void BuildTableFromCSVithBlankEntries ( )
132
+ {
133
+ string testCsv = "some_text,an_integer,a_float\n " +
134
+ "hello,123,3.14\n " +
135
+ "hello,,3.14\n " +
136
+ "hello,123,3.14\n " ;
137
+
138
+ string [ ] csvLines = testCsv . Split ( '\n ' ) ;
139
+
140
+ // build a table from the CSV
141
+ UXFDataTable table = UXFDataTable . FromCSV ( csvLines ) ;
142
+
143
+ // test that the table contains the correct data
144
+ Assert . AreEqual ( 3 , table . Headers . Count ( ) ) ;
145
+
146
+ // check row 2
147
+ var rows = table . GetAsListOfDict ( ) ;
148
+ Assert . AreEqual ( string . Empty , rows [ 1 ] [ "an_integer" ] ) ;
128
149
}
129
150
130
151
[ Test ]
131
152
public void BuildFromTableWithBlankEntries ( )
132
153
{
133
- UXFDataTable table = new UXFDataTable ( "some_text" ) ;
154
+ UXFDataTable table = new UXFDataTable ( "an_integer" , " some_text" , "a_float ") ;
134
155
135
156
var row1 = new UXFDataRow ( ) ;
157
+ row1 . Add ( ( "an_integer" , "2" ) ) ;
136
158
row1 . Add ( ( "some_text" , "trial_string" ) ) ;
159
+ row1 . Add ( ( "a_float" , "3.14" ) ) ;
137
160
table . AddCompleteRow ( row1 ) ;
138
161
139
162
var row2 = new UXFDataRow ( ) ;
163
+ row2 . Add ( ( "an_integer" , "2" ) ) ;
140
164
row2 . Add ( ( "some_text" , "" ) ) ; // blank entry
165
+ row2 . Add ( ( "a_float" , "3.14" ) ) ;
141
166
table . AddCompleteRow ( row2 ) ;
167
+
168
+ var row3 = new UXFDataRow ( ) ;
169
+ row3 . Add ( ( "an_integer" , "2" ) ) ;
170
+ row3 . Add ( ( "some_text" , " " ) ) ; // blank entry with whitespace
171
+ row3 . Add ( ( "a_float" , "3.14" ) ) ;
172
+ table . AddCompleteRow ( row3 ) ;
142
173
143
174
session . BuildFromTable ( table ) ;
144
175
145
176
// set a session setting. session needs to be started to create session settings
146
177
session . Begin ( "test" , "test_ppid" ) ;
147
178
session . settings . SetValue ( "some_text" , "session_string" ) ;
148
179
149
- // should be 2 trials
150
- Assert . AreEqual ( 2 , session . Trials . Count ( ) ) ;
180
+ // should be 3 trials
181
+ Assert . AreEqual ( 3 , session . Trials . Count ( ) ) ;
151
182
152
183
// pull out the text
153
184
string trial1text = session . GetTrial ( 1 ) . settings . GetString ( "some_text" ) ;
154
185
string trial2text = session . GetTrial ( 2 ) . settings . GetString ( "some_text" ) ;
186
+ string trial3text = session . GetTrial ( 3 ) . settings . GetString ( "some_text" ) ;
155
187
156
188
// check that the trial setting is correct
157
189
Assert . AreEqual ( "trial_string" , trial1text ) ;
158
190
159
191
// check that the blank entry was ignored in place of the session setting
160
192
Assert . AreEqual ( "session_string" , trial2text ) ;
193
+
194
+ // and the whitespace was also ignored
195
+ Assert . AreEqual ( "session_string" , trial3text ) ;
196
+ }
197
+
198
+
199
+ [ Test ]
200
+ public void BuildTableFromCSVWithoutBlankLastLine ( )
201
+ {
202
+ string testCsv = "some_text,an_integer,a_float\n " +
203
+ "hello,123,3.14\n " +
204
+ "hello,123,3.14\n " +
205
+ "hello,123,3.14\n " +
206
+ "hello,123,3.14\n " +
207
+ "hello,123,3.14\n " +
208
+ "hello,123,3.14\n " +
209
+ "hello,123,3.14\n " +
210
+ "hello,123,3.14\n " +
211
+ "hello,123,3.14" ;
212
+
213
+ string [ ] csvLines = testCsv . Split ( '\n ' ) ;
214
+
215
+ // build a table from the CSV
216
+ UXFDataTable table = UXFDataTable . FromCSV ( csvLines ) ;
217
+
218
+ // test that the table contains the correct data
219
+ Assert . AreEqual ( 3 , table . Headers . Count ( ) ) ;
220
+
221
+ var rows = table . GetAsListOfDict ( ) ;
222
+ foreach ( var row in rows )
223
+ {
224
+ Assert . AreEqual ( "hello" , row [ "some_text" ] ) ;
225
+ Assert . AreEqual ( "123" , row [ "an_integer" ] ) ;
226
+ Assert . AreEqual ( "3.14" , row [ "a_float" ] ) ;
227
+ }
161
228
}
162
229
163
230
}
0 commit comments