def test_getAdv(self): code = '000001' days = 365 * 1.2 start = datetime.datetime.now() - datetime.timedelta(days) end = datetime.datetime.now() - datetime.timedelta(0) df = qm.getAdv(code, start, end) self.assertIsInstance( df, QA_DataStruct_Index_day, "应返回类型:QA_DataStruct_Stock_day,实际返回数据类型:{}".format(type(df))) self.assertTrue(len(df) > days // 10, "返回数据数量应该大于0。") print(df.data.tail())
def test_getMin_datetimestr(self): code = '000001' days = 30 * 1.2 start = str(datetime.datetime.now() - datetime.timedelta(days))[:10] end = str(datetime.datetime.now() - datetime.timedelta(0))[:10] df = qm.get(code, start, end, frequence='1min') self.assertTrue(len(df) > 0, "返回数据数量应该大于0。") print(df.tail(10)) start = datetime.datetime.now() - datetime.timedelta(days) end = datetime.datetime.now() - datetime.timedelta(0) df2 = qm.get(code, start, end, frequence='1min') # str化后的时间为开盘时间, self.assertTrue(len(df) >= len(df2)) data1, data2 = df, df2 if len(data1) > len(data2): data1 = data1[-len(data2):] print("array1f的长度比array2长") elif len(data1) < len(data2): data2 = data2[-len(data1):] print("array2的长度比array1长") self.assertTrue(data1.equals(data2), "截取相同长度后的数据应该相同")
def test_data_struct_index(self): """指数(或etf)DataStruture """ code = '000001' days = 365 * 1.2 start = datetime.datetime.now() - datetime.timedelta(days) end = datetime.datetime.now() - datetime.timedelta(0) df = qmi.get(code, start, end) if df is not None: df = df.set_index(['date', 'code'], drop=True) ds = qd(type='index').dataStruct(df) ds2 = QA_DataStruct_Index_day(df) self.assertIsInstance(ds, QA_DataStruct_Index_day) self.assertIsInstance(ds2, QA_DataStruct_Index_day)
def test_getAdv_diffQA(self): """和QA返回的数据对比一致性 """ code = '000001' days = 365 * 1.2 start = datetime.datetime.now() - datetime.timedelta(days) end = datetime.datetime.now() - datetime.timedelta(0) df = qm.getAdv(code, start, end) self.assertTrue(len(df) > 0, "返回数据数量应该大于0。") df2 = QA_fetch_index_day_adv(code, start, end) self.assertTrue( len(df.data) == len(df2.data), "和QA返回的数据,长度不一致{} {}".format(len(df.data), len(df2.data))) # 两种方式检测numpy数据一致性 obo = self.differOneByOne(df.data, df2.data) self.assertTrue(df.data.equals(df2.data), "和QA返回的数据不一致{}".format(obo))
def test_getMin_diffQA(self): code = '000001' days = 20 * 1.2 start = str(datetime.datetime.now() - datetime.timedelta(days)) end = str(datetime.datetime.now() - datetime.timedelta(0)) df = qm.get(code, start, end, frequence='1min') df2 = QA_fetch_index_min(code, start, end=end, format='pd', frequence='1min') # todo df的长度比df2长。未找出原因 data1, data2 = df, df2 self.assertTrue( len(data1) == len(data2), "和QA返回的分钟线数据长度不一致:{}:{}".format(len(data1), len(data2))) if len(data1) > len(data2): print("array1f的长度比array2长") data1 = data1[-len(data2):] elif len(data1) < len(data2): print("array2的长度比array1长") data2 = data2[-len(data1):] obo = self.differOneByOne(data1, data2) self.assertTrue(data1.equals(data2), "和QA返回的分钟线数据不一致:{}".format(obo))