⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 datatest.cpp

📁 股票分析源代码
💻 CPP
字号:
#include <iostream>#include "hbstock2/hbstock_init.h"#include "hbstock2/stock_data.h"#include "gnu/usage_tool.h"#include "gnu/i18n_debug.h"#include "dataTest.h"using namespace std;using namespace hbstock2;using namespace gnu;static const char* LOGFILE = gnu::FILENAME(__FILE__);CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( DataTest, "unitTest" );void DataTest::setUp(){	dataloader_name = "stockstar_data_loader";	default_dataloader_name = "tdx_data_loader";	unregister_dataloader_name = "stockstar_data_loader";	market_name = "SZ";}void DataTest::tearDown(){}void DataTest::test_get_stock_code_entity(const std::string& str_market_code){	char p_prefix_filename[256];		strcpy(p_prefix_filename,"600036");	test_get_stock_code(str_market_code,p_prefix_filename);		strcpy(p_prefix_filename,"000503");	test_get_stock_code(str_market_code,p_prefix_filename);		strcpy(p_prefix_filename,"036");	test_get_stock_code(str_market_code,p_prefix_filename);		strcpy(p_prefix_filename,"600*36");	test_get_stock_code(str_market_code,p_prefix_filename);			strcpy(p_prefix_filename,"600*36*");	test_get_stock_code(str_market_code,p_prefix_filename);		strcpy(p_prefix_filename,"00*36");	test_get_stock_code(str_market_code,p_prefix_filename);		strcpy(p_prefix_filename,"*00*36*");	test_get_stock_code(str_market_code,p_prefix_filename);	}void DataTest::test_get_stock_code(const std::string& str_market_code,const char* p_prefix_filename){	if (p_prefix_filename == NULL)	{		return;		}		std::vector<std::string> vect_stock_code;	bool is_contain = false;	std::vector<std::string> vect_str;		const char* p_chr_pattern = "*";	bool is_split = false;		DataManger* p_datamanger = 0;	p_datamanger = DataMangerInst::instance();		is_split = str_split(p_prefix_filename, p_chr_pattern, vect_str);	CPPUNIT_ASSERT( is_split );		/*	for (unsigned int i=0;i<vect_str.size();i++)	{		ACE_DEBUG ((LM_DEBUG, "split : %s\n",vect_str[i].c_str()));	}		*/		string str_tmp;	try	{					is_contain = p_datamanger->get_stock_code(vect_stock_code,str_market_code,p_prefix_filename);					for (unsigned int i=0;i<vect_stock_code.size();i++)		{			//ACE_DEBUG ((LM_DEBUG, "stock  %s : %s\n",p_prefix_filename,vect_stock_code[i].c_str()));			if (p_prefix_filename[0] != '*')			{				str_tmp = str_market_code + "." + vect_str[0];				CPPUNIT_ASSERT( str_tmp == (vect_stock_code[i].substr(0,str_tmp.size())));			}						if (p_prefix_filename[strlen(p_prefix_filename)-1] != '*')			{								str_tmp = vect_str[vect_str.size()-1];				CPPUNIT_ASSERT( str_tmp == 					(vect_stock_code[i].substr(vect_stock_code[i].size()-str_tmp.size())));			}					}					vect_stock_code.clear();				} catch (std::exception& ex)	{		I18N_ERROR(_("%s [%s:%l] get stock code error, error is: %s\n"),ex.what());	}}void DataTest::testAll(){	status = 0;			AppConfig* p_app_config = AppConfigInst::instance();
		
	string str_dir = p_app_config->get_root_dir() + "/plugin/data";
  	const char* p_file_prefix = "data_";   		DataManger* p_datamanger = 0;	p_datamanger = DataMangerInst::instance();	
	p_datamanger->load_dso_from_dir(str_dir,p_file_prefix);	//p_datamanger->load_dso_from_dir(str_dir);		/*------------------------------- test All information after load ==> start ------------------------------*/	I18N_DEBUG(_DEBUG("%s\n"),_("All information after load."));
	p_datamanger->print_info();	
	// call init() function to init data
  	p_datamanger->init();   	
		vect_dataloader.clear();		SetDataLoaderPtr set_dataloader_ptr = p_datamanger->get_all_dataloaders();		SetDataLoader::const_iterator iter_dataloader;	for (iter_dataloader=set_dataloader_ptr->begin();iter_dataloader!=set_dataloader_ptr->end();iter_dataloader++)	{		vect_dataloader.push_back((*iter_dataloader)->get_name());			}		/*------------------------------- test All information after load ==> end ------------------------------*/			/*------------------------------- test set default dataloader ==> start ------------------------------*/	vect_market_code.clear();	SetMarketPtr set_market_ptr = p_datamanger->get_all_market();				SetMarket::const_iterator iter_market_code;	for (iter_market_code=set_market_ptr->begin();iter_market_code!=set_market_ptr->end();iter_market_code++)	{		vect_market_code.push_back(iter_market_code->code);					}		I18N_DEBUG(_DEBUG("%s\n"),_("check dataloader"));			std::vector<std::string>::const_iterator iter_str;	for (iter_str=vect_dataloader.begin();iter_str!= vect_dataloader.end();iter_str++)	{					I18N_DEBUG(_DEBUG("%s : %s\n"),_("dataloader"),iter_str->c_str());			DataLoaderPtr dataloaderPtr = p_datamanger->get_dataloader(*iter_str);		CPPUNIT_ASSERT( dataloaderPtr.get() != 0 );				//set default dataloader	} // for (iter_str=vect_dataloader.begin();iter_str!= vect_dataloader.end();iter_str++)		/*------------------------------- test set default dataloader ==> end ------------------------------*/			/*------------------------------- test unregister dataloader ==> start ------------------------------*/			for (iter_str=vect_dataloader.begin();iter_str!= vect_dataloader.end();iter_str++)	{		ACE_DEBUG ((LM_DEBUG,_("%s [%s:%l] unregister %s dataloader\n"),DEBUG_PREFIX,iter_str->c_str()));		p_datamanger->unregister_dataloader(*iter_str);		p_datamanger->print_info();	}		/*------------------------------- test unregister dataloader ==> end ------------------------------*/			/*------------------------------- test unregister all market ==> start ------------------------------*/	I18N_DEBUG(_DEBUG("%s\n"),_("unregister all market"));			for (iter_str=vect_market_code.begin();iter_str!= vect_market_code.end();iter_str++)	{		ACE_DEBUG ((LM_DEBUG,_("%s [%s:%l] unregister %s market\n"),DEBUG_PREFIX,iter_str->c_str()));		CPPUNIT_ASSERT(p_datamanger->unregister_market(*iter_str));		p_datamanger->print_info();	}	
	p_datamanger->fini();	p_datamanger->print_info();		/*------------------------------- test unregister all market ==> end ------------------------------*/	    CPPUNIT_ASSERT( status == 0 );}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -