Skip to content

Commit 83240b5

Browse files
authored
[840] - Test case for operators. (microsoft#841)
* [840] - Test case for operators. * Move import to the head of file and add test_setting.
1 parent 5fea707 commit 83240b5

File tree

2 files changed

+57
-0
lines changed

2 files changed

+57
-0
lines changed

qlib/tests/__init__.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22
from .data import GetData
33
from .. import init
44
from ..constant import REG_CN
5+
from qlib.data.filter import NameDFilter
6+
from qlib.data import D
7+
from qlib.data.data import Cal, DatasetD
58

69

710
class TestAutoData(unittest.TestCase):
@@ -51,3 +54,24 @@ def setUpClass(cls, enable_1d_type="simple", enable_1min=False) -> None:
5154
dataset_cache=None,
5255
**cls._setup_kwargs,
5356
)
57+
58+
59+
class TestOperatorData(TestAutoData):
60+
@classmethod
61+
def setUpClass(cls, enable_1d_type="simple", enable_1min=False) -> None:
62+
# use default data
63+
super().setUpClass(enable_1d_type, enable_1min)
64+
nameDFilter = NameDFilter(name_rule_re="SH600110")
65+
instruments = D.instruments("csi300", filter_pipe=[nameDFilter])
66+
start_time = "2005-01-04"
67+
end_time = "2005-12-31"
68+
freq = "day"
69+
70+
instruments_d = DatasetD.get_instruments_d(instruments, freq)
71+
cls.instruments_d = instruments_d
72+
cal = Cal.calendar(start_time, end_time, freq)
73+
cls.cal = cal
74+
cls.start_time = cal[0]
75+
cls.end_time = cal[-1]
76+
cls.inst = list(instruments_d.keys())[0]
77+
cls.spans = list(instruments_d.values())[0]

tests/ops/test_elem_operator.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import unittest
2+
3+
from qlib.data import DatasetProvider
4+
from qlib.tests import TestOperatorData
5+
from qlib.config import C
6+
7+
8+
class TestOperatorDataSetting(TestOperatorData):
9+
def test_setting(self):
10+
self.assertEqual(len(self.instruments_d), 1)
11+
self.assertGreater(len(self.cal), 0)
12+
13+
14+
class TestElementOperator(TestOperatorData):
15+
def setUp(self) -> None:
16+
freq = "day"
17+
expressions = [
18+
"$change",
19+
"Abs($change)",
20+
]
21+
columns = ["change", "abs"]
22+
self.data = DatasetProvider.expression_calculator(
23+
self.inst, self.start_time, self.end_time, freq, expressions, self.spans, C, []
24+
)
25+
self.data.columns = columns
26+
27+
def test_abs(self):
28+
abs_values = self.data["abs"]
29+
self.assertGreater(abs_values[2], 0)
30+
31+
32+
if __name__ == "__main__":
33+
unittest.main()

0 commit comments

Comments
 (0)