/
test_data.py
136 lines (94 loc) · 3.83 KB
/
test_data.py
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
123
124
125
126
127
128
129
130
131
132
133
134
135
from __future__ import print_function, absolute_import
import os
import pytest
from tellurium.sedml.data.datahandler import DataDescriptionParser
from tellurium.sedml.tesedml import SEDMLTools
try:
import libsedml
except ImportError:
import tesedml as libsedml
# ---------------------------------------------------------------------------------
BASE_DIR = "./examples"
SOURCE_CSV = os.path.join(BASE_DIR, "oscli.csv")
SOURCE_TSV = os.path.join(BASE_DIR, "oscli.tsv")
SOURCE_NUML = os.path.join(BASE_DIR, "./oscli.xml")
SOURCE_NUML_1D = os.path.join(BASE_DIR, "./numlData1D.xml")
SOURCE_NUML_2D = os.path.join(BASE_DIR, "./numlData2D.xml")
SOURCE_NUML_2DRC = os.path.join(BASE_DIR, "./numlData2DRC.xml")
SEDML_READ_CSV = os.path.join(BASE_DIR, "reading-oscli-csv.xml")
SEDML_READ_TSV = os.path.join(BASE_DIR, "reading-oscli-tsv.xml")
SEDML_READ_NUML = os.path.join(BASE_DIR, "reading-oscli-numl.xml")
SEDML_READ_NUML_1D = os.path.join(BASE_DIR, "reading-numlData1D.xml")
SEDML_READ_NUML_2D = os.path.join(BASE_DIR, "reading-numlData2D.xml")
SEDML_READ_NUML_2DRC = os.path.join(BASE_DIR, "reading-numlData2DRC.xml")
SEDML_EXPERIMENTAL_DATA = os.path.join(BASE_DIR, "experimental-data.xml")
# ---------------------------------------------------------------------------------
# Test data loading functions
def test_load_csv():
data = DataDescriptionParser._load_csv(SOURCE_CSV)
assert data is not None
assert data.shape[0] == 200
assert data.shape[1] == 3
def test_load_tsv():
data = DataDescriptionParser._load_tsv(SOURCE_TSV)
assert data is not None
assert data.shape[0] == 200
assert data.shape[1] == 3
def test_load_numl():
data = DataDescriptionParser._load_numl(SOURCE_NUML)
assert data is not None
def test_load_numl_1D():
data = DataDescriptionParser._load_numl(SOURCE_NUML_1D)
assert data is not None
def test_load_numl_2D():
data = DataDescriptionParser._load_numl(SOURCE_NUML_2D)
assert data is not None
def test_load_numl_2DRC():
data = DataDescriptionParser._load_numl(SOURCE_NUML_2D)
assert data is not None
def parseDataDescriptions(sedml_path):
""" Test helper functions.
Tries to parse all DataDescriptions in the SED-ML file.
"""
print('parseDataDescriptions:', sedml_path)
# load sedml document
assert os.path.exists(sedml_path)
doc_sedml = libsedml.readSedMLFromFile(sedml_path)
SEDMLTools.checkSEDMLDocument(doc_sedml)
# parse DataDescriptions
list_dd = doc_sedml.getListOfDataDescriptions()
# print(list_dd)
# print(len(list_dd))
assert len(list_dd) > 0
for dd in list_dd:
data_sources = DataDescriptionParser.parse(dd, workingDir=BASE_DIR)
assert data_sources is not None
assert type(data_sources) == dict
assert len(data_sources) > 0
return data_sources
def test_parse_csv():
data_sources = parseDataDescriptions(SEDML_READ_CSV)
assert "dataTime" in data_sources
assert "dataS1" in data_sources
assert len(data_sources["dataTime"]) == 200
assert len(data_sources["dataS1"]) == 200
def test_parse_tsv():
data_sources = parseDataDescriptions(SEDML_READ_TSV)
assert "dataTime" in data_sources
assert "dataS1" in data_sources
assert len(data_sources["dataTime"]) == 200
assert len(data_sources["dataS1"]) == 200
def test_parse_numl():
data_sources = parseDataDescriptions(SEDML_READ_NUML)
assert "dataTime" in data_sources
assert "dataS1" in data_sources
assert len(data_sources["dataTime"]) == 200
assert len(data_sources["dataS1"]) == 200
def test_parse_numl_1D():
data_sources = parseDataDescriptions(SEDML_READ_NUML_1D)
def test_parse_numl_2D():
data_sources = parseDataDescriptions(SEDML_READ_NUML_2D)
def test_parse_numl_2DRC():
data_sources = parseDataDescriptions(SEDML_READ_NUML_2DRC)
if __name__ == "__main__":
pass