4 #include <boost/test/unit_test.hpp> 11 testing::test_order_book_type_trivial<array_based_order_book>();
20 testing::test_order_book_type_add_reduce<array_based_order_book>();
28 testing::test_order_book_type_errors<array_based_order_book>();
29 testing::test_order_book_type_errors_spec<array_based_order_book>();
41 const std::size_t ticks = 5000;
49 BOOST_CHECK_EQUAL(actual.first,
price4_t(100000));
50 BOOST_CHECK_EQUAL(actual.second, 100);
52 BOOST_CHECK_EQUAL(r,
true);
54 BOOST_CHECK_EQUAL(tested.
count(), 1);
59 BOOST_CHECK_EQUAL(actual.first,
price4_t(100000));
60 BOOST_CHECK_EQUAL(actual.second, 100);
61 BOOST_CHECK_EQUAL(r,
false);
63 BOOST_CHECK_EQUAL(tested.
count(), 2);
68 BOOST_CHECK_EQUAL(actual.first,
price4_t(100000));
69 BOOST_CHECK_EQUAL(actual.second, 100);
70 BOOST_CHECK_EQUAL(r,
false);
73 BOOST_CHECK_EQUAL(actual.first,
price4_t(500));
74 BOOST_CHECK_EQUAL(actual.second, 700);
76 BOOST_CHECK_EQUAL(tested.
count(), 3);
81 BOOST_CHECK_EQUAL(actual.first,
price4_t(100000));
82 BOOST_CHECK_EQUAL(actual.second, 500);
84 BOOST_CHECK_EQUAL(r,
true);
86 BOOST_CHECK_EQUAL(tested.
count(), 3);
91 BOOST_CHECK_EQUAL(actual.first,
price4_t(100100));
92 BOOST_CHECK_EQUAL(actual.second, 200);
93 BOOST_CHECK_EQUAL(r,
true);
95 BOOST_CHECK_EQUAL(tested.
count(), 4);
100 BOOST_CHECK_EQUAL(actual.first,
price4_t(100100));
101 BOOST_CHECK_EQUAL(actual.second, 200);
102 BOOST_CHECK_EQUAL(r,
false);
104 BOOST_CHECK_EQUAL(tested.
count(), 4);
110 BOOST_CHECK_EQUAL(actual.first,
price4_t(100100));
111 BOOST_CHECK_EQUAL(actual.second, 200);
112 BOOST_CHECK_EQUAL(r,
false);
114 BOOST_CHECK_EQUAL(tested.
count(), 3);
119 BOOST_CHECK_EQUAL(actual.first,
price4_t(99900));
120 BOOST_CHECK_EQUAL(actual.second, 300);
121 BOOST_CHECK_EQUAL(r,
true);
123 BOOST_CHECK_EQUAL(tested.
count(), 2);
130 BOOST_CHECK_EQUAL(actual.first,
price4_t(500));
131 BOOST_CHECK_EQUAL(actual.second, 700);
132 BOOST_CHECK_EQUAL(r,
true);
134 BOOST_CHECK_EQUAL(tested.
count(), 1);
137 BOOST_CHECK_EQUAL(actual.first,
price4_t(0));
138 BOOST_CHECK_EQUAL(actual.second, 0);
139 BOOST_CHECK_EQUAL(r,
true);
141 BOOST_CHECK_EQUAL(tested.
count(), 0);
153 const std::size_t ticks = 5000;
161 BOOST_CHECK_EQUAL(actual.first,
price4_t(100000));
162 BOOST_CHECK_EQUAL(actual.second, 100);
163 BOOST_CHECK_EQUAL(r,
true);
165 BOOST_CHECK_EQUAL(tested.
count(), 1);
170 BOOST_CHECK_EQUAL(actual.first,
price4_t(100000));
171 BOOST_CHECK_EQUAL(actual.second, 100);
172 BOOST_CHECK_EQUAL(r,
false);
174 BOOST_CHECK_EQUAL(tested.
count(), 2);
180 BOOST_CHECK_EQUAL(actual.first,
price4_t(100000));
181 BOOST_CHECK_EQUAL(actual.second, 100);
182 BOOST_CHECK_EQUAL(r,
false);
185 BOOST_CHECK_EQUAL(actual.first,
price4_t(1000000));
186 BOOST_CHECK_EQUAL(actual.second, 100);
188 BOOST_CHECK_EQUAL(tested.
count(), 3);
193 BOOST_CHECK_EQUAL(actual.first,
price4_t(100000));
194 BOOST_CHECK_EQUAL(actual.second, 500);
196 BOOST_CHECK_EQUAL(r,
true);
198 BOOST_CHECK_EQUAL(tested.
count(), 3);
203 BOOST_CHECK_EQUAL(actual.first,
price4_t(99900));
204 BOOST_CHECK_EQUAL(actual.second, 200);
205 BOOST_CHECK_EQUAL(r,
true);
207 BOOST_CHECK_EQUAL(tested.
count(), 4);
213 BOOST_CHECK_EQUAL(actual.first,
price4_t(99900));
214 BOOST_CHECK_EQUAL(actual.second, 200);
215 BOOST_CHECK_EQUAL(r,
false);
217 BOOST_CHECK_EQUAL(tested.
count(), 4);
223 BOOST_CHECK_EQUAL(actual.first,
price4_t(99900));
224 BOOST_CHECK_EQUAL(actual.second, 200);
225 BOOST_CHECK_EQUAL(r,
false);
227 BOOST_CHECK_EQUAL(tested.
count(), 3);
232 BOOST_CHECK_EQUAL(actual.first,
price4_t(100100));
233 BOOST_CHECK_EQUAL(actual.second, 300);
234 BOOST_CHECK_EQUAL(r,
true);
236 BOOST_CHECK_EQUAL(tested.
count(), 2);
241 BOOST_CHECK_EQUAL(actual.first,
price4_t(1000000));
242 BOOST_CHECK_EQUAL(actual.second, 100);
244 BOOST_CHECK_EQUAL(r,
true);
246 BOOST_CHECK_EQUAL(tested.
count(), 1);
251 BOOST_CHECK_EQUAL(actual.first,
price4_t(200000UL * 10000));
252 BOOST_CHECK_EQUAL(actual.second, 0);
254 BOOST_CHECK_EQUAL(r,
true);
256 BOOST_CHECK_EQUAL(tested.
count(), 0);
269 const std::size_t ticks = 5000;
277 BOOST_CHECK_EQUAL(rs,
true);
281 BOOST_CHECK_EQUAL(rs,
true);
285 BOOST_CHECK_EQUAL(rs,
false);
287 BOOST_CHECK_EQUAL(rs,
false);
289 BOOST_CHECK_EQUAL(rs,
false);
290 BOOST_CHECK_EQUAL(tested.
count(), 5);
294 BOOST_CHECK_EQUAL(rs,
true);
298 BOOST_CHECK_EQUAL(rs,
true);
304 BOOST_CHECK_EQUAL(rs,
true);
310 BOOST_CHECK_EQUAL(rs,
true);
314 BOOST_CHECK_EQUAL(rs,
false);
320 BOOST_CHECK_EQUAL(rs,
true);
325 BOOST_CHECK_EQUAL(rs,
true);
328 BOOST_CHECK_EQUAL(rs,
true);
331 BOOST_CHECK_EQUAL(rs,
true);
335 BOOST_CHECK_EQUAL(rs,
true);
339 BOOST_CHECK_EQUAL(rs,
true);
343 BOOST_CHECK_EQUAL(rs,
true);
345 BOOST_CHECK_EQUAL(rs,
true);
347 BOOST_CHECK_EQUAL(rs,
true);
349 BOOST_CHECK_EQUAL(rs,
true);
350 BOOST_CHECK_EQUAL(tested.
count(), 0);
363 const std::size_t ticks = 5000;
367 BOOST_CHECK_EQUAL(tested.
count(), 0);
371 BOOST_CHECK_EQUAL(rs,
true);
375 BOOST_CHECK_EQUAL(rs,
true);
378 BOOST_CHECK_EQUAL(rs,
false);
380 BOOST_CHECK_EQUAL(rs,
false);
382 BOOST_CHECK_EQUAL(rs,
false);
383 BOOST_CHECK_EQUAL(tested.
count(), 5);
387 BOOST_CHECK_EQUAL(rs,
true);
392 BOOST_CHECK_EQUAL(rs,
true);
396 BOOST_CHECK_EQUAL(rs,
true);
401 BOOST_CHECK_EQUAL(rs,
true);
406 BOOST_CHECK_EQUAL(rs,
false);
410 BOOST_CHECK_EQUAL(rs,
false);
415 BOOST_CHECK_EQUAL(rs,
true);
420 BOOST_CHECK_EQUAL(rs,
true);
423 BOOST_CHECK_EQUAL(rs,
true);
426 BOOST_CHECK_EQUAL(rs,
true);
431 BOOST_CHECK_EQUAL(rs,
true);
435 BOOST_CHECK_EQUAL(rs,
true);
439 BOOST_CHECK_EQUAL(rs,
true);
441 BOOST_CHECK_EQUAL(rs,
true);
443 BOOST_CHECK_EQUAL(rs,
true);
445 BOOST_CHECK_EQUAL(rs,
true);
447 BOOST_CHECK_EQUAL(rs,
true);
448 BOOST_CHECK_EQUAL(tested.
count(), 0);
469 BOOST_CHECK_EQUAL(rs,
true);
472 BOOST_CHECK_EQUAL(rs,
true);
474 BOOST_CHECK_EQUAL(rs,
true);
476 BOOST_CHECK_EQUAL(rs,
false);
478 BOOST_CHECK_EQUAL(rs,
false);
483 BOOST_CHECK_EQUAL(rs,
true);
488 BOOST_CHECK_EQUAL(rs,
true);
494 BOOST_CHECK_EQUAL(rs,
true);
499 BOOST_CHECK_EQUAL(rs,
true);
503 BOOST_CHECK_EQUAL(rs,
false);
509 BOOST_CHECK_EQUAL(rs,
true);
513 BOOST_CHECK_EQUAL(rs,
false);
515 BOOST_CHECK_EQUAL(rs,
false);
518 BOOST_CHECK_EQUAL(rs,
true);
520 BOOST_CHECK_EQUAL(rs,
true);
522 BOOST_CHECK_EQUAL(rs,
true);
526 BOOST_CHECK_EQUAL(rs,
true);
530 BOOST_CHECK_EQUAL(rs,
true);
532 BOOST_CHECK_EQUAL(rs,
true);
534 BOOST_CHECK_EQUAL(rs,
true);
535 BOOST_CHECK_EQUAL(tested.
count(), 0);
556 BOOST_CHECK_EQUAL(rs,
true);
559 BOOST_CHECK_EQUAL(rs,
false);
561 BOOST_CHECK_EQUAL(rs,
false);
563 BOOST_CHECK_EQUAL(rs,
true);
565 BOOST_CHECK_EQUAL(rs,
true);
569 BOOST_CHECK_EQUAL(rs,
true);
573 BOOST_CHECK_EQUAL(rs,
true);
578 BOOST_CHECK_EQUAL(rs,
true);
582 BOOST_CHECK_EQUAL(rs,
false);
587 BOOST_CHECK_EQUAL(rs,
true);
591 BOOST_CHECK_EQUAL(rs,
false);
593 BOOST_CHECK_EQUAL(rs,
false);
598 BOOST_CHECK_EQUAL(rs,
true);
601 BOOST_CHECK_EQUAL(rs,
true);
605 BOOST_CHECK_EQUAL(rs,
true);
607 BOOST_CHECK_EQUAL(rs,
true);
609 BOOST_CHECK_EQUAL(rs,
true);
611 BOOST_CHECK_EQUAL(rs,
true);
612 BOOST_CHECK_EQUAL(tested.
count(), 0);
622 const std::size_t ticks = 5000;
628 BOOST_CHECK_EQUAL(rs,
true);
632 BOOST_CHECK_EQUAL(rs,
true);
636 BOOST_CHECK_EQUAL(rs,
true);
639 BOOST_CHECK_EQUAL(rs,
false);
642 BOOST_CHECK_EQUAL(rs,
false);
646 BOOST_CHECK_EQUAL(rs,
true);
650 BOOST_CHECK_EQUAL(rs,
false);
653 BOOST_CHECK_EQUAL(rs,
false);
664 BOOST_CHECK_NO_THROW(
Contains classes and functions to parse NASDAQ ITCH-5.0 messages, more information about ITCH-5...
BOOST_AUTO_TEST_CASE(array_based_order_book_trivial)
Represent one side of the book.
Configure an array_based_order_book config object.
A simple class to communicate the result of parsing the options.
bool reduce_order(price4_t px, int qty)
Reduce the quantity for a given price.
half_quote best_quote() const
bool add_order(price4_t px, int qty)
Add a price and quantity to the side order book.
price_field< std::uint32_t, 10000 > price4_t
Convenience definition for Price(4) fields.
half_quote worst_quote() const
std::size_t count() const