Free cookie consent management tool by TermsFeed Policy Generator

source: branches/PersistenceSpeedUp/HeuristicLab.Problems.DataAnalysis/3.4/Tests/TableFileParserTest.cs @ 10391

Last change on this file since 10391 was 6760, checked in by epitzer, 13 years ago

#1530 integrate changes from trunk

File size: 14.8 KB
Line 
1#region License Information
2/* HeuristicLab
3 * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
4 *
5 * This file is part of HeuristicLab.
6 *
7 * HeuristicLab is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11 *
12 * HeuristicLab is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
19 */
20#endregion
21
22using System;
23using System.IO;
24using HeuristicLab.Problems.DataAnalysis;
25using Microsoft.VisualStudio.TestTools.UnitTesting;
26namespace HeuristicLab.Problems.DataAnalysis_3_4.Tests {
27
28  [TestClass()]
29  public class TableFileParserTest {
30
31    [TestMethod]
32    public void ParseCSV() {
33      string tempFileName = Path.GetTempFileName();
34      WriteToFile(tempFileName,
35@"0.00, 0.00, 0.00, 3.14
360.00, 0.00, 0.00, 0.00
370.00, 0.00, 0.00, 0.00
380.00, 0.00, 0.00, 0.00
390.00, 0.00, 0.00, 0.00
400.00, 0.00, 0.00, 0.00");
41      TableFileParser parser = new TableFileParser();
42      try {
43        parser.Parse(tempFileName);
44        Assert.AreEqual(6, parser.Rows);
45        Assert.AreEqual(4, parser.Columns);
46        Assert.AreEqual(parser.Values[3][0], 3.14);
47      }
48      finally {
49        File.Delete(tempFileName);
50      }
51    }
52    [TestMethod]
53    public void ParseCSVWithNames() {
54      string tempFileName = Path.GetTempFileName();
55      WriteToFile(tempFileName,
56@"x01, x02, x03, x04
570.00, 0.00, 0.00, 3.14
580.00, 0.00, 0.00, 0.00
590.00, 0.00, 0.00, 0.00
600.00, 0.00, 0.00, 0.00
610.00, 0.00, 0.00, 0.00
620.00, 0.00, 0.00, 0.00");
63      TableFileParser parser = new TableFileParser();
64      try {
65        parser.Parse(tempFileName);
66        Assert.AreEqual(6, parser.Rows);
67        Assert.AreEqual(4, parser.Columns);
68        Assert.AreEqual(parser.Values[3][0], 3.14);
69      }
70      finally {
71        File.Delete(tempFileName);
72      }
73    }
74
75    [TestMethod]
76    public void ParseGermanCSV() {
77      string tempFileName = Path.GetTempFileName();
78      WriteToFile(tempFileName,
79@"0,00; 0,00; 0,00; 3,14
800,00; 0,00; 0,00; 0,00
810,00; 0,00; 0,00; 0,00
820,00; 0,00; 0,00; 0,00
830,00; 0,00; 0,00; 0,00
840,00; 0,00; 0,00; 0,00");
85      TableFileParser parser = new TableFileParser();
86      try {
87        parser.Parse(tempFileName);
88        Assert.AreEqual(6, parser.Rows);
89        Assert.AreEqual(4, parser.Columns);
90        Assert.AreEqual(parser.Values[3][0], 3.14);
91      }
92      finally {
93        File.Delete(tempFileName);
94      }
95    }
96
97    [TestMethod]
98    public void ParseGermanCSVWithNames() {
99      string tempFileName = Path.GetTempFileName();
100      WriteToFile(tempFileName,
101@"x01; x02; x03; x04
1020,00; 0,00; 0,00; 3,14
1030,00; 0,00; 0,00; 0,00
1040,00; 0,00; 0,00; 0,00
1050,00; 0,00; 0,00; 0,00
1060,00; 0,00; 0,00; 0,00
1070,00; 0,00; 0,00; 0,00");
108      TableFileParser parser = new TableFileParser();
109      try {
110        parser.Parse(tempFileName);
111        Assert.AreEqual(6, parser.Rows);
112        Assert.AreEqual(4, parser.Columns);
113        Assert.AreEqual(parser.Values[3][0], 3.14);
114      }
115      finally {
116        File.Delete(tempFileName);
117      }
118    }
119
120    [TestMethod]
121    public void ParseGermanCSVWithoutCommas() {
122      string tempFileName = Path.GetTempFileName();
123      WriteToFile(tempFileName,
124@"0; 0; 0; 3
1250; 0; 0; 0
1260; 0; 0; 0
1270; 0; 0; 0
1280; 0; 0; 0
1290; 0; 0; 0");
130      TableFileParser parser = new TableFileParser();
131      try {
132        parser.Parse(tempFileName);
133        Assert.AreEqual(6, parser.Rows);
134        Assert.AreEqual(4, parser.Columns);
135        Assert.AreEqual((double)parser.Values[3][0], 3);
136      }
137      finally {
138        File.Delete(tempFileName);
139      }
140    }
141    [TestMethod]
142    public void ParseGermanCSVWithoutCommasWithNames() {
143      string tempFileName = Path.GetTempFileName();
144      WriteToFile(tempFileName,
145@"x01; x02; x03; x04
1460; 0; 0; 3
1470; 0; 0; 0
1480; 0; 0; 0
1490; 0; 0; 0
1500; 0; 0; 0
1510; 0; 0; 0");
152      TableFileParser parser = new TableFileParser();
153      try {
154        parser.Parse(tempFileName);
155        Assert.AreEqual(6, parser.Rows);
156        Assert.AreEqual(4, parser.Columns);
157        Assert.AreEqual((double)parser.Values[3][0], 3);
158      }
159      finally {
160        File.Delete(tempFileName);
161      }
162    }
163
164    [TestMethod]
165    public void ParseEnglishCSVWithoutCommas() {
166      string tempFileName = Path.GetTempFileName();
167      WriteToFile(tempFileName,
168@"0, 0, 0, 3
1690, 0, 0, 0
1700, 0, 0, 0
1710, 0, 0, 0
1720, 0, 0, 0
1730, 0, 0, 0");
174      TableFileParser parser = new TableFileParser();
175      try {
176        parser.Parse(tempFileName);
177        Assert.AreEqual(6, parser.Rows);
178        Assert.AreEqual(4, parser.Columns);
179        Assert.AreEqual((double)parser.Values[3][0], 3);
180      }
181      finally {
182        File.Delete(tempFileName);
183      }
184    }
185
186    [TestMethod]
187    public void ParseEnglishCSVWithoutCommasWithNames() {
188      string tempFileName = Path.GetTempFileName();
189      WriteToFile(tempFileName,
190@"x01, x02, x03, x04
1910, 0, 0, 3
1920, 0, 0, 0
1930, 0, 0, 0
1940, 0, 0, 0
1950, 0, 0, 0
1960, 0, 0, 0");
197      TableFileParser parser = new TableFileParser();
198      try {
199        parser.Parse(tempFileName);
200        Assert.AreEqual(6, parser.Rows);
201        Assert.AreEqual(4, parser.Columns);
202        Assert.AreEqual((double)parser.Values[3][0], 3);
203      }
204      finally {
205        File.Delete(tempFileName);
206      }
207    }
208
209
210    [TestMethod]
211    public void ParseGermanTabSeparated() {
212      string tempFileName = Path.GetTempFileName();
213      WriteToFile(tempFileName,
214"0,00\t 0,00\t 0,00\t 3,14" + Environment.NewLine +
215"0,00\t 0,00\t 0,00\t 0,00" + Environment.NewLine +
216"0,00\t 0,00\t 0,00\t 0,00" + Environment.NewLine +
217"0,00\t 0,00\t 0,00\t 0,00" + Environment.NewLine +
218"0,00\t 0,00\t 0,00\t 0,00" + Environment.NewLine +
219"0,00\t 0,00\t 0,00\t 0,00");
220      TableFileParser parser = new TableFileParser();
221      try {
222        parser.Parse(tempFileName);
223        Assert.AreEqual(6, parser.Rows);
224        Assert.AreEqual(4, parser.Columns);
225        Assert.AreEqual((double)parser.Values[3][0], 3.14);
226      }
227      finally {
228        File.Delete(tempFileName);
229      }
230    }
231
232    [TestMethod]
233    public void ParseGermanTabSeparatedWithNames() {
234      string tempFileName = Path.GetTempFileName();
235      WriteToFile(tempFileName,
236"x01\t x02\t x03\t x04" + Environment.NewLine +
237"0,00\t 0,00\t 0,00\t 3,14" + Environment.NewLine +
238"0,00\t 0,00\t 0,00\t 0,00" + Environment.NewLine +
239"0,00\t 0,00\t 0,00\t 0,00" + Environment.NewLine +
240"0,00\t 0,00\t 0,00\t 0,00" + Environment.NewLine +
241"0,00\t 0,00\t 0,00\t 0,00" + Environment.NewLine +
242"0,00\t 0,00\t 0,00\t 0,00");
243      TableFileParser parser = new TableFileParser();
244      try {
245        parser.Parse(tempFileName);
246        Assert.AreEqual(6, parser.Rows);
247        Assert.AreEqual(4, parser.Columns);
248        Assert.AreEqual((double)parser.Values[3][0], 3.14);
249      }
250      finally {
251        File.Delete(tempFileName);
252      }
253    }
254
255    [TestMethod]
256    public void ParseEnglishTabSeparated() {
257      string tempFileName = Path.GetTempFileName();
258      WriteToFile(tempFileName,
259"0.00\t 0.00\t 0.00\t 3.14" + Environment.NewLine +
260"0.00\t 0.00\t 0.00\t 0.00" + Environment.NewLine +
261"0.00\t 0.00\t 0.00\t 0.00" + Environment.NewLine +
262"0.00\t 0.00\t 0.00\t 0.00" + Environment.NewLine +
263"0.00\t 0.00\t 0.00\t 0.00" + Environment.NewLine +
264"0.00\t 0.00\t 0.00\t 0.00");
265      TableFileParser parser = new TableFileParser();
266      try {
267        parser.Parse(tempFileName);
268        Assert.AreEqual(6, parser.Rows);
269        Assert.AreEqual(4, parser.Columns);
270        Assert.AreEqual((double)parser.Values[3][0], 3.14);
271      }
272      finally {
273        File.Delete(tempFileName);
274      }
275    }
276    [TestMethod]
277    public void ParseEnglishTabSeparatedWithNames() {
278      string tempFileName = Path.GetTempFileName();
279      WriteToFile(tempFileName,
280"x01\t x02\t x03\t x04" + Environment.NewLine +
281"0.00\t 0.00\t 0.00\t 3.14" + Environment.NewLine +
282"0.00\t 0.00\t 0.00\t 0.00" + Environment.NewLine +
283"0.00\t 0.00\t 0.00\t 0.00" + Environment.NewLine +
284"0.00\t 0.00\t 0.00\t 0.00" + Environment.NewLine +
285"0.00\t 0.00\t 0.00\t 0.00" + Environment.NewLine +
286"0.00\t 0.00\t 0.00\t 0.00");
287      TableFileParser parser = new TableFileParser();
288      try {
289        parser.Parse(tempFileName);
290        Assert.AreEqual(6, parser.Rows);
291        Assert.AreEqual(4, parser.Columns);
292        Assert.AreEqual((double)parser.Values[3][0], 3.14);
293      }
294      finally {
295        File.Delete(tempFileName);
296      }
297    }
298
299    [TestMethod]
300    public void ParseTabSeparatedWithoutCommas() {
301      string tempFileName = Path.GetTempFileName();
302      WriteToFile(tempFileName,
303"0\t 0\t 0\t 3" + Environment.NewLine +
304"0\t 0\t 0\t 0" + Environment.NewLine +
305"0\t 0\t 0\t 0" + Environment.NewLine +
306"0\t 0\t 0\t 0" + Environment.NewLine +
307"0\t 0\t 0\t 0" + Environment.NewLine +
308"0\t 0\t 0\t 0");
309      TableFileParser parser = new TableFileParser();
310      try {
311        parser.Parse(tempFileName);
312        Assert.AreEqual(6, parser.Rows);
313        Assert.AreEqual(4, parser.Columns);
314        Assert.AreEqual((double)parser.Values[3][0], 3);
315      }
316      finally {
317        File.Delete(tempFileName);
318      }
319    }
320    [TestMethod]
321    public void ParseTabSeparatedWithoutCommasWithNames() {
322      string tempFileName = Path.GetTempFileName();
323      WriteToFile(tempFileName,
324"x01\t x02\t x03\t x04" + Environment.NewLine +
325"0\t 0\t 0\t 3" + Environment.NewLine +
326"0\t 0\t 0\t 0" + Environment.NewLine +
327"0\t 0\t 0\t 0" + Environment.NewLine +
328"0\t 0\t 0\t 0" + Environment.NewLine +
329"0\t 0\t 0\t 0" + Environment.NewLine +
330"0\t 0\t 0\t 0");
331      TableFileParser parser = new TableFileParser();
332      try {
333        parser.Parse(tempFileName);
334        Assert.AreEqual(6, parser.Rows);
335        Assert.AreEqual(4, parser.Columns);
336        Assert.AreEqual((double)parser.Values[3][0], 3);
337      }
338      finally {
339        File.Delete(tempFileName);
340      }
341    }
342
343    [TestMethod]
344    public void ParseWithEmtpyLines() {
345      string tempFileName = Path.GetTempFileName();
346      WriteToFile(tempFileName,
347"x01\t x02\t x03\t x04" + Environment.NewLine +
348"0\t 0\t 0\t 3" + Environment.NewLine +
349 Environment.NewLine +
350"0\t 0\t 0\t 0" + Environment.NewLine +
351" " + Environment.NewLine +
352"0\t 0\t 0\t 0" + Environment.NewLine +
353"0\t 0\t 0\t 0" + Environment.NewLine + Environment.NewLine);
354      TableFileParser parser = new TableFileParser();
355      try {
356        parser.Parse(tempFileName);
357        Assert.AreEqual(4, parser.Rows);
358        Assert.AreEqual(4, parser.Columns);
359      }
360      finally {
361        File.Delete(tempFileName);
362      }
363    }
364
365    [TestMethod]
366    public void ParseGermanSpaceSeparated() {
367      string tempFileName = Path.GetTempFileName();
368      WriteToFile(tempFileName,
369@"0,00 0,00 0,00 3,14
3700,00 0,00 0,00 0,00
3710,00 0,00 0,00 0,00
3720,00 0,00 0,00 0,00
3730,00 0,00 0,00 0,00
3740,00 0,00 0,00 0,00");
375      TableFileParser parser = new TableFileParser();
376      try {
377        parser.Parse(tempFileName);
378        Assert.AreEqual(6, parser.Rows);
379        Assert.AreEqual(4, parser.Columns);
380        Assert.AreEqual((double)parser.Values[3][0], 3.14);
381      }
382      finally {
383        File.Delete(tempFileName);
384      }
385    }
386    [TestMethod]
387    public void ParseGermanSpaceSeparatedWithNames() {
388      string tempFileName = Path.GetTempFileName();
389      WriteToFile(tempFileName,
390@"x01 x02 x03 x04
3910,00 0,00 0,00 3,14
3920,00 0,00 0,00 0,00
3930,00 0,00 0,00 0,00
3940,00 0,00 0,00 0,00
3950,00 0,00 0,00 0,00
3960,00 0,00 0,00 0,00");
397      TableFileParser parser = new TableFileParser();
398      try {
399        parser.Parse(tempFileName);
400        Assert.AreEqual(6, parser.Rows);
401        Assert.AreEqual(4, parser.Columns);
402        Assert.AreEqual((double)parser.Values[3][0], 3.14);
403      }
404      finally {
405        File.Delete(tempFileName);
406      }
407    }
408
409    [TestMethod]
410    public void ParseEnglishSpaceSeparated() {
411      string tempFileName = Path.GetTempFileName();
412      WriteToFile(tempFileName,
413@"0.00 0.00 0.00 3.14
4140.00 0.00 0.00 0.00
4150.00 0.00 0.00 0.00
4160.00 0.00 0.00 0.00
4170.00 0.00 0.00 0.00
4180.00 0.00 0.00 0.00");
419      TableFileParser parser = new TableFileParser();
420      try {
421        parser.Parse(tempFileName);
422        Assert.AreEqual(6, parser.Rows);
423        Assert.AreEqual(4, parser.Columns);
424        Assert.AreEqual((double)parser.Values[3][0], 3.14);
425      }
426      finally {
427        File.Delete(tempFileName);
428      }
429    }
430    [TestMethod]
431    public void ParseEnglishSpaceSeparatedWithNames() {
432      string tempFileName = Path.GetTempFileName();
433      WriteToFile(tempFileName,
434@"x01 x02 x03 x04
4350.00 0.00 0.00 3.14
4360.00 0.00 0.00 0.00
4370.00 0.00 0.00 0.00
4380.00 0.00 0.00 0.00
4390.00 0.00 0.00 0.00
4400.00 0.00 0.00 0.00");
441      TableFileParser parser = new TableFileParser();
442      try {
443        parser.Parse(tempFileName);
444        Assert.AreEqual(6, parser.Rows);
445        Assert.AreEqual(4, parser.Columns);
446        Assert.AreEqual((double)parser.Values[3][0], 3.14);
447      }
448      finally {
449        File.Delete(tempFileName);
450      }
451    }
452
453    [TestMethod]
454    public void ParseSpaceSeparatedWithoutCommas() {
455      string tempFileName = Path.GetTempFileName();
456      WriteToFile(tempFileName,
457@"0 0 0 3
4580 0 0 0
4590 0 0 0
4600 0 0 0
4610 0 0 0
4620 0 0 0");
463      TableFileParser parser = new TableFileParser();
464      try {
465        parser.Parse(tempFileName);
466        Assert.AreEqual(6, parser.Rows);
467        Assert.AreEqual(4, parser.Columns);
468        Assert.AreEqual((double)parser.Values[3][0], 3);
469      }
470      finally {
471        File.Delete(tempFileName);
472      }
473    }
474    [TestMethod]
475    public void ParseSpaceSeparatedWithoutCommasWithNames() {
476      string tempFileName = Path.GetTempFileName();
477      WriteToFile(tempFileName,
478@"x01 x02 x03 x04
4790 0 0 3
4800 0 0 0
4810 0 0 0
4820 0 0 0
4830 0 0 0
4840 0 0 0");
485      TableFileParser parser = new TableFileParser();
486      try {
487        parser.Parse(tempFileName);
488        Assert.AreEqual(6, parser.Rows);
489        Assert.AreEqual(4, parser.Columns);
490        Assert.AreEqual((double)parser.Values[3][0], 3);
491      }
492      finally {
493        File.Delete(tempFileName);
494      }
495    }
496
497    private void WriteToFile(string fileName, string content) {
498      using (StreamWriter writer = new StreamWriter(fileName)) {
499        writer.Write(content);
500      }
501    }
502  }
503}
Note: See TracBrowser for help on using the repository browser.