forked from PolyMathOrg/DataFrame
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDataFrameCsvWriterTest.class.st
122 lines (106 loc) · 3.84 KB
/
DataFrameCsvWriterTest.class.st
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
Class {
#name : #DataFrameCsvWriterTest,
#superclass : #TestCase,
#instVars : [
'directory',
'dataFrame',
'commaQuoteCsvFile',
'tabQuoteCsvFile'
],
#category : #'DataFrame-IO-Tests-Core'
}
{ #category : #running }
DataFrameCsvWriterTest >> readFile: aFileReference [
| stream contents |
stream := aFileReference readStream.
contents := stream upToEnd.
stream close.
^ contents
]
{ #category : #running }
DataFrameCsvWriterTest >> setUp [
super setUp.
directory := FileSystem memory workingDirectory / 'testData'.
directory createDirectory.
commaQuoteCsvFile := directory / 'commaQuote.csv'.
tabQuoteCsvFile := directory / 'tabQuote.csv'.
dataFrame := DataFrame withRows: #( #( 2.4 true 'rain' ) #( 0.5 true 'rain' ) #( -1.2 true 'snow' ) #( -2.3 false '-' ) #( 3.2 true 'rain' ) ).
dataFrame columnNames: #( temperature precipitation type ).
dataFrame rowNames: (#( '01:10' '01:30' '01:50' '02:10' '02:30' ) collect: #asTime)
]
{ #category : #tests }
DataFrameCsvWriterTest >> testWriteToCsv [
| actual expected |
dataFrame writeToCsv: commaQuoteCsvFile.
actual := self readFile: commaQuoteCsvFile.
expected := TestCsvStrings commaQuoteCsvString.
self assert: actual lines equals: expected lines
]
{ #category : #tests }
DataFrameCsvWriterTest >> testWriteToCsvLineEndLf [
| writer actual expected |
writer := DataFrameCsvWriter new.
writer lineEndConvention: #lf.
dataFrame writeTo: commaQuoteCsvFile using: writer.
actual := self readFile: commaQuoteCsvFile.
expected := String lf join: TestCsvStrings commaQuoteCsvString lines.
self assert: actual lines equals: expected lines
]
{ #category : #tests }
DataFrameCsvWriterTest >> testWriteToCsvWithRawFieldWriter [
| file writer actual expected |
file := FileSystem memory workingDirectory / 'testData' / 'raw.csv'.
file ensureCreateFile.
writer := DataFrameCsvWriter new.
writer useRawFieldWriter.
dataFrame writeTo: file using: writer.
actual := self readFile: file.
expected := TestCsvStrings commaCsvString.
self assert: actual lines equals: expected lines
]
{ #category : #tests }
DataFrameCsvWriterTest >> testWriteToCsvWithRawFieldWriterWithoutRowName [
| file writer actual expected |
file := FileSystem memory workingDirectory / 'testData' / 'raw.csv'.
file ensureCreateFile.
writer := DataFrameCsvWriter new.
writer
useRawFieldWriter;
disableRowName.
dataFrame writeTo: file using: writer.
actual := self readFile: file.
expected := TestCsvStrings commaCsvWithoutRowNameString.
self assert: actual lines equals: expected lines
]
{ #category : #tests }
DataFrameCsvWriterTest >> testWriteToCsvWithSeparatorTab [
| actual expected |
dataFrame writeToCsv: tabQuoteCsvFile withSeparator: Character tab.
actual := self readFile: tabQuoteCsvFile.
expected := TestCsvStrings tabQuoteCsvString.
self assertCollection: actual lines equals: expected lines
]
{ #category : #tests }
DataFrameCsvWriterTest >> testWriteToCsvWithoutColumnNames [
| actual expected |
dataFrame writeToCsv: commaQuoteCsvFile withColumnNames: false.
actual := self readFile: commaQuoteCsvFile.
expected := TestCsvStrings commaQuoteCsvStringWithoutColumnNames.
self assert: actual lines equals: expected lines
]
{ #category : #tests }
DataFrameCsvWriterTest >> testWriteToCsvWithoutRowNames [
| actual expected |
dataFrame writeToCsv: commaQuoteCsvFile withRowNames: false.
actual := self readFile: commaQuoteCsvFile.
expected := TestCsvStrings commaQuoteCsvStringWithoutRowNames.
self assert: actual lines equals: expected lines
]
{ #category : #tests }
DataFrameCsvWriterTest >> testWriteToCsvWithoutRowNamesWithoutColumnNames [
| actual expected |
dataFrame writeToCsv: commaQuoteCsvFile withColumnNames: false withRowNames: false.
actual := self readFile: commaQuoteCsvFile.
expected := TestCsvStrings commaQuoteCsvStringWithoutRowNamesWithoutColumnNames.
self assert: actual lines equals: expected lines
]