Free cookie consent management tool by TermsFeed Policy Generator

source: trunk/sources/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis-3.4/TableFileParserTest.cs @ 7849

Last change on this file since 7849 was 7849, checked in by sforsten, 12 years ago

#1784:

  • added project HeuristicLab.Problem.Instances.DataAnalysis and deleted HeuristicLab.Problem.Instances.Classification and HeuristicLab.Problem.Instances.Regression
  • buttons are now big enough for the icons
File size: 22.1 KB
Line 
1#region License Information
2/* HeuristicLab
3 * Copyright (C) 2002-2012 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.Globalization;
24using System.IO;
25using HeuristicLab.Problems.Instances.DataAnalysis;
26using Microsoft.VisualStudio.TestTools.UnitTesting;
27
28namespace HeuristicLab.Problems.DataAnalysis_3_4.Tests {
29
30  [TestClass()]
31  public class TableFileParserTest {
32
33    [TestMethod]
34    public void ParseCSV() {
35      string tempFileName = Path.GetTempFileName();
36      NumberFormatInfo numberFormat;
37      DateTimeFormatInfo dateFormatInfo;
38      char separator;
39      WriteToFile(tempFileName,
40      @"0.00, 0.00, 0.00, 3.14
410.00, 0.00, 0.00, 0.00
420.00, 0.00, 0.00, 0.00
430.00, 0.00, 0.00, 0.00
440.00, 0.00, 0.00, 0.00
450.00, 0.00, 0.00, 0.00");
46      TableFileParser parser = new TableFileParser();
47      try {
48        TableFileParser.DetermineFileFormat(tempFileName, out numberFormat, out dateFormatInfo, out separator);
49        parser.Parse(tempFileName, numberFormat, dateFormatInfo, separator);
50        Assert.AreEqual(6, parser.Rows);
51        Assert.AreEqual(4, parser.Columns);
52        Assert.AreEqual(parser.Values[3][0], 3.14);
53      }
54      finally {
55        File.Delete(tempFileName);
56      }
57    }
58    [TestMethod]
59    public void ParseCSVWithNames() {
60      string tempFileName = Path.GetTempFileName();
61      NumberFormatInfo numberFormat;
62      DateTimeFormatInfo dateFormatInfo;
63      char separator;
64      WriteToFile(tempFileName,
65      @"x01, x02, x03, x04
660.00, 0.00, 0.00, 3.14
670.00, 0.00, 0.00, 0.00
680.00, 0.00, 0.00, 0.00
690.00, 0.00, 0.00, 0.00
700.00, 0.00, 0.00, 0.00
710.00, 0.00, 0.00, 0.00");
72      TableFileParser parser = new TableFileParser();
73      try {
74        TableFileParser.DetermineFileFormat(tempFileName, out numberFormat, out dateFormatInfo, out separator);
75        parser.Parse(tempFileName, numberFormat, dateFormatInfo, separator);
76        Assert.AreEqual(6, parser.Rows);
77        Assert.AreEqual(4, parser.Columns);
78        Assert.AreEqual(parser.Values[3][0], 3.14);
79      }
80      finally {
81        File.Delete(tempFileName);
82      }
83    }
84
85    [TestMethod]
86    public void ParseGermanCSV() {
87      string tempFileName = Path.GetTempFileName();
88      NumberFormatInfo numberFormat;
89      DateTimeFormatInfo dateFormatInfo;
90      char separator;
91      WriteToFile(tempFileName,
92      @"0,00; 0,00; 0,00; 3,14
930,00; 0,00; 0,00; 0,00
940,00; 0,00; 0,00; 0,00
950,00; 0,00; 0,00; 0,00
960,00; 0,00; 0,00; 0,00
970,00; 0,00; 0,00; 0,00");
98      TableFileParser parser = new TableFileParser();
99      try {
100        TableFileParser.DetermineFileFormat(tempFileName, out numberFormat, out dateFormatInfo, out separator);
101        parser.Parse(tempFileName, numberFormat, dateFormatInfo, separator);
102        Assert.AreEqual(6, parser.Rows);
103        Assert.AreEqual(4, parser.Columns);
104        Assert.AreEqual(parser.Values[3][0], 3.14);
105      }
106      finally {
107        File.Delete(tempFileName);
108      }
109    }
110
111    [TestMethod]
112    public void ParseGermanCSVWithNames() {
113      string tempFileName = Path.GetTempFileName();
114      NumberFormatInfo numberFormat;
115      DateTimeFormatInfo dateFormatInfo;
116      char separator;
117      WriteToFile(tempFileName,
118      @"x01; x02; x03; x04
1190,00; 0,00; 0,00; 3,14
1200,00; 0,00; 0,00; 0,00
1210,00; 0,00; 0,00; 0,00
1220,00; 0,00; 0,00; 0,00
1230,00; 0,00; 0,00; 0,00
1240,00; 0,00; 0,00; 0,00");
125      TableFileParser parser = new TableFileParser();
126      try {
127        TableFileParser.DetermineFileFormat(tempFileName, out numberFormat, out dateFormatInfo, out separator);
128        parser.Parse(tempFileName, numberFormat, dateFormatInfo, separator);
129        Assert.AreEqual(6, parser.Rows);
130        Assert.AreEqual(4, parser.Columns);
131        Assert.AreEqual(parser.Values[3][0], 3.14);
132      }
133      finally {
134        File.Delete(tempFileName);
135      }
136    }
137
138    [TestMethod]
139    public void ParseGermanCSVWithoutCommas() {
140      string tempFileName = Path.GetTempFileName();
141      NumberFormatInfo numberFormat;
142      DateTimeFormatInfo dateFormatInfo;
143      char separator;
144      WriteToFile(tempFileName,
145      @"0; 0; 0; 3
1460; 0; 0; 0
1470; 0; 0; 0
1480; 0; 0; 0
1490; 0; 0; 0
1500; 0; 0; 0");
151      TableFileParser parser = new TableFileParser();
152      try {
153        TableFileParser.DetermineFileFormat(tempFileName, out numberFormat, out dateFormatInfo, out separator);
154        parser.Parse(tempFileName, numberFormat, dateFormatInfo, separator);
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    [TestMethod]
164    public void ParseGermanCSVWithoutCommasWithNames() {
165      string tempFileName = Path.GetTempFileName();
166      NumberFormatInfo numberFormat;
167      DateTimeFormatInfo dateFormatInfo;
168      char separator;
169      WriteToFile(tempFileName,
170      @"x01; x02; x03; x04
1710; 0; 0; 3
1720; 0; 0; 0
1730; 0; 0; 0
1740; 0; 0; 0
1750; 0; 0; 0
1760; 0; 0; 0");
177      TableFileParser parser = new TableFileParser();
178      try {
179        TableFileParser.DetermineFileFormat(tempFileName, out numberFormat, out dateFormatInfo, out separator);
180        parser.Parse(tempFileName, numberFormat, dateFormatInfo, separator);
181        Assert.AreEqual(6, parser.Rows);
182        Assert.AreEqual(4, parser.Columns);
183        Assert.AreEqual((double)parser.Values[3][0], 3);
184      }
185      finally {
186        File.Delete(tempFileName);
187      }
188    }
189
190    [TestMethod]
191    public void ParseEnglishCSVWithoutCommas() {
192      string tempFileName = Path.GetTempFileName();
193      NumberFormatInfo numberFormat;
194      DateTimeFormatInfo dateFormatInfo;
195      char separator;
196      WriteToFile(tempFileName,
197      @"0, 0, 0, 3
1980, 0, 0, 0
1990, 0, 0, 0
2000, 0, 0, 0
2010, 0, 0, 0
2020, 0, 0, 0");
203      TableFileParser parser = new TableFileParser();
204      try {
205        TableFileParser.DetermineFileFormat(tempFileName, out numberFormat, out dateFormatInfo, out separator);
206        parser.Parse(tempFileName, numberFormat, dateFormatInfo, separator);
207        Assert.AreEqual(6, parser.Rows);
208        Assert.AreEqual(4, parser.Columns);
209        Assert.AreEqual((double)parser.Values[3][0], 3);
210      }
211      finally {
212        File.Delete(tempFileName);
213      }
214    }
215
216    [TestMethod]
217    public void ParseEnglishCSVWithoutCommasWithoutSpace() {
218      string tempFileName = Path.GetTempFileName();
219      NumberFormatInfo numberFormat;
220      DateTimeFormatInfo dateFormatInfo;
221      char separator;
222      WriteToFile(tempFileName,
223      @"0,0,0,3
2240,0,0,0
2250,0,0,0
2260,0,0,0
2270,0,0,0
2280,0,0,0");
229      TableFileParser parser = new TableFileParser();
230      try {
231        TableFileParser.DetermineFileFormat(tempFileName, out numberFormat, out dateFormatInfo, out separator);
232        parser.Parse(tempFileName, numberFormat, dateFormatInfo, separator);
233        Assert.AreEqual(6, parser.Rows);
234        Assert.AreEqual(4, parser.Columns);
235        Assert.AreEqual((double)parser.Values[3][0], 3);
236      }
237      finally {
238        File.Delete(tempFileName);
239      }
240    }
241
242    [TestMethod]
243    public void ParseEnglishCSVWithoutCommasWithNames() {
244      string tempFileName = Path.GetTempFileName();
245      NumberFormatInfo numberFormat;
246      DateTimeFormatInfo dateFormatInfo;
247      char separator;
248      WriteToFile(tempFileName,
249      @"x01, x02, x03, x04
2500, 0, 0, 3
2510, 0, 0, 0
2520, 0, 0, 0
2530, 0, 0, 0
2540, 0, 0, 0
2550, 0, 0, 0");
256      TableFileParser parser = new TableFileParser();
257      try {
258        TableFileParser.DetermineFileFormat(tempFileName, out numberFormat, out dateFormatInfo, out separator);
259        parser.Parse(tempFileName, numberFormat, dateFormatInfo, separator);
260        Assert.AreEqual(6, parser.Rows);
261        Assert.AreEqual(4, parser.Columns);
262        Assert.AreEqual((double)parser.Values[3][0], 3);
263      }
264      finally {
265        File.Delete(tempFileName);
266      }
267    }
268
269    [TestMethod]
270    public void ParseEnglishCSVWithoutCommasWithoutSpacesWithNames() {
271      string tempFileName = Path.GetTempFileName();
272      NumberFormatInfo numberFormat;
273      DateTimeFormatInfo dateFormatInfo;
274      char separator;
275      WriteToFile(tempFileName,
276      @"x01,x02,x03,x04
2770,0,0,3
2780,0,0,0
2790,0,0,0
2800,0,0,0
2810,0,0,0
2820,0,0,0");
283      TableFileParser parser = new TableFileParser();
284      try {
285        TableFileParser.DetermineFileFormat(tempFileName, out numberFormat, out dateFormatInfo, out separator);
286        parser.Parse(tempFileName, numberFormat, dateFormatInfo, separator);
287        Assert.AreEqual(6, parser.Rows);
288        Assert.AreEqual(4, parser.Columns);
289        Assert.AreEqual((double)parser.Values[3][0], 3);
290      }
291      finally {
292        File.Delete(tempFileName);
293      }
294    }
295
296
297    [TestMethod]
298    public void ParseGermanTabSeparated() {
299      string tempFileName = Path.GetTempFileName();
300      NumberFormatInfo numberFormat;
301      DateTimeFormatInfo dateFormatInfo;
302      char separator;
303      WriteToFile(tempFileName,
304      "0,00\t 0,00\t 0,00\t 3,14" + Environment.NewLine +
305      "0,00\t 0,00\t 0,00\t 0,00" + Environment.NewLine +
306      "0,00\t 0,00\t 0,00\t 0,00" + Environment.NewLine +
307      "0,00\t 0,00\t 0,00\t 0,00" + Environment.NewLine +
308      "0,00\t 0,00\t 0,00\t 0,00" + Environment.NewLine +
309      "0,00\t 0,00\t 0,00\t 0,00");
310      TableFileParser parser = new TableFileParser();
311      try {
312        TableFileParser.DetermineFileFormat(tempFileName, out numberFormat, out dateFormatInfo, out separator);
313        parser.Parse(tempFileName, numberFormat, dateFormatInfo, separator);
314        Assert.AreEqual(6, parser.Rows);
315        Assert.AreEqual(4, parser.Columns);
316        Assert.AreEqual((double)parser.Values[3][0], 3.14);
317      }
318      finally {
319        File.Delete(tempFileName);
320      }
321    }
322
323    [TestMethod]
324    public void ParseGermanTabSeparatedWithNames() {
325      string tempFileName = Path.GetTempFileName();
326      NumberFormatInfo numberFormat;
327      DateTimeFormatInfo dateFormatInfo;
328      char separator;
329      WriteToFile(tempFileName,
330      "x01\t x02\t x03\t x04" + Environment.NewLine +
331      "0,00\t 0,00\t 0,00\t 3,14" + Environment.NewLine +
332      "0,00\t 0,00\t 0,00\t 0,00" + Environment.NewLine +
333      "0,00\t 0,00\t 0,00\t 0,00" + Environment.NewLine +
334      "0,00\t 0,00\t 0,00\t 0,00" + Environment.NewLine +
335      "0,00\t 0,00\t 0,00\t 0,00" + Environment.NewLine +
336      "0,00\t 0,00\t 0,00\t 0,00");
337      TableFileParser parser = new TableFileParser();
338      try {
339        TableFileParser.DetermineFileFormat(tempFileName, out numberFormat, out dateFormatInfo, out separator);
340        parser.Parse(tempFileName, numberFormat, dateFormatInfo, separator);
341        Assert.AreEqual(6, parser.Rows);
342        Assert.AreEqual(4, parser.Columns);
343        Assert.AreEqual((double)parser.Values[3][0], 3.14);
344      }
345      finally {
346        File.Delete(tempFileName);
347      }
348    }
349
350    [TestMethod]
351    public void ParseEnglishTabSeparated() {
352      string tempFileName = Path.GetTempFileName();
353      NumberFormatInfo numberFormat;
354      DateTimeFormatInfo dateFormatInfo;
355      char separator;
356      WriteToFile(tempFileName,
357      "0.00\t 0.00\t 0.00\t 3.14" + Environment.NewLine +
358      "0.00\t 0.00\t 0.00\t 0.00" + Environment.NewLine +
359      "0.00\t 0.00\t 0.00\t 0.00" + Environment.NewLine +
360      "0.00\t 0.00\t 0.00\t 0.00" + Environment.NewLine +
361      "0.00\t 0.00\t 0.00\t 0.00" + Environment.NewLine +
362      "0.00\t 0.00\t 0.00\t 0.00");
363      TableFileParser parser = new TableFileParser();
364      try {
365        TableFileParser.DetermineFileFormat(tempFileName, out numberFormat, out dateFormatInfo, out separator);
366        parser.Parse(tempFileName, numberFormat, dateFormatInfo, separator);
367        Assert.AreEqual(6, parser.Rows);
368        Assert.AreEqual(4, parser.Columns);
369        Assert.AreEqual((double)parser.Values[3][0], 3.14);
370      }
371      finally {
372        File.Delete(tempFileName);
373      }
374    }
375    [TestMethod]
376    public void ParseEnglishTabSeparatedWithNames() {
377      string tempFileName = Path.GetTempFileName();
378      NumberFormatInfo numberFormat;
379      DateTimeFormatInfo dateFormatInfo;
380      char separator;
381      WriteToFile(tempFileName,
382      "x01\t x02\t x03\t x04" + Environment.NewLine +
383      "0.00\t 0.00\t 0.00\t 3.14" + Environment.NewLine +
384      "0.00\t 0.00\t 0.00\t 0.00" + Environment.NewLine +
385      "0.00\t 0.00\t 0.00\t 0.00" + Environment.NewLine +
386      "0.00\t 0.00\t 0.00\t 0.00" + Environment.NewLine +
387      "0.00\t 0.00\t 0.00\t 0.00" + Environment.NewLine +
388      "0.00\t 0.00\t 0.00\t 0.00");
389      TableFileParser parser = new TableFileParser();
390      try {
391        TableFileParser.DetermineFileFormat(tempFileName, out numberFormat, out dateFormatInfo, out separator);
392        parser.Parse(tempFileName, numberFormat, dateFormatInfo, separator);
393        Assert.AreEqual(6, parser.Rows);
394        Assert.AreEqual(4, parser.Columns);
395        Assert.AreEqual((double)parser.Values[3][0], 3.14);
396      }
397      finally {
398        File.Delete(tempFileName);
399      }
400    }
401
402    [TestMethod]
403    public void ParseTabSeparatedWithoutCommas() {
404      string tempFileName = Path.GetTempFileName();
405      NumberFormatInfo numberFormat;
406      DateTimeFormatInfo dateFormatInfo;
407      char separator;
408      WriteToFile(tempFileName,
409      "0\t 0\t 0\t 3" + Environment.NewLine +
410      "0\t 0\t 0\t 0" + Environment.NewLine +
411      "0\t 0\t 0\t 0" + Environment.NewLine +
412      "0\t 0\t 0\t 0" + Environment.NewLine +
413      "0\t 0\t 0\t 0" + Environment.NewLine +
414      "0\t 0\t 0\t 0");
415      TableFileParser parser = new TableFileParser();
416      try {
417        TableFileParser.DetermineFileFormat(tempFileName, out numberFormat, out dateFormatInfo, out separator);
418        parser.Parse(tempFileName, numberFormat, dateFormatInfo, separator);
419        Assert.AreEqual(6, parser.Rows);
420        Assert.AreEqual(4, parser.Columns);
421        Assert.AreEqual((double)parser.Values[3][0], 3);
422      }
423      finally {
424        File.Delete(tempFileName);
425      }
426    }
427    [TestMethod]
428    public void ParseTabSeparatedWithoutCommasWithNames() {
429      string tempFileName = Path.GetTempFileName();
430      NumberFormatInfo numberFormat;
431      DateTimeFormatInfo dateFormatInfo;
432      char separator;
433      WriteToFile(tempFileName,
434      "x01\t x02\t x03\t x04" + Environment.NewLine +
435      "0\t 0\t 0\t 3" + Environment.NewLine +
436      "0\t 0\t 0\t 0" + Environment.NewLine +
437      "0\t 0\t 0\t 0" + Environment.NewLine +
438      "0\t 0\t 0\t 0" + Environment.NewLine +
439      "0\t 0\t 0\t 0" + Environment.NewLine +
440      "0\t 0\t 0\t 0");
441      TableFileParser parser = new TableFileParser();
442      try {
443        TableFileParser.DetermineFileFormat(tempFileName, out numberFormat, out dateFormatInfo, out separator);
444        parser.Parse(tempFileName, numberFormat, dateFormatInfo, separator);
445        Assert.AreEqual(6, parser.Rows);
446        Assert.AreEqual(4, parser.Columns);
447        Assert.AreEqual((double)parser.Values[3][0], 3);
448      }
449      finally {
450        File.Delete(tempFileName);
451      }
452    }
453
454    [TestMethod]
455    public void ParseWithEmtpyLines() {
456      string tempFileName = Path.GetTempFileName();
457      NumberFormatInfo numberFormat;
458      DateTimeFormatInfo dateFormatInfo;
459      char separator;
460      WriteToFile(tempFileName,
461      "x01\t x02\t x03\t x04" + Environment.NewLine +
462      "0\t 0\t 0\t 3" + Environment.NewLine +
463      Environment.NewLine +
464      "0\t 0\t 0\t 0" + Environment.NewLine +
465      " " + Environment.NewLine +
466      "0\t 0\t 0\t 0" + Environment.NewLine +
467      "0\t 0\t 0\t 0" + Environment.NewLine + Environment.NewLine);
468      TableFileParser parser = new TableFileParser();
469      try {
470        TableFileParser.DetermineFileFormat(tempFileName, out numberFormat, out dateFormatInfo, out separator);
471        parser.Parse(tempFileName, numberFormat, dateFormatInfo, separator);
472        Assert.AreEqual(4, parser.Rows);
473        Assert.AreEqual(4, parser.Columns);
474      }
475      finally {
476        File.Delete(tempFileName);
477      }
478    }
479
480    [TestMethod]
481    public void ParseGermanSpaceSeparated() {
482      string tempFileName = Path.GetTempFileName();
483      NumberFormatInfo numberFormat;
484      DateTimeFormatInfo dateFormatInfo;
485      char separator;
486      WriteToFile(tempFileName,
487      @"0,00 0,00 0,00 3,14
4880,00 0,00 0,00 0,00
4890,00 0,00 0,00 0,00
4900,00 0,00 0,00 0,00
4910,00 0,00 0,00 0,00
4920,00 0,00 0,00 0,00");
493      TableFileParser parser = new TableFileParser();
494      try {
495        TableFileParser.DetermineFileFormat(tempFileName, out numberFormat, out dateFormatInfo, out separator);
496        parser.Parse(tempFileName, numberFormat, dateFormatInfo, separator);
497        Assert.AreEqual(6, parser.Rows);
498        Assert.AreEqual(4, parser.Columns);
499        Assert.AreEqual((double)parser.Values[3][0], 3.14);
500      }
501      finally {
502        File.Delete(tempFileName);
503      }
504    }
505    [TestMethod]
506    public void ParseGermanSpaceSeparatedWithNames() {
507      string tempFileName = Path.GetTempFileName();
508      NumberFormatInfo numberFormat;
509      DateTimeFormatInfo dateFormatInfo;
510      char separator;
511      WriteToFile(tempFileName,
512      @"x01 x02 x03 x04
5130,00 0,00 0,00 3,14
5140,00 0,00 0,00 0,00
5150,00 0,00 0,00 0,00
5160,00 0,00 0,00 0,00
5170,00 0,00 0,00 0,00
5180,00 0,00 0,00 0,00");
519      TableFileParser parser = new TableFileParser();
520      try {
521        TableFileParser.DetermineFileFormat(tempFileName, out numberFormat, out dateFormatInfo, out separator);
522        parser.Parse(tempFileName, numberFormat, dateFormatInfo, separator);
523        Assert.AreEqual(6, parser.Rows);
524        Assert.AreEqual(4, parser.Columns);
525        Assert.AreEqual((double)parser.Values[3][0], 3.14);
526      }
527      finally {
528        File.Delete(tempFileName);
529      }
530    }
531
532    [TestMethod]
533    public void ParseEnglishSpaceSeparated() {
534      string tempFileName = Path.GetTempFileName();
535      NumberFormatInfo numberFormat;
536      DateTimeFormatInfo dateFormatInfo;
537      char separator;
538      WriteToFile(tempFileName,
539      @"0.00 0.00 0.00 3.14
5400.00 0.00 0.00 0.00
5410.00 0.00 0.00 0.00
5420.00 0.00 0.00 0.00
5430.00 0.00 0.00 0.00
5440.00 0.00 0.00 0.00");
545      TableFileParser parser = new TableFileParser();
546      try {
547        TableFileParser.DetermineFileFormat(tempFileName, out numberFormat, out dateFormatInfo, out separator);
548        parser.Parse(tempFileName, numberFormat, dateFormatInfo, separator);
549        Assert.AreEqual(6, parser.Rows);
550        Assert.AreEqual(4, parser.Columns);
551        Assert.AreEqual((double)parser.Values[3][0], 3.14);
552      }
553      finally {
554        File.Delete(tempFileName);
555      }
556    }
557    [TestMethod]
558    public void ParseEnglishSpaceSeparatedWithNames() {
559      string tempFileName = Path.GetTempFileName();
560      NumberFormatInfo numberFormat;
561      DateTimeFormatInfo dateFormatInfo;
562      char separator;
563      WriteToFile(tempFileName,
564      @"x01 x02 x03 x04
5650.00 0.00 0.00 3.14
5660.00 0.00 0.00 0.00
5670.00 0.00 0.00 0.00
5680.00 0.00 0.00 0.00
5690.00 0.00 0.00 0.00
5700.00 0.00 0.00 0.00");
571      TableFileParser parser = new TableFileParser();
572      try {
573        TableFileParser.DetermineFileFormat(tempFileName, out numberFormat, out dateFormatInfo, out separator);
574        parser.Parse(tempFileName, numberFormat, dateFormatInfo, separator);
575        Assert.AreEqual(6, parser.Rows);
576        Assert.AreEqual(4, parser.Columns);
577        Assert.AreEqual((double)parser.Values[3][0], 3.14);
578      }
579      finally {
580        File.Delete(tempFileName);
581      }
582    }
583
584    [TestMethod]
585    public void ParseSpaceSeparatedWithoutCommas() {
586      string tempFileName = Path.GetTempFileName();
587      NumberFormatInfo numberFormat;
588      DateTimeFormatInfo dateFormatInfo;
589      char separator;
590      WriteToFile(tempFileName,
591      @"0 0 0 3
5920 0 0 0
5930 0 0 0
5940 0 0 0
5950 0 0 0
5960 0 0 0");
597      TableFileParser parser = new TableFileParser();
598      try {
599        TableFileParser.DetermineFileFormat(tempFileName, out numberFormat, out dateFormatInfo, out separator);
600        parser.Parse(tempFileName, numberFormat, dateFormatInfo, separator);
601        Assert.AreEqual(6, parser.Rows);
602        Assert.AreEqual(4, parser.Columns);
603        Assert.AreEqual((double)parser.Values[3][0], 3);
604      }
605      finally {
606        File.Delete(tempFileName);
607      }
608    }
609    [TestMethod]
610    public void ParseSpaceSeparatedWithoutCommasWithNames() {
611      string tempFileName = Path.GetTempFileName();
612      NumberFormatInfo numberFormat;
613      DateTimeFormatInfo dateFormatInfo;
614      char separator;
615      WriteToFile(tempFileName,
616      @"x01 x02 x03 x04
6170 0 0 3
6180 0 0 0
6190 0 0 0
6200 0 0 0
6210 0 0 0
6220 0 0 0");
623      TableFileParser parser = new TableFileParser();
624      try {
625        TableFileParser.DetermineFileFormat(tempFileName, out numberFormat, out dateFormatInfo, out separator);
626        parser.Parse(tempFileName, numberFormat, dateFormatInfo, separator);
627        Assert.AreEqual(6, parser.Rows);
628        Assert.AreEqual(4, parser.Columns);
629        Assert.AreEqual((double)parser.Values[3][0], 3);
630      }
631      finally {
632        File.Delete(tempFileName);
633      }
634    }
635
636    private void WriteToFile(string fileName, string content) {
637      using (StreamWriter writer = new StreamWriter(fileName)) {
638        writer.Write(content);
639      }
640    }
641  }
642}
Note: See TracBrowser for help on using the repository browser.