Skip to content

Commit da643f8

Browse files
committed
add tests for io.xsv
1 parent 6255cab commit da643f8

File tree

2 files changed

+36
-2
lines changed

2 files changed

+36
-2
lines changed

sugar/core/fts.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -427,9 +427,9 @@ def frompandas(cls, df, ftype=None):
427427
df['type'] = ftype
428428
if 'len' in df:
429429
df = df.copy()
430-
if 'start' in df and 'stop' not in f:
430+
if 'start' in df and 'stop' not in df:
431431
df['stop'] = df['start'] + df['len']
432-
elif 'start' not in df and 'stop' in f:
432+
elif 'start' not in df and 'stop' in df:
433433
df['start'] = df['stop'] - df['len']
434434
del df['len']
435435
fts = []

sugar/tests/test_io_tab_xsv.py

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# (C) 2024, Tom Eulenfeld, MIT license
2+
import io
3+
import pytest
4+
from sugar import read_fts
5+
6+
7+
def test_tsv():
8+
pytest.importorskip('pandas')
9+
fts = read_fts()
10+
out = fts.write(None, 'tsv')
11+
fts2 = read_fts(io.StringIO(out))
12+
fts3 = read_fts('!data/fts_example.tsv')
13+
assert fts2 == fts3
14+
15+
16+
def test_csv():
17+
pytest.importorskip('pandas')
18+
fts = read_fts()
19+
out = fts.write(None, 'csv')
20+
fts2 = read_fts(io.StringIO(out))
21+
fts3 = read_fts('!data/fts_example.csv')
22+
assert fts2 == fts3
23+
24+
25+
def test_xsv_edgecases():
26+
pytest.importorskip('pandas')
27+
fts = read_fts()
28+
out = fts.write(None, 'csv', sep=' ', vals='type start len strand defect')
29+
fts2 = read_fts(io.StringIO(out), sep=None, engine='python')
30+
fts3 = read_fts('!data/fts_example.tsv')
31+
assert fts2 == fts3
32+
out = fts.write(None, 'csv', sep='|', vals='type stop len strand defect')
33+
fts2 = read_fts(io.StringIO(out), sep='|')
34+
assert fts2 == fts3

0 commit comments

Comments
 (0)