#include #include #include "orderBook.h" using namespace std; string bid1 = R"( { "side": "bid", "event_time": "2023-01-17T16:53:49.212563Z", "price_level": "21203.92", "new_quantity": "0.06895437" })"; string bid2 = R"( { "side": "bid", "event_time": "2023-01-17T16:53:49.212563Z", "price_level": "21203.91", "new_quantity": "1.33773384" })"; string ask1 = R"( { "side": "offer", "event_time": "2023-01-17T16:53:49.212563Z", "price_level": "21391.0", "new_quantity": "0.111111" })"; string ask2 = R"( { "side": "offer", "event_time": "2023-01-17T16:53:49.212563Z", "price_level": "21392.0", "new_quantity": "0.222222" })"; string ask3 = R"( { "side": "offer", "event_time": "2023-01-17T16:53:49.212563Z", "price_level": "21393.0", "new_quantity": "0.333333" })"; string ask4 = R"( { "side": "offer", "event_time": "2023-01-17T16:53:49.212563Z", "price_level": "21394.0", "new_quantity": "0.444444" })"; string ask5 = R"( { "side": "offer", "event_time": "2023-01-17T16:53:49.212563Z", "price_level": "21395.0", "new_quantity": "0.555555" })"; string ask6 = R"( { "side": "offer", "event_time": "2023-01-17T16:53:49.212563Z", "price_level": "21396.0", "new_quantity": "0.6666666" })"; int main(void) { OrderBook orderBook; auto parse = [](const string& s) { Json::Value val; Json::Reader reader; if (reader.parse(s, val) == false) { Json::String err = reader.getFormattedErrorMessages(); cout << err << endl; } return val;; }; auto insert = [&orderBook](const std::string& type, const Json::Value& val) { if (type == "bid") orderBook.insert(orderBook.m_bids, val["price_level"], val["new_quantity"], val["event_time"]); if (type == "ask") orderBook.insert(orderBook.m_asks, val["price_level"], val["new_quantity"], val["event_time"]); }; insert("bid", parse(bid1)); insert("bid", parse(bid2)); insert("ask", parse(ask1)); insert("ask", parse(ask2)); insert("ask", parse(ask3)); insert("ask", parse(ask4)); insert("ask", parse(ask5)); insert("ask", parse(ask6)); orderBook.dump(5); orderBook.topOfBook(); return 0; }