21 #define BOOST_TEST_MODULE isimud_tests
22 #include <boost/test/included/unit_test.hpp>
24 #include "../exchanges/MIT/common/ref_data.hpp"
26 using namespace libisimud;
30 BOOST_AUTO_TEST_SUITE(market_data)
32 BOOST_AUTO_TEST_CASE(ctor) {
34 const ref_data_t ref_data
(ss
);
35 BOOST_CHECK(ref_data.lookup_instrument_id().empty());
36 BOOST_CHECK(ref_data.lookup_isin().empty());
39 BOOST_AUTO_TEST_CASE(one_entry) {
40 const std::string ref_data_file(
"133215;FTSE100;SET0;PT_T;TP_1;GB00BH4HKS39;;20060731;0;1;10000;42467000;1;;1;DE;VOD;VODAFONE GRP.;BH4HKS3;15225662730;GBX;1;Y;0023;VOVOD;VODAFONE GROUP PLC;0;;;15000;ORD USD0.20 20/21;;1;1;5;GB;;;FE00;1;;;;1;A;;;;;;");
43 const ref_data_t ref_data
(ss
);
44 BOOST_CHECK(!ref_data.lookup_instrument_id().empty());
45 BOOST_CHECK_EQUAL(ref_data.lookup_instrument_id().size(), 1);
46 BOOST_CHECK(!ref_data.lookup_isin().empty());
47 BOOST_CHECK_EQUAL(ref_data.lookup_isin().size(), 1);
48 const typename ref_data_t::
security_id_key sik(exchanges::common::ISIN_t(
"GB00BH4HKS39"));
49 BOOST_CHECK_EQUAL(sik.isin_.hash(), 124731814251123);
50 BOOST_CHECK(ref_data.lookup_instrument_id().find(sik)!=ref_data.lookup_instrument_id().end());
51 BOOST_CHECK_EQUAL(ref_data.lookup_instrument_id().find(sik)->second, 133215);
52 BOOST_CHECK(ref_data.lookup_isin().find(133215)!=ref_data.lookup_isin().end());
53 BOOST_CHECK_EQUAL(ref_data.lookup_isin().find(133215)->second, sik);
56 BOOST_AUTO_TEST_CASE(two_entries) {
57 const std::string ref_data_file(
58 "133215;FTSE100;SET0;PT_T;TP_1;GB00BH4HKS39;;20060731;0;1;10000;42467000;1;;1;DE;VOD;VODAFONE GRP.;BH4HKS3;15225662730;GBX;1;Y;0023;VOVOD;VODAFONE GROUP PLC;0;;;15000;ORD USD0.20 20/21;;1;1;5;GB;;;FE00;1;;;;1;A;;;;;;\n"
59 "2926;FTSE100;SET1;PT_T;TP_12;GB0000595859;;20000419;0;1;3000;32438040;1;;1;DE;ARM;ARM HLDGS.;0059585;3861344694;GBX;1;Y;0023;ARARM;ARM HOLDINGS PLC;0;;;7500;ORD 0.05P;;1;1;5;GB;;;FS10;4;;;;2;B;;;;;;"
63 const ref_data_t ref_data
(ss
);
64 BOOST_CHECK(!ref_data.lookup_instrument_id().empty());
65 BOOST_CHECK_EQUAL(ref_data.lookup_instrument_id().size(), 2);
66 BOOST_CHECK_EQUAL(ref_data.lookup_isin().size(), 2);
67 const typename ref_data_t::
security_id_key sik1(exchanges::common::ISIN_t(
"GB00BH4HKS39"));
68 BOOST_CHECK(ref_data.lookup_instrument_id().find(sik1)!=ref_data.lookup_instrument_id().end());
69 BOOST_CHECK_EQUAL(ref_data.lookup_instrument_id().find(sik1)->second, 133215);
70 BOOST_CHECK(ref_data.lookup_isin().find(133215)!=ref_data.lookup_isin().end());
71 BOOST_CHECK_EQUAL(ref_data.lookup_isin().find(133215)->second, sik1);
72 const typename ref_data_t::
security_id_key sik2(exchanges::common::ISIN_t(
"GB0000595859"));
73 BOOST_CHECK(ref_data.lookup_instrument_id().find(sik2)!=ref_data.lookup_instrument_id().end());
74 BOOST_CHECK_NE(sik1.isin_.hash(), sik2.isin_.hash());
75 BOOST_CHECK_EQUAL(ref_data.lookup_instrument_id().find(sik2)->second, 2926);
76 BOOST_CHECK(ref_data.lookup_isin().find(2926)!=ref_data.lookup_isin().end());
77 BOOST_CHECK_EQUAL(ref_data.lookup_isin().find(2926)->second, sik2);
80 BOOST_AUTO_TEST_SUITE_END()