summary refs log tree commit diff stats
path: root/tests/stdlib/tparsecsv.nim
blob: 0d004d45d0bba97ecd0794a19579a2fcaf452747 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
include parsecsv
import strutils, os

block: # Tests for reading the header row
  let content = "\nOne,Two,Three,Four\n1,2,3,4\n10,20,30,40,\n100,200,300,400\n"
  writeFile("temp.csv", content)

  var p: CsvParser
  p.open("temp.csv")
  p.readHeaderRow()
  while p.readRow():
    let zeros = repeat('0', p.currRow-2)
    doAssert p.rowEntry("One") == "1" & zeros
    doAssert p.rowEntry("Two") == "2" & zeros
    doAssert p.rowEntry("Three") == "3" & zeros
    doAssert p.rowEntry("Four") == "4" & zeros
  p.close()

  when not defined(testing):
    var parser: CsvParser
    parser.open("temp.csv")
    parser.readHeaderRow()
    while parser.readRow():
      echo "new row: "
      for col in items(parser.headers):
        echo "##", col, ":", parser.rowEntry(col), "##"
    parser.close()
    removeFile("temp.csv")

  # Tidy up
  removeFile("temp.csv")