Fixed CSV export when PlotDataItem uses stepMode=True
Added CSV export unit tests Merge remote-tracking branch 'termim/csv' into develop
This commit is contained in:
commit
8f2a64a9dd
|
@ -52,10 +52,11 @@ class CSVExporter(Exporter):
|
||||||
numRows = max([len(d[0]) for d in data])
|
numRows = max([len(d[0]) for d in data])
|
||||||
for i in range(numRows):
|
for i in range(numRows):
|
||||||
for d in data:
|
for d in data:
|
||||||
if i < len(d[0]):
|
for j in [0, 1]:
|
||||||
fd.write(numFormat % d[0][i] + sep + numFormat % d[1][i] + sep)
|
if i < len(d[j]):
|
||||||
|
fd.write(numFormat % d[j][i] + sep)
|
||||||
else:
|
else:
|
||||||
fd.write(' %s %s' % (sep, sep))
|
fd.write(' %s' % sep)
|
||||||
fd.write('\n')
|
fd.write('\n')
|
||||||
fd.close()
|
fd.close()
|
||||||
|
|
||||||
|
|
49
pyqtgraph/exporters/tests/test_csv.py
Normal file
49
pyqtgraph/exporters/tests/test_csv.py
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
"""
|
||||||
|
SVG export test
|
||||||
|
"""
|
||||||
|
import pyqtgraph as pg
|
||||||
|
import pyqtgraph.exporters
|
||||||
|
import csv
|
||||||
|
|
||||||
|
app = pg.mkQApp()
|
||||||
|
|
||||||
|
def approxeq(a, b):
|
||||||
|
return (a-b) <= ((a + b) * 1e-6)
|
||||||
|
|
||||||
|
def test_CSVExporter():
|
||||||
|
plt = pg.plot()
|
||||||
|
y1 = [1,3,2,3,1,6,9,8,4,2]
|
||||||
|
plt.plot(y=y1, name='myPlot')
|
||||||
|
|
||||||
|
y2 = [3,4,6,1,2,4,2,3,5,3,5,1,3]
|
||||||
|
x2 = pg.np.linspace(0, 1.0, len(y2))
|
||||||
|
plt.plot(x=x2, y=y2)
|
||||||
|
|
||||||
|
y3 = [1,5,2,3,4,6,1,2,4,2,3,5,3]
|
||||||
|
x3 = pg.np.linspace(0, 1.0, len(y3)+1)
|
||||||
|
plt.plot(x=x3, y=y3, stepMode=True)
|
||||||
|
|
||||||
|
ex = pg.exporters.CSVExporter(plt.plotItem)
|
||||||
|
ex.export(fileName='test.csv')
|
||||||
|
|
||||||
|
r = csv.reader(open('test.csv', 'r'))
|
||||||
|
lines = [line for line in r]
|
||||||
|
header = lines.pop(0)
|
||||||
|
assert header == ['myPlot_x', 'myPlot_y', 'x', 'y', 'x', 'y']
|
||||||
|
|
||||||
|
i = 0
|
||||||
|
for vals in lines:
|
||||||
|
vals = list(map(str.strip, vals))
|
||||||
|
assert (i >= len(y1) and vals[0] == '') or approxeq(float(vals[0]), i)
|
||||||
|
assert (i >= len(y1) and vals[1] == '') or approxeq(float(vals[1]), y1[i])
|
||||||
|
|
||||||
|
assert (i >= len(x2) and vals[2] == '') or approxeq(float(vals[2]), x2[i])
|
||||||
|
assert (i >= len(y2) and vals[3] == '') or approxeq(float(vals[3]), y2[i])
|
||||||
|
|
||||||
|
assert (i >= len(x3) and vals[4] == '') or approxeq(float(vals[4]), x3[i])
|
||||||
|
assert (i >= len(y3) and vals[5] == '') or approxeq(float(vals[5]), y3[i])
|
||||||
|
i += 1
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
test_CSVExporter()
|
||||||
|
|
Loading…
Reference in New Issue
Block a user