├── .clang_complete ├── .gitattributes ├── .gitignore ├── .gitmodules ├── .travis.yml ├── Doxyfile ├── LICENSE ├── MANIFEST.in ├── README.md ├── SConstruct ├── benchmark └── benchmark_lob.cpp ├── docs ├── annotated.html ├── bc_s.png ├── bdwn.png ├── c__library_8hpp_source.html ├── class_l_o_b_1_1_limit_order_book-members.html ├── class_l_o_b_1_1_limit_order_book.html ├── classes.html ├── classlimit__order__book_1_1library_1_1_library-members.html ├── classlimit__order__book_1_1library_1_1_library.html ├── classlimit__order__book_1_1limit__order__book_1_1_limit_order_book-members.html ├── classlimit__order__book_1_1limit__order__book_1_1_limit_order_book.html ├── closed.png ├── dir_44cec6e3ea30e076b9313c4641539d9f.html ├── dir_5c982d53a68cdbcd421152b4020263a9.html ├── dir_68267d1309a1af8e8297ef4c3efbcdba.html ├── dir_7575d92b22b6c8891413d113cc944513.html ├── dir_d44c64559bbebec7f509842c48db8b23.html ├── doc.png ├── doxygen.png ├── dynsections.js ├── files.html ├── folderclosed.png ├── folderopen.png ├── functions.html ├── functions_func.html ├── functions_vars.html ├── hierarchy.html ├── html_stylesheet.css ├── index.html ├── jquery.js ├── lib__lob_8hpp_source.html ├── limit-order-book.svg ├── limit__order__book_8hpp_source.html ├── limit__tree_8hpp_source.html ├── menu.js ├── menudata.js ├── namespace_l_o_b.html ├── namespacelimit__order__book.html ├── namespacelimit__order__book_1_1library.html ├── namespacelimit__order__book_1_1limit__order__book.html ├── namespacemembers.html ├── namespacemembers_enum.html ├── namespacemembers_func.html ├── namespacemembers_type.html ├── namespaces.html ├── nav_f.png ├── nav_g.png ├── nav_h.png ├── open.png ├── search │ ├── all_0.html │ ├── all_0.js │ ├── all_1.html │ ├── all_1.js │ ├── all_2.html │ ├── all_2.js │ ├── all_3.html │ ├── all_3.js │ ├── all_4.html │ ├── all_4.js │ ├── all_5.html │ ├── all_5.js │ ├── all_6.html │ ├── all_6.js │ ├── all_7.html │ ├── all_7.js │ ├── all_8.html │ ├── all_8.js │ ├── all_9.html │ ├── all_9.js │ ├── all_a.html │ ├── all_a.js │ ├── all_b.html │ ├── all_b.js │ ├── all_c.html │ ├── all_c.js │ ├── all_d.html │ ├── all_d.js │ ├── all_e.html │ ├── all_e.js │ ├── classes_0.html │ ├── classes_0.js │ ├── classes_1.html │ ├── classes_1.js │ ├── close.png │ ├── enums_0.html │ ├── enums_0.js │ ├── functions_0.html │ ├── functions_0.js │ ├── functions_1.html │ ├── functions_1.js │ ├── functions_2.html │ ├── functions_2.js │ ├── functions_3.html │ ├── functions_3.js │ ├── functions_4.html │ ├── functions_4.js │ ├── functions_5.html │ ├── functions_5.js │ ├── functions_6.html │ ├── functions_6.js │ ├── functions_7.html │ ├── functions_7.js │ ├── functions_8.html │ ├── functions_8.js │ ├── functions_9.html │ ├── functions_9.js │ ├── functions_a.html │ ├── functions_a.js │ ├── functions_b.html │ ├── functions_b.js │ ├── functions_c.html │ ├── functions_c.js │ ├── mag_sel.png │ ├── namespaces_0.html │ ├── namespaces_0.js │ ├── nomatches.html │ ├── pages_0.html │ ├── pages_0.js │ ├── search.css │ ├── search.js │ ├── search_l.png │ ├── search_m.png │ ├── search_r.png │ ├── searchdata.js │ ├── typedefs_0.html │ ├── typedefs_0.js │ ├── typedefs_1.html │ ├── typedefs_1.js │ ├── typedefs_2.html │ ├── typedefs_2.js │ ├── typedefs_3.html │ ├── typedefs_3.js │ ├── typedefs_4.html │ ├── typedefs_4.js │ ├── variables_0.html │ ├── variables_0.js │ ├── variables_1.html │ ├── variables_1.js │ ├── variables_2.html │ ├── variables_2.js │ ├── variables_3.html │ ├── variables_3.js │ ├── variables_4.html │ ├── variables_4.js │ ├── variables_5.html │ ├── variables_5.js │ ├── variables_6.html │ ├── variables_6.js │ ├── variables_7.html │ ├── variables_7.js │ ├── variables_8.html │ ├── variables_8.js │ ├── variables_9.html │ ├── variables_9.js │ ├── variables_a.html │ └── variables_a.js ├── splitbar.png ├── struct_l_o_b_1_1_limit-members.html ├── struct_l_o_b_1_1_limit.html ├── struct_l_o_b_1_1_limit.png ├── struct_l_o_b_1_1_limit_tree-members.html ├── struct_l_o_b_1_1_limit_tree.html ├── struct_l_o_b_1_1_order-members.html ├── struct_l_o_b_1_1_order.html ├── struct_l_o_b_1_1_order.png ├── structures_8hpp_source.html ├── sync_off.png ├── sync_on.png ├── tab_a.png ├── tab_b.png ├── tab_h.png ├── tab_s.png └── tabs.css ├── doxygen ├── UML.mdj ├── html_footer.html ├── html_header.html ├── html_stylesheet.css └── img │ ├── limit-order-book.pdf │ └── limit-order-book.svg ├── include ├── lib_lob.hpp ├── limit_order_book.hpp ├── limit_tree.hpp └── structures.hpp ├── limit_order_book ├── __init__.py ├── library.py ├── limit_order_book.py └── test │ ├── __init__.py │ └── test_limit_order_book.py ├── main └── dummy_matching.cpp ├── makefile ├── notes ├── engines │ ├── engine.c │ └── island.prg └── lob.md ├── setup.py ├── src └── lib_lob.cpp ├── test ├── test_limit_order_book.cpp ├── test_limit_tree.cpp └── test_structures.cpp └── vendor ├── Catch2 ├── .conan │ ├── build.py │ └── test_package │ │ ├── CMakeLists.txt │ │ ├── conanfile.py │ │ └── test_package.cpp ├── .gitattributes ├── .github │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE │ │ ├── bug_report.md │ │ └── feature_request.md │ └── pull_request_template.md ├── .gitignore ├── .travis.yml ├── CMake │ ├── Catch2Config.cmake.in │ ├── FindGcov.cmake │ ├── FindLcov.cmake │ ├── Findcodecov.cmake │ ├── MiscFunctions.cmake │ ├── catch2.pc.in │ └── llvm-cov-wrapper ├── CMakeLists.txt ├── CODE_OF_CONDUCT.md ├── LICENSE.txt ├── README.md ├── appveyor.yml ├── artwork │ ├── catch2-c-logo.png │ ├── catch2-hand-logo.png │ └── catch2-logo-small.png ├── codecov.yml ├── conanfile.py ├── contrib │ ├── Catch.cmake │ ├── CatchAddTests.cmake │ ├── ParseAndAddCatchTests.cmake │ ├── gdbinit │ └── lldbinit ├── docs │ ├── Readme.md │ ├── assertions.md │ ├── benchmarks.md │ ├── ci-and-misc.md │ ├── cmake-integration.md │ ├── command-line.md │ ├── commercial-users.md │ ├── configuration.md │ ├── contributing.md │ ├── deprecations.md │ ├── event-listeners.md │ ├── generators.md │ ├── limitations.md │ ├── list-of-examples.md │ ├── logging.md │ ├── matchers.md │ ├── opensource-users.md │ ├── other-macros.md │ ├── own-main.md │ ├── release-notes.md │ ├── release-process.md │ ├── reporters.md │ ├── slow-compiles.md │ ├── test-cases-and-sections.md │ ├── test-fixtures.md │ ├── tostring.md │ ├── tutorial.md │ └── why-catch.md ├── examples │ ├── 000-CatchMain.cpp │ ├── 010-TestCase.cpp │ ├── 020-TestCase-1.cpp │ ├── 020-TestCase-2.cpp │ ├── 030-Asn-Require-Check.cpp │ ├── 100-Fix-Section.cpp │ ├── 110-Fix-ClassFixture.cpp │ ├── 120-Bdd-ScenarioGivenWhenThen.cpp │ ├── 200-Rpt-CatchMain.cpp │ ├── 207-Rpt-TeamCityReporter.cpp │ ├── 210-Evt-EventListeners.cpp │ ├── 231-Cfg-OutputStreams.cpp │ ├── 300-Gen-OwnGenerator.cpp │ ├── 301-Gen-MapTypeConversion.cpp │ ├── 310-Gen-VariablesInGenerators.cpp │ ├── 311-Gen-CustomCapture.cpp │ └── CMakeLists.txt ├── include │ ├── catch.hpp │ ├── catch_with_main.hpp │ ├── external │ │ └── clara.hpp │ ├── internal │ │ ├── benchmark │ │ │ ├── catch_benchmark.hpp │ │ │ ├── catch_chronometer.hpp │ │ │ ├── catch_clock.hpp │ │ │ ├── catch_constructor.hpp │ │ │ ├── catch_environment.hpp │ │ │ ├── catch_estimate.hpp │ │ │ ├── catch_execution_plan.hpp │ │ │ ├── catch_optimizer.hpp │ │ │ ├── catch_outlier_classification.hpp │ │ │ ├── catch_sample_analysis.hpp │ │ │ └── detail │ │ │ │ ├── catch_analyse.hpp │ │ │ │ ├── catch_benchmark_function.hpp │ │ │ │ ├── catch_complete_invoke.hpp │ │ │ │ ├── catch_estimate_clock.hpp │ │ │ │ ├── catch_measure.hpp │ │ │ │ ├── catch_repeat.hpp │ │ │ │ ├── catch_run_for_at_least.hpp │ │ │ │ ├── catch_stats.cpp │ │ │ │ ├── catch_stats.hpp │ │ │ │ └── catch_timing.hpp │ │ ├── catch_approx.cpp │ │ ├── catch_approx.h │ │ ├── catch_assertionhandler.cpp │ │ ├── catch_assertionhandler.h │ │ ├── catch_assertioninfo.h │ │ ├── catch_assertionresult.cpp │ │ ├── catch_assertionresult.h │ │ ├── catch_capture.hpp │ │ ├── catch_capture_matchers.cpp │ │ ├── catch_capture_matchers.h │ │ ├── catch_clara.h │ │ ├── catch_commandline.cpp │ │ ├── catch_commandline.h │ │ ├── catch_common.cpp │ │ ├── catch_common.h │ │ ├── catch_compiler_capabilities.h │ │ ├── catch_config.cpp │ │ ├── catch_config.hpp │ │ ├── catch_console_colour.cpp │ │ ├── catch_console_colour.h │ │ ├── catch_context.cpp │ │ ├── catch_context.h │ │ ├── catch_debug_console.cpp │ │ ├── catch_debug_console.h │ │ ├── catch_debugger.cpp │ │ ├── catch_debugger.h │ │ ├── catch_decomposer.cpp │ │ ├── catch_decomposer.h │ │ ├── catch_default_main.hpp │ │ ├── catch_enforce.cpp │ │ ├── catch_enforce.h │ │ ├── catch_enum_values_registry.cpp │ │ ├── catch_enum_values_registry.h │ │ ├── catch_errno_guard.cpp │ │ ├── catch_errno_guard.h │ │ ├── catch_exception_translator_registry.cpp │ │ ├── catch_exception_translator_registry.h │ │ ├── catch_external_interfaces.h │ │ ├── catch_fatal_condition.cpp │ │ ├── catch_fatal_condition.h │ │ ├── catch_generators.cpp │ │ ├── catch_generators.hpp │ │ ├── catch_generators_generic.hpp │ │ ├── catch_generators_specific.hpp │ │ ├── catch_impl.hpp │ │ ├── catch_interfaces_capture.cpp │ │ ├── catch_interfaces_capture.h │ │ ├── catch_interfaces_config.cpp │ │ ├── catch_interfaces_config.h │ │ ├── catch_interfaces_enum_values_registry.h │ │ ├── catch_interfaces_exception.cpp │ │ ├── catch_interfaces_exception.h │ │ ├── catch_interfaces_generatortracker.h │ │ ├── catch_interfaces_registry_hub.cpp │ │ ├── catch_interfaces_registry_hub.h │ │ ├── catch_interfaces_reporter.cpp │ │ ├── catch_interfaces_reporter.h │ │ ├── catch_interfaces_runner.cpp │ │ ├── catch_interfaces_runner.h │ │ ├── catch_interfaces_tag_alias_registry.h │ │ ├── catch_interfaces_testcase.cpp │ │ ├── catch_interfaces_testcase.h │ │ ├── catch_leak_detector.cpp │ │ ├── catch_leak_detector.h │ │ ├── catch_list.cpp │ │ ├── catch_list.h │ │ ├── catch_matchers.cpp │ │ ├── catch_matchers.h │ │ ├── catch_matchers_floating.cpp │ │ ├── catch_matchers_floating.h │ │ ├── catch_matchers_generic.cpp │ │ ├── catch_matchers_generic.hpp │ │ ├── catch_matchers_string.cpp │ │ ├── catch_matchers_string.h │ │ ├── catch_matchers_vector.h │ │ ├── catch_message.cpp │ │ ├── catch_message.h │ │ ├── catch_meta.hpp │ │ ├── catch_objc.hpp │ │ ├── catch_objc_arc.hpp │ │ ├── catch_option.hpp │ │ ├── catch_output_redirect.cpp │ │ ├── catch_output_redirect.h │ │ ├── catch_platform.h │ │ ├── catch_polyfills.cpp │ │ ├── catch_polyfills.hpp │ │ ├── catch_preprocessor.hpp │ │ ├── catch_random_number_generator.cpp │ │ ├── catch_random_number_generator.h │ │ ├── catch_reenable_warnings.h │ │ ├── catch_registry_hub.cpp │ │ ├── catch_reporter_registrars.hpp │ │ ├── catch_reporter_registry.cpp │ │ ├── catch_reporter_registry.h │ │ ├── catch_result_type.cpp │ │ ├── catch_result_type.h │ │ ├── catch_run_context.cpp │ │ ├── catch_run_context.h │ │ ├── catch_section.cpp │ │ ├── catch_section.h │ │ ├── catch_section_info.cpp │ │ ├── catch_section_info.h │ │ ├── catch_session.cpp │ │ ├── catch_session.h │ │ ├── catch_singletons.cpp │ │ ├── catch_singletons.hpp │ │ ├── catch_startup_exception_registry.cpp │ │ ├── catch_startup_exception_registry.h │ │ ├── catch_stream.cpp │ │ ├── catch_stream.h │ │ ├── catch_string_manip.cpp │ │ ├── catch_string_manip.h │ │ ├── catch_stringref.cpp │ │ ├── catch_stringref.h │ │ ├── catch_suppress_warnings.h │ │ ├── catch_tag_alias.cpp │ │ ├── catch_tag_alias.h │ │ ├── catch_tag_alias_autoregistrar.cpp │ │ ├── catch_tag_alias_autoregistrar.h │ │ ├── catch_tag_alias_registry.cpp │ │ ├── catch_tag_alias_registry.h │ │ ├── catch_test_case_info.cpp │ │ ├── catch_test_case_info.h │ │ ├── catch_test_case_registry_impl.cpp │ │ ├── catch_test_case_registry_impl.h │ │ ├── catch_test_case_tracker.cpp │ │ ├── catch_test_case_tracker.h │ │ ├── catch_test_registry.cpp │ │ ├── catch_test_registry.h │ │ ├── catch_test_spec.cpp │ │ ├── catch_test_spec.h │ │ ├── catch_test_spec_parser.cpp │ │ ├── catch_test_spec_parser.h │ │ ├── catch_text.h │ │ ├── catch_timer.cpp │ │ ├── catch_timer.h │ │ ├── catch_to_string.hpp │ │ ├── catch_tostring.cpp │ │ ├── catch_tostring.h │ │ ├── catch_totals.cpp │ │ ├── catch_totals.h │ │ ├── catch_type_traits.hpp │ │ ├── catch_uncaught_exceptions.cpp │ │ ├── catch_uncaught_exceptions.h │ │ ├── catch_user_interfaces.h │ │ ├── catch_version.cpp │ │ ├── catch_version.h │ │ ├── catch_wildcard_pattern.cpp │ │ ├── catch_wildcard_pattern.h │ │ ├── catch_windows_h_proxy.h │ │ ├── catch_xmlwriter.cpp │ │ └── catch_xmlwriter.h │ └── reporters │ │ ├── catch_reporter_automake.hpp │ │ ├── catch_reporter_bases.cpp │ │ ├── catch_reporter_bases.hpp │ │ ├── catch_reporter_compact.cpp │ │ ├── catch_reporter_compact.h │ │ ├── catch_reporter_console.cpp │ │ ├── catch_reporter_console.h │ │ ├── catch_reporter_junit.cpp │ │ ├── catch_reporter_junit.h │ │ ├── catch_reporter_listening.cpp │ │ ├── catch_reporter_listening.h │ │ ├── catch_reporter_tap.hpp │ │ ├── catch_reporter_teamcity.hpp │ │ ├── catch_reporter_xml.cpp │ │ └── catch_reporter_xml.h ├── misc │ ├── CMakeLists.txt │ ├── appveyorBuildConfigurationScript.bat │ ├── appveyorMergeCoverageScript.py │ ├── appveyorTestRunScript.bat │ ├── coverage-helper.cpp │ └── installOpenCppCoverage.ps1 ├── projects │ ├── CMakeLists.txt │ ├── ExtraTests │ │ ├── CMakeLists.txt │ │ ├── ToDo.txt │ │ ├── X01-PrefixedMacros.cpp │ │ ├── X02-DisabledMacros.cpp │ │ ├── X03-DisabledExceptions-DefaultHandler.cpp │ │ ├── X04-DisabledExceptions-CustomHandler.cpp │ │ ├── X10-FallbackStringifier.cpp │ │ ├── X11-DisableStringification.cpp │ │ └── X20-BenchmarkingMacros.cpp │ ├── SelfTest │ │ ├── Baselines │ │ │ ├── automake.std.approved.txt │ │ │ ├── compact.sw.approved.txt │ │ │ ├── console.std.approved.txt │ │ │ ├── console.sw.approved.txt │ │ │ ├── console.swa4.approved.txt │ │ │ ├── junit.sw.approved.txt │ │ │ └── xml.sw.approved.txt │ │ ├── CompileTimePerfTests │ │ │ ├── 10.tests.cpp │ │ │ ├── 100.tests.cpp │ │ │ └── All.tests.cpp │ │ ├── IntrospectiveTests │ │ │ ├── CmdLine.tests.cpp │ │ │ ├── GeneratorsImpl.tests.cpp │ │ │ ├── InternalBenchmark.tests.cpp │ │ │ ├── PartTracker.tests.cpp │ │ │ ├── String.tests.cpp │ │ │ ├── Tag.tests.cpp │ │ │ ├── ToString.tests.cpp │ │ │ └── Xml.tests.cpp │ │ ├── SurrogateCpps │ │ │ ├── catch_console_colour.cpp │ │ │ ├── catch_debugger.cpp │ │ │ ├── catch_interfaces_reporter.cpp │ │ │ ├── catch_option.cpp │ │ │ ├── catch_stream.cpp │ │ │ ├── catch_test_case_tracker.cpp │ │ │ ├── catch_test_spec.cpp │ │ │ └── catch_xmlwriter.cpp │ │ ├── TestMain.cpp │ │ └── UsageTests │ │ │ ├── Approx.tests.cpp │ │ │ ├── BDD.tests.cpp │ │ │ ├── Benchmark.tests.cpp │ │ │ ├── Class.tests.cpp │ │ │ ├── Compilation.tests.cpp │ │ │ ├── Condition.tests.cpp │ │ │ ├── Decomposition.tests.cpp │ │ │ ├── EnumToString.tests.cpp │ │ │ ├── Exception.tests.cpp │ │ │ ├── Generators.tests.cpp │ │ │ ├── Matchers.tests.cpp │ │ │ ├── Message.tests.cpp │ │ │ ├── Misc.tests.cpp │ │ │ ├── ToStringChrono.tests.cpp │ │ │ ├── ToStringGeneral.tests.cpp │ │ │ ├── ToStringOptional.tests.cpp │ │ │ ├── ToStringPair.tests.cpp │ │ │ ├── ToStringTuple.tests.cpp │ │ │ ├── ToStringVariant.tests.cpp │ │ │ ├── ToStringVector.tests.cpp │ │ │ ├── ToStringWhich.tests.cpp │ │ │ ├── Tricky.tests.cpp │ │ │ └── VariadicMacros.tests.cpp │ └── XCode │ │ └── OCTest │ │ ├── OCTest.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ │ ├── OCTest │ │ ├── CatchOCTestCase.h │ │ ├── CatchOCTestCase.mm │ │ ├── Main.mm │ │ ├── OCTest.1 │ │ ├── OCTest.mm │ │ ├── TestObj.h │ │ └── TestObj.m │ │ └── catch_objc_impl.mm ├── scripts │ ├── approvalTests.py │ ├── approve.py │ ├── benchmarkCompile.py │ ├── benchmarkRunner.py │ ├── developBuild.py │ ├── embed.py │ ├── embedClara.py │ ├── fixWhitespace.py │ ├── generateSingleHeader.py │ ├── majorRelease.py │ ├── minorRelease.py │ ├── patchRelease.py │ ├── releaseCommon.py │ ├── releaseNotes.py │ ├── scriptCommon.py │ ├── updateDocumentToC.py │ └── updateWandbox.py ├── single_include │ └── catch2 │ │ ├── catch.hpp │ │ ├── catch_reporter_automake.hpp │ │ ├── catch_reporter_tap.hpp │ │ └── catch_reporter_teamcity.hpp └── third_party │ └── clara.hpp ├── binary-search-tree ├── .clang_complete ├── .gitignore ├── .gitmodules ├── .travis.yml ├── LICENSE ├── README.md ├── SConstruct ├── benchmark │ └── benchmark_bst.cpp ├── include │ └── binary_search_tree.hpp ├── test │ ├── .gitignore │ └── test_binary_search_tree.cpp └── vendor │ └── Catch2 │ ├── .conan │ ├── build.py │ └── test_package │ │ ├── CMakeLists.txt │ │ ├── conanfile.py │ │ └── test_package.cpp │ ├── .gitattributes │ ├── .github │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE │ │ ├── bug_report.md │ │ └── feature_request.md │ └── pull_request_template.md │ ├── .gitignore │ ├── .travis.yml │ ├── CMake │ ├── Catch2Config.cmake.in │ ├── FindGcov.cmake │ ├── FindLcov.cmake │ ├── Findcodecov.cmake │ ├── MiscFunctions.cmake │ ├── catch2.pc.in │ └── llvm-cov-wrapper │ ├── CMakeLists.txt │ ├── CODE_OF_CONDUCT.md │ ├── LICENSE.txt │ ├── README.md │ ├── appveyor.yml │ ├── artwork │ ├── catch2-c-logo.png │ ├── catch2-hand-logo.png │ └── catch2-logo-small.png │ ├── codecov.yml │ ├── conanfile.py │ ├── contrib │ ├── Catch.cmake │ ├── CatchAddTests.cmake │ ├── ParseAndAddCatchTests.cmake │ ├── gdbinit │ └── lldbinit │ ├── docs │ ├── Readme.md │ ├── assertions.md │ ├── benchmarks.md │ ├── ci-and-misc.md │ ├── cmake-integration.md │ ├── command-line.md │ ├── commercial-users.md │ ├── configuration.md │ ├── contributing.md │ ├── deprecations.md │ ├── event-listeners.md │ ├── generators.md │ ├── limitations.md │ ├── list-of-examples.md │ ├── logging.md │ ├── matchers.md │ ├── opensource-users.md │ ├── other-macros.md │ ├── own-main.md │ ├── release-notes.md │ ├── release-process.md │ ├── reporters.md │ ├── slow-compiles.md │ ├── test-cases-and-sections.md │ ├── test-fixtures.md │ ├── tostring.md │ ├── tutorial.md │ └── why-catch.md │ ├── examples │ ├── 000-CatchMain.cpp │ ├── 010-TestCase.cpp │ ├── 020-TestCase-1.cpp │ ├── 020-TestCase-2.cpp │ ├── 030-Asn-Require-Check.cpp │ ├── 100-Fix-Section.cpp │ ├── 110-Fix-ClassFixture.cpp │ ├── 120-Bdd-ScenarioGivenWhenThen.cpp │ ├── 200-Rpt-CatchMain.cpp │ ├── 207-Rpt-TeamCityReporter.cpp │ ├── 210-Evt-EventListeners.cpp │ ├── 231-Cfg-OutputStreams.cpp │ ├── 300-Gen-OwnGenerator.cpp │ ├── 301-Gen-MapTypeConversion.cpp │ ├── 310-Gen-VariablesInGenerators.cpp │ ├── 311-Gen-CustomCapture.cpp │ └── CMakeLists.txt │ ├── include │ ├── catch.hpp │ ├── catch_with_main.hpp │ ├── external │ │ └── clara.hpp │ ├── internal │ │ ├── benchmark │ │ │ ├── catch_benchmark.hpp │ │ │ ├── catch_chronometer.hpp │ │ │ ├── catch_clock.hpp │ │ │ ├── catch_constructor.hpp │ │ │ ├── catch_environment.hpp │ │ │ ├── catch_estimate.hpp │ │ │ ├── catch_execution_plan.hpp │ │ │ ├── catch_optimizer.hpp │ │ │ ├── catch_outlier_classification.hpp │ │ │ ├── catch_sample_analysis.hpp │ │ │ └── detail │ │ │ │ ├── catch_analyse.hpp │ │ │ │ ├── catch_benchmark_function.hpp │ │ │ │ ├── catch_complete_invoke.hpp │ │ │ │ ├── catch_estimate_clock.hpp │ │ │ │ ├── catch_measure.hpp │ │ │ │ ├── catch_repeat.hpp │ │ │ │ ├── catch_run_for_at_least.hpp │ │ │ │ ├── catch_stats.cpp │ │ │ │ ├── catch_stats.hpp │ │ │ │ └── catch_timing.hpp │ │ ├── catch_approx.cpp │ │ ├── catch_approx.h │ │ ├── catch_assertionhandler.cpp │ │ ├── catch_assertionhandler.h │ │ ├── catch_assertioninfo.h │ │ ├── catch_assertionresult.cpp │ │ ├── catch_assertionresult.h │ │ ├── catch_capture.hpp │ │ ├── catch_capture_matchers.cpp │ │ ├── catch_capture_matchers.h │ │ ├── catch_clara.h │ │ ├── catch_commandline.cpp │ │ ├── catch_commandline.h │ │ ├── catch_common.cpp │ │ ├── catch_common.h │ │ ├── catch_compiler_capabilities.h │ │ ├── catch_config.cpp │ │ ├── catch_config.hpp │ │ ├── catch_console_colour.cpp │ │ ├── catch_console_colour.h │ │ ├── catch_context.cpp │ │ ├── catch_context.h │ │ ├── catch_debug_console.cpp │ │ ├── catch_debug_console.h │ │ ├── catch_debugger.cpp │ │ ├── catch_debugger.h │ │ ├── catch_decomposer.cpp │ │ ├── catch_decomposer.h │ │ ├── catch_default_main.hpp │ │ ├── catch_enforce.cpp │ │ ├── catch_enforce.h │ │ ├── catch_enum_values_registry.cpp │ │ ├── catch_enum_values_registry.h │ │ ├── catch_errno_guard.cpp │ │ ├── catch_errno_guard.h │ │ ├── catch_exception_translator_registry.cpp │ │ ├── catch_exception_translator_registry.h │ │ ├── catch_external_interfaces.h │ │ ├── catch_fatal_condition.cpp │ │ ├── catch_fatal_condition.h │ │ ├── catch_generators.cpp │ │ ├── catch_generators.hpp │ │ ├── catch_generators_generic.hpp │ │ ├── catch_generators_specific.hpp │ │ ├── catch_impl.hpp │ │ ├── catch_interfaces_capture.cpp │ │ ├── catch_interfaces_capture.h │ │ ├── catch_interfaces_config.cpp │ │ ├── catch_interfaces_config.h │ │ ├── catch_interfaces_enum_values_registry.h │ │ ├── catch_interfaces_exception.cpp │ │ ├── catch_interfaces_exception.h │ │ ├── catch_interfaces_generatortracker.h │ │ ├── catch_interfaces_registry_hub.cpp │ │ ├── catch_interfaces_registry_hub.h │ │ ├── catch_interfaces_reporter.cpp │ │ ├── catch_interfaces_reporter.h │ │ ├── catch_interfaces_runner.cpp │ │ ├── catch_interfaces_runner.h │ │ ├── catch_interfaces_tag_alias_registry.h │ │ ├── catch_interfaces_testcase.cpp │ │ ├── catch_interfaces_testcase.h │ │ ├── catch_leak_detector.cpp │ │ ├── catch_leak_detector.h │ │ ├── catch_list.cpp │ │ ├── catch_list.h │ │ ├── catch_matchers.cpp │ │ ├── catch_matchers.h │ │ ├── catch_matchers_floating.cpp │ │ ├── catch_matchers_floating.h │ │ ├── catch_matchers_generic.cpp │ │ ├── catch_matchers_generic.hpp │ │ ├── catch_matchers_string.cpp │ │ ├── catch_matchers_string.h │ │ ├── catch_matchers_vector.h │ │ ├── catch_message.cpp │ │ ├── catch_message.h │ │ ├── catch_meta.hpp │ │ ├── catch_objc.hpp │ │ ├── catch_objc_arc.hpp │ │ ├── catch_option.hpp │ │ ├── catch_output_redirect.cpp │ │ ├── catch_output_redirect.h │ │ ├── catch_platform.h │ │ ├── catch_polyfills.cpp │ │ ├── catch_polyfills.hpp │ │ ├── catch_preprocessor.hpp │ │ ├── catch_random_number_generator.cpp │ │ ├── catch_random_number_generator.h │ │ ├── catch_reenable_warnings.h │ │ ├── catch_registry_hub.cpp │ │ ├── catch_reporter_registrars.hpp │ │ ├── catch_reporter_registry.cpp │ │ ├── catch_reporter_registry.h │ │ ├── catch_result_type.cpp │ │ ├── catch_result_type.h │ │ ├── catch_run_context.cpp │ │ ├── catch_run_context.h │ │ ├── catch_section.cpp │ │ ├── catch_section.h │ │ ├── catch_section_info.cpp │ │ ├── catch_section_info.h │ │ ├── catch_session.cpp │ │ ├── catch_session.h │ │ ├── catch_singletons.cpp │ │ ├── catch_singletons.hpp │ │ ├── catch_startup_exception_registry.cpp │ │ ├── catch_startup_exception_registry.h │ │ ├── catch_stream.cpp │ │ ├── catch_stream.h │ │ ├── catch_string_manip.cpp │ │ ├── catch_string_manip.h │ │ ├── catch_stringref.cpp │ │ ├── catch_stringref.h │ │ ├── catch_suppress_warnings.h │ │ ├── catch_tag_alias.cpp │ │ ├── catch_tag_alias.h │ │ ├── catch_tag_alias_autoregistrar.cpp │ │ ├── catch_tag_alias_autoregistrar.h │ │ ├── catch_tag_alias_registry.cpp │ │ ├── catch_tag_alias_registry.h │ │ ├── catch_test_case_info.cpp │ │ ├── catch_test_case_info.h │ │ ├── catch_test_case_registry_impl.cpp │ │ ├── catch_test_case_registry_impl.h │ │ ├── catch_test_case_tracker.cpp │ │ ├── catch_test_case_tracker.h │ │ ├── catch_test_registry.cpp │ │ ├── catch_test_registry.h │ │ ├── catch_test_spec.cpp │ │ ├── catch_test_spec.h │ │ ├── catch_test_spec_parser.cpp │ │ ├── catch_test_spec_parser.h │ │ ├── catch_text.h │ │ ├── catch_timer.cpp │ │ ├── catch_timer.h │ │ ├── catch_to_string.hpp │ │ ├── catch_tostring.cpp │ │ ├── catch_tostring.h │ │ ├── catch_totals.cpp │ │ ├── catch_totals.h │ │ ├── catch_type_traits.hpp │ │ ├── catch_uncaught_exceptions.cpp │ │ ├── catch_uncaught_exceptions.h │ │ ├── catch_user_interfaces.h │ │ ├── catch_version.cpp │ │ ├── catch_version.h │ │ ├── catch_wildcard_pattern.cpp │ │ ├── catch_wildcard_pattern.h │ │ ├── catch_windows_h_proxy.h │ │ ├── catch_xmlwriter.cpp │ │ └── catch_xmlwriter.h │ └── reporters │ │ ├── catch_reporter_automake.hpp │ │ ├── catch_reporter_bases.cpp │ │ ├── catch_reporter_bases.hpp │ │ ├── catch_reporter_compact.cpp │ │ ├── catch_reporter_compact.h │ │ ├── catch_reporter_console.cpp │ │ ├── catch_reporter_console.h │ │ ├── catch_reporter_junit.cpp │ │ ├── catch_reporter_junit.h │ │ ├── catch_reporter_listening.cpp │ │ ├── catch_reporter_listening.h │ │ ├── catch_reporter_tap.hpp │ │ ├── catch_reporter_teamcity.hpp │ │ ├── catch_reporter_xml.cpp │ │ └── catch_reporter_xml.h │ ├── misc │ ├── CMakeLists.txt │ ├── appveyorBuildConfigurationScript.bat │ ├── appveyorMergeCoverageScript.py │ ├── appveyorTestRunScript.bat │ ├── coverage-helper.cpp │ └── installOpenCppCoverage.ps1 │ ├── projects │ ├── CMakeLists.txt │ ├── ExtraTests │ │ ├── CMakeLists.txt │ │ ├── ToDo.txt │ │ ├── X01-PrefixedMacros.cpp │ │ ├── X02-DisabledMacros.cpp │ │ ├── X03-DisabledExceptions-DefaultHandler.cpp │ │ ├── X04-DisabledExceptions-CustomHandler.cpp │ │ ├── X10-FallbackStringifier.cpp │ │ ├── X11-DisableStringification.cpp │ │ └── X20-BenchmarkingMacros.cpp │ ├── SelfTest │ │ ├── Baselines │ │ │ ├── automake.std.approved.txt │ │ │ ├── compact.sw.approved.txt │ │ │ ├── console.std.approved.txt │ │ │ ├── console.sw.approved.txt │ │ │ ├── console.swa4.approved.txt │ │ │ ├── junit.sw.approved.txt │ │ │ └── xml.sw.approved.txt │ │ ├── CompileTimePerfTests │ │ │ ├── 10.tests.cpp │ │ │ ├── 100.tests.cpp │ │ │ └── All.tests.cpp │ │ ├── IntrospectiveTests │ │ │ ├── CmdLine.tests.cpp │ │ │ ├── GeneratorsImpl.tests.cpp │ │ │ ├── InternalBenchmark.tests.cpp │ │ │ ├── PartTracker.tests.cpp │ │ │ ├── String.tests.cpp │ │ │ ├── Tag.tests.cpp │ │ │ ├── ToString.tests.cpp │ │ │ └── Xml.tests.cpp │ │ ├── SurrogateCpps │ │ │ ├── catch_console_colour.cpp │ │ │ ├── catch_debugger.cpp │ │ │ ├── catch_interfaces_reporter.cpp │ │ │ ├── catch_option.cpp │ │ │ ├── catch_stream.cpp │ │ │ ├── catch_test_case_tracker.cpp │ │ │ ├── catch_test_spec.cpp │ │ │ └── catch_xmlwriter.cpp │ │ ├── TestMain.cpp │ │ └── UsageTests │ │ │ ├── Approx.tests.cpp │ │ │ ├── BDD.tests.cpp │ │ │ ├── Benchmark.tests.cpp │ │ │ ├── Class.tests.cpp │ │ │ ├── Compilation.tests.cpp │ │ │ ├── Condition.tests.cpp │ │ │ ├── Decomposition.tests.cpp │ │ │ ├── EnumToString.tests.cpp │ │ │ ├── Exception.tests.cpp │ │ │ ├── Generators.tests.cpp │ │ │ ├── Matchers.tests.cpp │ │ │ ├── Message.tests.cpp │ │ │ ├── Misc.tests.cpp │ │ │ ├── ToStringChrono.tests.cpp │ │ │ ├── ToStringGeneral.tests.cpp │ │ │ ├── ToStringOptional.tests.cpp │ │ │ ├── ToStringPair.tests.cpp │ │ │ ├── ToStringTuple.tests.cpp │ │ │ ├── ToStringVariant.tests.cpp │ │ │ ├── ToStringVector.tests.cpp │ │ │ ├── ToStringWhich.tests.cpp │ │ │ ├── Tricky.tests.cpp │ │ │ └── VariadicMacros.tests.cpp │ └── XCode │ │ └── OCTest │ │ ├── OCTest.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ │ ├── OCTest │ │ ├── CatchOCTestCase.h │ │ ├── CatchOCTestCase.mm │ │ ├── Main.mm │ │ ├── OCTest.1 │ │ ├── OCTest.mm │ │ ├── TestObj.h │ │ └── TestObj.m │ │ └── catch_objc_impl.mm │ ├── scripts │ ├── approvalTests.py │ ├── approve.py │ ├── benchmarkCompile.py │ ├── benchmarkRunner.py │ ├── developBuild.py │ ├── embed.py │ ├── embedClara.py │ ├── fixWhitespace.py │ ├── generateSingleHeader.py │ ├── majorRelease.py │ ├── minorRelease.py │ ├── patchRelease.py │ ├── releaseCommon.py │ ├── releaseNotes.py │ ├── scriptCommon.py │ ├── updateDocumentToC.py │ └── updateWandbox.py │ ├── single_include │ └── catch2 │ │ ├── catch.hpp │ │ ├── catch_reporter_automake.hpp │ │ ├── catch_reporter_tap.hpp │ │ └── catch_reporter_teamcity.hpp │ └── third_party │ └── clara.hpp ├── cpptqdm ├── LICENSE ├── README.md ├── include │ └── tqdm.hpp └── test.cpp ├── doubly-linked-list ├── .clang_complete ├── .gitignore ├── .gitmodules ├── .travis.yml ├── LICENSE ├── README.md ├── SConstruct ├── benchmark │ └── benchmark_dll.cpp ├── include │ └── doubly_linked_list.hpp ├── test │ ├── .gitignore │ └── test_doubly_linked_list.cpp └── vendor │ └── Catch2 │ ├── .conan │ ├── build.py │ └── test_package │ │ ├── CMakeLists.txt │ │ ├── conanfile.py │ │ └── test_package.cpp │ ├── .gitattributes │ ├── .github │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE │ │ ├── bug_report.md │ │ └── feature_request.md │ └── pull_request_template.md │ ├── .gitignore │ ├── .travis.yml │ ├── CMake │ ├── Catch2Config.cmake.in │ ├── FindGcov.cmake │ ├── FindLcov.cmake │ ├── Findcodecov.cmake │ ├── MiscFunctions.cmake │ ├── catch2.pc.in │ └── llvm-cov-wrapper │ ├── CMakeLists.txt │ ├── CODE_OF_CONDUCT.md │ ├── LICENSE.txt │ ├── README.md │ ├── appveyor.yml │ ├── artwork │ ├── catch2-c-logo.png │ ├── catch2-hand-logo.png │ └── catch2-logo-small.png │ ├── codecov.yml │ ├── conanfile.py │ ├── contrib │ ├── Catch.cmake │ ├── CatchAddTests.cmake │ ├── ParseAndAddCatchTests.cmake │ ├── gdbinit │ └── lldbinit │ ├── docs │ ├── Readme.md │ ├── assertions.md │ ├── benchmarks.md │ ├── ci-and-misc.md │ ├── cmake-integration.md │ ├── command-line.md │ ├── commercial-users.md │ ├── configuration.md │ ├── contributing.md │ ├── deprecations.md │ ├── event-listeners.md │ ├── generators.md │ ├── limitations.md │ ├── list-of-examples.md │ ├── logging.md │ ├── matchers.md │ ├── opensource-users.md │ ├── other-macros.md │ ├── own-main.md │ ├── release-notes.md │ ├── release-process.md │ ├── reporters.md │ ├── slow-compiles.md │ ├── test-cases-and-sections.md │ ├── test-fixtures.md │ ├── tostring.md │ ├── tutorial.md │ └── why-catch.md │ ├── examples │ ├── 000-CatchMain.cpp │ ├── 010-TestCase.cpp │ ├── 020-TestCase-1.cpp │ ├── 020-TestCase-2.cpp │ ├── 030-Asn-Require-Check.cpp │ ├── 100-Fix-Section.cpp │ ├── 110-Fix-ClassFixture.cpp │ ├── 120-Bdd-ScenarioGivenWhenThen.cpp │ ├── 200-Rpt-CatchMain.cpp │ ├── 207-Rpt-TeamCityReporter.cpp │ ├── 210-Evt-EventListeners.cpp │ ├── 231-Cfg-OutputStreams.cpp │ ├── 300-Gen-OwnGenerator.cpp │ ├── 301-Gen-MapTypeConversion.cpp │ ├── 310-Gen-VariablesInGenerators.cpp │ ├── 311-Gen-CustomCapture.cpp │ └── CMakeLists.txt │ ├── include │ ├── catch.hpp │ ├── catch_with_main.hpp │ ├── external │ │ └── clara.hpp │ ├── internal │ │ ├── benchmark │ │ │ ├── catch_benchmark.hpp │ │ │ ├── catch_chronometer.hpp │ │ │ ├── catch_clock.hpp │ │ │ ├── catch_constructor.hpp │ │ │ ├── catch_environment.hpp │ │ │ ├── catch_estimate.hpp │ │ │ ├── catch_execution_plan.hpp │ │ │ ├── catch_optimizer.hpp │ │ │ ├── catch_outlier_classification.hpp │ │ │ ├── catch_sample_analysis.hpp │ │ │ └── detail │ │ │ │ ├── catch_analyse.hpp │ │ │ │ ├── catch_benchmark_function.hpp │ │ │ │ ├── catch_complete_invoke.hpp │ │ │ │ ├── catch_estimate_clock.hpp │ │ │ │ ├── catch_measure.hpp │ │ │ │ ├── catch_repeat.hpp │ │ │ │ ├── catch_run_for_at_least.hpp │ │ │ │ ├── catch_stats.cpp │ │ │ │ ├── catch_stats.hpp │ │ │ │ └── catch_timing.hpp │ │ ├── catch_approx.cpp │ │ ├── catch_approx.h │ │ ├── catch_assertionhandler.cpp │ │ ├── catch_assertionhandler.h │ │ ├── catch_assertioninfo.h │ │ ├── catch_assertionresult.cpp │ │ ├── catch_assertionresult.h │ │ ├── catch_capture.hpp │ │ ├── catch_capture_matchers.cpp │ │ ├── catch_capture_matchers.h │ │ ├── catch_clara.h │ │ ├── catch_commandline.cpp │ │ ├── catch_commandline.h │ │ ├── catch_common.cpp │ │ ├── catch_common.h │ │ ├── catch_compiler_capabilities.h │ │ ├── catch_config.cpp │ │ ├── catch_config.hpp │ │ ├── catch_console_colour.cpp │ │ ├── catch_console_colour.h │ │ ├── catch_context.cpp │ │ ├── catch_context.h │ │ ├── catch_debug_console.cpp │ │ ├── catch_debug_console.h │ │ ├── catch_debugger.cpp │ │ ├── catch_debugger.h │ │ ├── catch_decomposer.cpp │ │ ├── catch_decomposer.h │ │ ├── catch_default_main.hpp │ │ ├── catch_enforce.cpp │ │ ├── catch_enforce.h │ │ ├── catch_enum_values_registry.cpp │ │ ├── catch_enum_values_registry.h │ │ ├── catch_errno_guard.cpp │ │ ├── catch_errno_guard.h │ │ ├── catch_exception_translator_registry.cpp │ │ ├── catch_exception_translator_registry.h │ │ ├── catch_external_interfaces.h │ │ ├── catch_fatal_condition.cpp │ │ ├── catch_fatal_condition.h │ │ ├── catch_generators.cpp │ │ ├── catch_generators.hpp │ │ ├── catch_generators_generic.hpp │ │ ├── catch_generators_specific.hpp │ │ ├── catch_impl.hpp │ │ ├── catch_interfaces_capture.cpp │ │ ├── catch_interfaces_capture.h │ │ ├── catch_interfaces_config.cpp │ │ ├── catch_interfaces_config.h │ │ ├── catch_interfaces_enum_values_registry.h │ │ ├── catch_interfaces_exception.cpp │ │ ├── catch_interfaces_exception.h │ │ ├── catch_interfaces_generatortracker.h │ │ ├── catch_interfaces_registry_hub.cpp │ │ ├── catch_interfaces_registry_hub.h │ │ ├── catch_interfaces_reporter.cpp │ │ ├── catch_interfaces_reporter.h │ │ ├── catch_interfaces_runner.cpp │ │ ├── catch_interfaces_runner.h │ │ ├── catch_interfaces_tag_alias_registry.h │ │ ├── catch_interfaces_testcase.cpp │ │ ├── catch_interfaces_testcase.h │ │ ├── catch_leak_detector.cpp │ │ ├── catch_leak_detector.h │ │ ├── catch_list.cpp │ │ ├── catch_list.h │ │ ├── catch_matchers.cpp │ │ ├── catch_matchers.h │ │ ├── catch_matchers_floating.cpp │ │ ├── catch_matchers_floating.h │ │ ├── catch_matchers_generic.cpp │ │ ├── catch_matchers_generic.hpp │ │ ├── catch_matchers_string.cpp │ │ ├── catch_matchers_string.h │ │ ├── catch_matchers_vector.h │ │ ├── catch_message.cpp │ │ ├── catch_message.h │ │ ├── catch_meta.hpp │ │ ├── catch_objc.hpp │ │ ├── catch_objc_arc.hpp │ │ ├── catch_option.hpp │ │ ├── catch_output_redirect.cpp │ │ ├── catch_output_redirect.h │ │ ├── catch_platform.h │ │ ├── catch_polyfills.cpp │ │ ├── catch_polyfills.hpp │ │ ├── catch_preprocessor.hpp │ │ ├── catch_random_number_generator.cpp │ │ ├── catch_random_number_generator.h │ │ ├── catch_reenable_warnings.h │ │ ├── catch_registry_hub.cpp │ │ ├── catch_reporter_registrars.hpp │ │ ├── catch_reporter_registry.cpp │ │ ├── catch_reporter_registry.h │ │ ├── catch_result_type.cpp │ │ ├── catch_result_type.h │ │ ├── catch_run_context.cpp │ │ ├── catch_run_context.h │ │ ├── catch_section.cpp │ │ ├── catch_section.h │ │ ├── catch_section_info.cpp │ │ ├── catch_section_info.h │ │ ├── catch_session.cpp │ │ ├── catch_session.h │ │ ├── catch_singletons.cpp │ │ ├── catch_singletons.hpp │ │ ├── catch_startup_exception_registry.cpp │ │ ├── catch_startup_exception_registry.h │ │ ├── catch_stream.cpp │ │ ├── catch_stream.h │ │ ├── catch_string_manip.cpp │ │ ├── catch_string_manip.h │ │ ├── catch_stringref.cpp │ │ ├── catch_stringref.h │ │ ├── catch_suppress_warnings.h │ │ ├── catch_tag_alias.cpp │ │ ├── catch_tag_alias.h │ │ ├── catch_tag_alias_autoregistrar.cpp │ │ ├── catch_tag_alias_autoregistrar.h │ │ ├── catch_tag_alias_registry.cpp │ │ ├── catch_tag_alias_registry.h │ │ ├── catch_test_case_info.cpp │ │ ├── catch_test_case_info.h │ │ ├── catch_test_case_registry_impl.cpp │ │ ├── catch_test_case_registry_impl.h │ │ ├── catch_test_case_tracker.cpp │ │ ├── catch_test_case_tracker.h │ │ ├── catch_test_registry.cpp │ │ ├── catch_test_registry.h │ │ ├── catch_test_spec.cpp │ │ ├── catch_test_spec.h │ │ ├── catch_test_spec_parser.cpp │ │ ├── catch_test_spec_parser.h │ │ ├── catch_text.h │ │ ├── catch_timer.cpp │ │ ├── catch_timer.h │ │ ├── catch_to_string.hpp │ │ ├── catch_tostring.cpp │ │ ├── catch_tostring.h │ │ ├── catch_totals.cpp │ │ ├── catch_totals.h │ │ ├── catch_type_traits.hpp │ │ ├── catch_uncaught_exceptions.cpp │ │ ├── catch_uncaught_exceptions.h │ │ ├── catch_user_interfaces.h │ │ ├── catch_version.cpp │ │ ├── catch_version.h │ │ ├── catch_wildcard_pattern.cpp │ │ ├── catch_wildcard_pattern.h │ │ ├── catch_windows_h_proxy.h │ │ ├── catch_xmlwriter.cpp │ │ └── catch_xmlwriter.h │ └── reporters │ │ ├── catch_reporter_automake.hpp │ │ ├── catch_reporter_bases.cpp │ │ ├── catch_reporter_bases.hpp │ │ ├── catch_reporter_compact.cpp │ │ ├── catch_reporter_compact.h │ │ ├── catch_reporter_console.cpp │ │ ├── catch_reporter_console.h │ │ ├── catch_reporter_junit.cpp │ │ ├── catch_reporter_junit.h │ │ ├── catch_reporter_listening.cpp │ │ ├── catch_reporter_listening.h │ │ ├── catch_reporter_tap.hpp │ │ ├── catch_reporter_teamcity.hpp │ │ ├── catch_reporter_xml.cpp │ │ └── catch_reporter_xml.h │ ├── misc │ ├── CMakeLists.txt │ ├── appveyorBuildConfigurationScript.bat │ ├── appveyorMergeCoverageScript.py │ ├── appveyorTestRunScript.bat │ ├── coverage-helper.cpp │ └── installOpenCppCoverage.ps1 │ ├── projects │ ├── CMakeLists.txt │ ├── ExtraTests │ │ ├── CMakeLists.txt │ │ ├── ToDo.txt │ │ ├── X01-PrefixedMacros.cpp │ │ ├── X02-DisabledMacros.cpp │ │ ├── X03-DisabledExceptions-DefaultHandler.cpp │ │ ├── X04-DisabledExceptions-CustomHandler.cpp │ │ ├── X10-FallbackStringifier.cpp │ │ ├── X11-DisableStringification.cpp │ │ └── X20-BenchmarkingMacros.cpp │ ├── SelfTest │ │ ├── Baselines │ │ │ ├── automake.std.approved.txt │ │ │ ├── compact.sw.approved.txt │ │ │ ├── console.std.approved.txt │ │ │ ├── console.sw.approved.txt │ │ │ ├── console.swa4.approved.txt │ │ │ ├── junit.sw.approved.txt │ │ │ └── xml.sw.approved.txt │ │ ├── CompileTimePerfTests │ │ │ ├── 10.tests.cpp │ │ │ ├── 100.tests.cpp │ │ │ └── All.tests.cpp │ │ ├── IntrospectiveTests │ │ │ ├── CmdLine.tests.cpp │ │ │ ├── GeneratorsImpl.tests.cpp │ │ │ ├── InternalBenchmark.tests.cpp │ │ │ ├── PartTracker.tests.cpp │ │ │ ├── String.tests.cpp │ │ │ ├── Tag.tests.cpp │ │ │ ├── ToString.tests.cpp │ │ │ └── Xml.tests.cpp │ │ ├── SurrogateCpps │ │ │ ├── catch_console_colour.cpp │ │ │ ├── catch_debugger.cpp │ │ │ ├── catch_interfaces_reporter.cpp │ │ │ ├── catch_option.cpp │ │ │ ├── catch_stream.cpp │ │ │ ├── catch_test_case_tracker.cpp │ │ │ ├── catch_test_spec.cpp │ │ │ └── catch_xmlwriter.cpp │ │ ├── TestMain.cpp │ │ └── UsageTests │ │ │ ├── Approx.tests.cpp │ │ │ ├── BDD.tests.cpp │ │ │ ├── Benchmark.tests.cpp │ │ │ ├── Class.tests.cpp │ │ │ ├── Compilation.tests.cpp │ │ │ ├── Condition.tests.cpp │ │ │ ├── Decomposition.tests.cpp │ │ │ ├── EnumToString.tests.cpp │ │ │ ├── Exception.tests.cpp │ │ │ ├── Generators.tests.cpp │ │ │ ├── Matchers.tests.cpp │ │ │ ├── Message.tests.cpp │ │ │ ├── Misc.tests.cpp │ │ │ ├── ToStringChrono.tests.cpp │ │ │ ├── ToStringGeneral.tests.cpp │ │ │ ├── ToStringOptional.tests.cpp │ │ │ ├── ToStringPair.tests.cpp │ │ │ ├── ToStringTuple.tests.cpp │ │ │ ├── ToStringVariant.tests.cpp │ │ │ ├── ToStringVector.tests.cpp │ │ │ ├── ToStringWhich.tests.cpp │ │ │ ├── Tricky.tests.cpp │ │ │ └── VariadicMacros.tests.cpp │ └── XCode │ │ └── OCTest │ │ ├── OCTest.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ │ ├── OCTest │ │ ├── CatchOCTestCase.h │ │ ├── CatchOCTestCase.mm │ │ ├── Main.mm │ │ ├── OCTest.1 │ │ ├── OCTest.mm │ │ ├── TestObj.h │ │ └── TestObj.m │ │ └── catch_objc_impl.mm │ ├── scripts │ ├── approvalTests.py │ ├── approve.py │ ├── benchmarkCompile.py │ ├── benchmarkRunner.py │ ├── developBuild.py │ ├── embed.py │ ├── embedClara.py │ ├── fixWhitespace.py │ ├── generateSingleHeader.py │ ├── majorRelease.py │ ├── minorRelease.py │ ├── patchRelease.py │ ├── releaseCommon.py │ ├── releaseNotes.py │ ├── scriptCommon.py │ ├── updateDocumentToC.py │ └── updateWandbox.py │ ├── single_include │ └── catch2 │ │ ├── catch.hpp │ │ ├── catch_reporter_automake.hpp │ │ ├── catch_reporter_tap.hpp │ │ └── catch_reporter_teamcity.hpp │ └── third_party │ └── clara.hpp ├── hopscotch_map ├── .codecov.yml ├── .travis.yml ├── CMakeLists.txt ├── LICENSE ├── README.md ├── appveyor.yml ├── cmake │ └── tsl-hopscotch-mapConfig.cmake.in ├── doxygen.conf ├── include │ └── tsl │ │ ├── bhopscotch_map.h │ │ ├── bhopscotch_set.h │ │ ├── hopscotch_growth_policy.h │ │ ├── hopscotch_hash.h │ │ ├── hopscotch_map.h │ │ └── hopscotch_set.h ├── tests │ ├── CMakeLists.txt │ ├── custom_allocator_tests.cpp │ ├── hopscotch_map_tests.cpp │ ├── hopscotch_set_tests.cpp │ ├── main.cpp │ ├── policy_tests.cpp │ └── utils.h └── tsl-hopscotch-map.natvis ├── robin-map ├── .codecov.yml ├── .travis.yml ├── CMakeLists.txt ├── LICENSE ├── README.md ├── appveyor.yml ├── cmake │ └── tsl-robin-mapConfig.cmake.in ├── doxygen.conf ├── include │ └── tsl │ │ ├── robin_growth_policy.h │ │ ├── robin_hash.h │ │ ├── robin_map.h │ │ └── robin_set.h ├── tests │ ├── CMakeLists.txt │ ├── custom_allocator_tests.cpp │ ├── main.cpp │ ├── policy_tests.cpp │ ├── robin_map_tests.cpp │ ├── robin_set_tests.cpp │ └── utils.h └── tsl-robin-map.natvis └── sparse-map ├── .codecov.yml ├── .travis.yml ├── CMakeLists.txt ├── LICENSE ├── README.md ├── appveyor.yml ├── cmake └── tsl-sparse-mapConfig.cmake.in ├── doxygen.conf ├── include └── tsl │ ├── sparse_growth_policy.h │ ├── sparse_hash.h │ ├── sparse_map.h │ └── sparse_set.h ├── tests ├── CMakeLists.txt ├── custom_allocator_tests.cpp ├── main.cpp ├── policy_tests.cpp ├── popcount_tests.cpp ├── sparse_map_tests.cpp ├── sparse_set_tests.cpp └── utils.h └── tsl-sparse-map.natvis /.clang_complete: -------------------------------------------------------------------------------- 1 | -Iinclude 2 | -Ivendor/binary-search-tree/include 3 | -Ivendor/Catch2/single_include/catch2 4 | -Ivendor/cpptqdm/include 5 | -Ivendor/doubly-linked-list/include 6 | -Ivendor/hopscotch_map/include 7 | -Ivendor/robin-map/include 8 | -Ivendor/sparse-map/include 9 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | notes/* linguist-vendored 2 | vendor/* linguist-vendored 3 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "vendor/Catch2"] 2 | path = vendor/Catch2 3 | url = https://github.com/catchorg/Catch2 4 | [submodule "vendor/hopscotch_map"] 5 | path = vendor/hopscotch_map 6 | url = https://github.com/Tessil/hopscotch-map 7 | [submodule "vendor/robin-map"] 8 | path = vendor/robin-map 9 | url = https://github.com/Tessil/robin-map 10 | [submodule "vendor/sparse-map"] 11 | path = vendor/sparse-map 12 | url = https://github.com/Tessil/sparse-map 13 | [submodule "vendor/binary-search-tree"] 14 | path = vendor/binary-search-tree 15 | url = https://github.com/Kautenja/binary-search-tree 16 | [submodule "vendor/doubly-linked-list"] 17 | path = vendor/doubly-linked-list 18 | url = https://github.com/Kautenja/doubly-linked-list 19 | [submodule "vendor/cpptqdm"] 20 | path = vendor/cpptqdm 21 | url = https://github.com/Kautenja/cpptqdm 22 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: cpp 2 | matrix: 3 | include: 4 | - os: linux 5 | dist: bionic 6 | - os: osx 7 | osx_image: xcode11 8 | - os: osx 9 | osx_image: xcode12 10 | addons: 11 | apt: 12 | packages: 13 | - scons 14 | homebrew: 15 | packages: 16 | - scons 17 | git: 18 | submodules: true 19 | script: 20 | - scons -j2 test 21 | - scons -j2 22 | - python3 -m unittest discover . 23 | -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- 1 | graft include 2 | graft src 3 | graft vendor 4 | -------------------------------------------------------------------------------- /docs/bc_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kautenja/limit-order-book/88416a12a0b34b026cbf1d598823fd315a1f2dbf/docs/bc_s.png -------------------------------------------------------------------------------- /docs/bdwn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kautenja/limit-order-book/88416a12a0b34b026cbf1d598823fd315a1f2dbf/docs/bdwn.png -------------------------------------------------------------------------------- /docs/closed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kautenja/limit-order-book/88416a12a0b34b026cbf1d598823fd315a1f2dbf/docs/closed.png -------------------------------------------------------------------------------- /docs/doc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kautenja/limit-order-book/88416a12a0b34b026cbf1d598823fd315a1f2dbf/docs/doc.png -------------------------------------------------------------------------------- /docs/doxygen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kautenja/limit-order-book/88416a12a0b34b026cbf1d598823fd315a1f2dbf/docs/doxygen.png -------------------------------------------------------------------------------- /docs/folderclosed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kautenja/limit-order-book/88416a12a0b34b026cbf1d598823fd315a1f2dbf/docs/folderclosed.png -------------------------------------------------------------------------------- /docs/folderopen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kautenja/limit-order-book/88416a12a0b34b026cbf1d598823fd315a1f2dbf/docs/folderopen.png -------------------------------------------------------------------------------- /docs/nav_f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kautenja/limit-order-book/88416a12a0b34b026cbf1d598823fd315a1f2dbf/docs/nav_f.png -------------------------------------------------------------------------------- /docs/nav_g.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kautenja/limit-order-book/88416a12a0b34b026cbf1d598823fd315a1f2dbf/docs/nav_g.png -------------------------------------------------------------------------------- /docs/nav_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kautenja/limit-order-book/88416a12a0b34b026cbf1d598823fd315a1f2dbf/docs/nav_h.png -------------------------------------------------------------------------------- /docs/open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kautenja/limit-order-book/88416a12a0b34b026cbf1d598823fd315a1f2dbf/docs/open.png -------------------------------------------------------------------------------- /docs/search/all_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['_5f_5fdel_5f_5f_0',['__del__',['../classlimit__order__book_1_1limit__order__book_1_1_limit_order_book.html#af550f359c248a4edc4ad80ba30c2c8b5',1,'limit_order_book::limit_order_book::LimitOrderBook']]], 4 | ['_5f_5finit_5f_5f_1',['__init__',['../classlimit__order__book_1_1library_1_1_library.html#a0968e7b8d94ffbe731bfcc74b6eadc1a',1,'limit_order_book.library.Library.__init__()'],['../classlimit__order__book_1_1limit__order__book_1_1_limit_order_book.html#afe518cd14592d3840e3308be2a3152ec',1,'limit_order_book.limit_order_book.LimitOrderBook.__init__()']]], 5 | ['_5fpadding_2',['_padding',['../struct_l_o_b_1_1_limit.html#abcf0b362b5ae3c20be119d7e18b2a72e',1,'LOB::Limit']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/search/all_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['find_5fbest_15',['find_best',['../namespace_l_o_b.html#aa79f2b39db1864ddad9806d8112dcdcf',1,'LOB']]], 4 | ['find_5fbest_3c_20side_3a_3abuy_20_3e_16',['find_best< Side::Buy >',['../namespace_l_o_b.html#ad4b24965d7b5b7a42480dd5e2892ba2d',1,'LOB']]], 5 | ['find_5fbest_3c_20side_3a_3asell_20_3e_17',['find_best< Side::Sell >',['../namespace_l_o_b.html#a56acc9c82361400b0e22edde3ff80899',1,'LOB']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/search/all_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['get_18',['get',['../class_l_o_b_1_1_limit_order_book.html#a47a0fe3f7ac4da1b6ce80e0902ef0473',1,'LOB::LimitOrderBook']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/all_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['has_19',['has',['../class_l_o_b_1_1_limit_order_book.html#a967430745df666a98b00d169bf14cee3',1,'LOB::LimitOrderBook::has()'],['../classlimit__order__book_1_1limit__order__book_1_1_limit_order_book.html#a6c1c9b3080b2c7024d885732faaaf978',1,'limit_order_book.limit_order_book.LimitOrderBook.has()']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/all_8.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['operator_21_41',['operator!',['../namespace_l_o_b.html#a794bbaee01ce7b76040cba9ac684edfb',1,'LOB']]], 4 | ['order_42',['Order',['../struct_l_o_b_1_1_order.html',1,'LOB::Order'],['../struct_l_o_b_1_1_order.html#a6731de6080c369204cb6c3ca7ee13cbf',1,'LOB::Order::Order()'],['../struct_l_o_b_1_1_order.html#ae7106787df2001416575765eaa8236d0',1,'LOB::Order::Order(UID uid_, Side side_, Quantity quantity_, Price price_)']]], 5 | ['order_5fhead_43',['order_head',['../struct_l_o_b_1_1_limit.html#a596cd48cc1faf4f2f2e79f4ae354bdb4',1,'LOB::Limit']]], 6 | ['order_5ftail_44',['order_tail',['../struct_l_o_b_1_1_limit.html#ab2708f69d5bdb44d7d4b2296b02055e1',1,'LOB::Limit']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /docs/search/all_9.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['price_45',['price',['../struct_l_o_b_1_1_order.html#a8e5f781012f13a6116c60bb9e8d3fa5f',1,'LOB::Order::price()'],['../class_l_o_b_1_1_limit_order_book.html#acbdb9e8e207eed2924ef09c4b49472a6',1,'LOB::LimitOrderBook::price()'],['../namespace_l_o_b.html#a0170482547b909e8a53b5ae42d18e23a',1,'LOB::Price()']]], 4 | ['pricelimitmap_46',['PriceLimitMap',['../namespace_l_o_b.html#a9f7f6214768b2e1c81ab886241d2075a',1,'LOB']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/all_a.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['quantity_47',['quantity',['../struct_l_o_b_1_1_order.html#a306f045463a61d710f29d59824b4fa9d',1,'LOB::Order::quantity()'],['../namespace_l_o_b.html#a1d5eee8595d35bc6f2b8372e44cd8dd7',1,'LOB::Quantity()']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/all_b.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['reduce_48',['reduce',['../class_l_o_b_1_1_limit_order_book.html#abbc7458a5a780d29e57122bb4d233db5',1,'LOB::LimitOrderBook']]], 4 | ['root_49',['root',['../struct_l_o_b_1_1_limit_tree.html#a87882ea3591e325656ed24a9ebb638e2',1,'LOB::LimitTree']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/all_c.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['set_5fbest_50',['set_best',['../namespace_l_o_b.html#a9c1b41f8d06147416dcb43138b2905ae',1,'LOB']]], 4 | ['set_5fbest_3c_20side_3a_3abuy_20_3e_51',['set_best< Side::Buy >',['../namespace_l_o_b.html#a916e380f27d0fd0e1e5f7e9789de786d',1,'LOB']]], 5 | ['set_5fbest_3c_20side_3a_3asell_20_3e_52',['set_best< Side::Sell >',['../namespace_l_o_b.html#a783b0fcf2c6e50dcb08169b0655cad03',1,'LOB']]], 6 | ['side_53',['side',['../struct_l_o_b_1_1_order.html#a958f5a54a613fb012214b71332add261',1,'LOB::Order::side()'],['../namespace_l_o_b.html#ac0757a974349160aa795b45451948db6',1,'LOB::Side()']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /docs/search/all_d.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['uid_54',['uid',['../struct_l_o_b_1_1_order.html#a7287e54cc8ad117cddbeb7b843b29f1b',1,'LOB::Order::uid()'],['../namespace_l_o_b.html#a482ac950a9cb23fdb93c66d6117a8f74',1,'LOB::UID()']]], 4 | ['uidordermap_55',['UIDOrderMap',['../namespace_l_o_b.html#a55b6f5940501ff6a6f8de06dfc18852c',1,'LOB']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/classes_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['library_62',['Library',['../classlimit__order__book_1_1library_1_1_library.html',1,'limit_order_book::library']]], 4 | ['limit_63',['Limit',['../struct_l_o_b_1_1_limit.html',1,'LOB']]], 5 | ['limitorderbook_64',['LimitOrderBook',['../class_l_o_b_1_1_limit_order_book.html',1,'LOB::LimitOrderBook'],['../classlimit__order__book_1_1limit__order__book_1_1_limit_order_book.html',1,'limit_order_book.limit_order_book.LimitOrderBook']]], 6 | ['limittree_65',['LimitTree',['../struct_l_o_b_1_1_limit_tree.html',1,'LOB']]], 7 | ['limittree_3c_20side_3a_3abuy_20_3e_66',['LimitTree< Side::Buy >',['../struct_l_o_b_1_1_limit_tree.html',1,'LOB']]], 8 | ['limittree_3c_20side_3a_3asell_20_3e_67',['LimitTree< Side::Sell >',['../struct_l_o_b_1_1_limit_tree.html',1,'LOB']]] 9 | ]; 10 | -------------------------------------------------------------------------------- /docs/search/classes_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['order_68',['Order',['../struct_l_o_b_1_1_order.html',1,'LOB']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kautenja/limit-order-book/88416a12a0b34b026cbf1d598823fd315a1f2dbf/docs/search/close.png -------------------------------------------------------------------------------- /docs/search/enums_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['side_137',['Side',['../namespace_l_o_b.html#ac0757a974349160aa795b45451948db6',1,'LOB']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/functions_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['_5f_5fdel_5f_5f_72',['__del__',['../classlimit__order__book_1_1limit__order__book_1_1_limit_order_book.html#af550f359c248a4edc4ad80ba30c2c8b5',1,'limit_order_book::limit_order_book::LimitOrderBook']]], 4 | ['_5f_5finit_5f_5f_73',['__init__',['../classlimit__order__book_1_1library_1_1_library.html#a0968e7b8d94ffbe731bfcc74b6eadc1a',1,'limit_order_book.library.Library.__init__()'],['../classlimit__order__book_1_1limit__order__book_1_1_limit_order_book.html#afe518cd14592d3840e3308be2a3152ec',1,'limit_order_book.limit_order_book.LimitOrderBook.__init__()']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/functions_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['best_74',['best',['../class_l_o_b_1_1_limit_order_book.html#a387f091324bb052d38c8532ab508ab7c',1,'LOB::LimitOrderBook::best()'],['../classlimit__order__book_1_1limit__order__book_1_1_limit_order_book.html#ad9175f5a8fa5282e9948ab3f330fb915',1,'limit_order_book.limit_order_book.LimitOrderBook.best()']]], 4 | ['best_5fbuy_75',['best_buy',['../class_l_o_b_1_1_limit_order_book.html#a7b2ad9b29403af9a5079176aefb009ce',1,'LOB::LimitOrderBook::best_buy()'],['../classlimit__order__book_1_1limit__order__book_1_1_limit_order_book.html#a9d5ad9707267c1a44a5c099da871609c',1,'limit_order_book.limit_order_book.LimitOrderBook.best_buy()']]], 5 | ['best_5fsell_76',['best_sell',['../class_l_o_b_1_1_limit_order_book.html#afd8dd7bccdcffee233c780fe445e1c01',1,'LOB::LimitOrderBook::best_sell()'],['../classlimit__order__book_1_1limit__order__book_1_1_limit_order_book.html#ac972e81fd137cb3dd08437c4a99ee1a7',1,'limit_order_book.limit_order_book.LimitOrderBook.best_sell()']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/search/functions_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['find_5fbest_86',['find_best',['../namespace_l_o_b.html#aa79f2b39db1864ddad9806d8112dcdcf',1,'LOB']]], 4 | ['find_5fbest_3c_20side_3a_3abuy_20_3e_87',['find_best< Side::Buy >',['../namespace_l_o_b.html#ad4b24965d7b5b7a42480dd5e2892ba2d',1,'LOB']]], 5 | ['find_5fbest_3c_20side_3a_3asell_20_3e_88',['find_best< Side::Sell >',['../namespace_l_o_b.html#a56acc9c82361400b0e22edde3ff80899',1,'LOB']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/search/functions_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['get_89',['get',['../class_l_o_b_1_1_limit_order_book.html#a47a0fe3f7ac4da1b6ce80e0902ef0473',1,'LOB::LimitOrderBook']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/functions_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['has_90',['has',['../class_l_o_b_1_1_limit_order_book.html#a967430745df666a98b00d169bf14cee3',1,'LOB::LimitOrderBook::has()'],['../classlimit__order__book_1_1limit__order__book_1_1_limit_order_book.html#a6c1c9b3080b2c7024d885732faaaf978',1,'limit_order_book.limit_order_book.LimitOrderBook.has()']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/functions_8.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['operator_21_103',['operator!',['../namespace_l_o_b.html#a794bbaee01ce7b76040cba9ac684edfb',1,'LOB']]], 4 | ['order_104',['Order',['../struct_l_o_b_1_1_order.html#a6731de6080c369204cb6c3ca7ee13cbf',1,'LOB::Order::Order()'],['../struct_l_o_b_1_1_order.html#ae7106787df2001416575765eaa8236d0',1,'LOB::Order::Order(UID uid_, Side side_, Quantity quantity_, Price price_)']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/functions_9.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['price_105',['price',['../class_l_o_b_1_1_limit_order_book.html#acbdb9e8e207eed2924ef09c4b49472a6',1,'LOB::LimitOrderBook']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/functions_a.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['reduce_106',['reduce',['../class_l_o_b_1_1_limit_order_book.html#abbc7458a5a780d29e57122bb4d233db5',1,'LOB::LimitOrderBook']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/functions_b.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['set_5fbest_107',['set_best',['../namespace_l_o_b.html#a9c1b41f8d06147416dcb43138b2905ae',1,'LOB']]], 4 | ['set_5fbest_3c_20side_3a_3abuy_20_3e_108',['set_best< Side::Buy >',['../namespace_l_o_b.html#a916e380f27d0fd0e1e5f7e9789de786d',1,'LOB']]], 5 | ['set_5fbest_3c_20side_3a_3asell_20_3e_109',['set_best< Side::Sell >',['../namespace_l_o_b.html#a783b0fcf2c6e50dcb08169b0655cad03',1,'LOB']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/search/mag_sel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kautenja/limit-order-book/88416a12a0b34b026cbf1d598823fd315a1f2dbf/docs/search/mag_sel.png -------------------------------------------------------------------------------- /docs/search/namespaces_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['library_69',['library',['../namespacelimit__order__book_1_1library.html',1,'limit_order_book']]], 4 | ['limit_5forder_5fbook_70',['limit_order_book',['../namespacelimit__order__book.html',1,'limit_order_book'],['../namespacelimit__order__book_1_1limit__order__book.html',1,'limit_order_book.limit_order_book']]], 5 | ['lob_71',['LOB',['../namespace_l_o_b.html',1,'']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/search/nomatches.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
No Matches
10 |
11 | 12 | 13 | -------------------------------------------------------------------------------- /docs/search/pages_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['limit_20order_20book_138',['Limit Order Book',['../index.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/search_l.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kautenja/limit-order-book/88416a12a0b34b026cbf1d598823fd315a1f2dbf/docs/search/search_l.png -------------------------------------------------------------------------------- /docs/search/search_m.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kautenja/limit-order-book/88416a12a0b34b026cbf1d598823fd315a1f2dbf/docs/search/search_m.png -------------------------------------------------------------------------------- /docs/search/search_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kautenja/limit-order-book/88416a12a0b34b026cbf1d598823fd315a1f2dbf/docs/search/search_r.png -------------------------------------------------------------------------------- /docs/search/searchdata.js: -------------------------------------------------------------------------------- 1 | var indexSectionsWithContent = 2 | { 3 | 0: "_bcfghlmopqrsuv", 4 | 1: "lo", 5 | 2: "l", 6 | 3: "_bcfghlmoprsv", 7 | 4: "_bclopqrsuv", 8 | 5: "cpquv", 9 | 6: "s", 10 | 7: "l" 11 | }; 12 | 13 | var indexSectionNames = 14 | { 15 | 0: "all", 16 | 1: "classes", 17 | 2: "namespaces", 18 | 3: "functions", 19 | 4: "variables", 20 | 5: "typedefs", 21 | 6: "enums", 22 | 7: "pages" 23 | }; 24 | 25 | var indexSectionLabels = 26 | { 27 | 0: "All", 28 | 1: "Classes", 29 | 2: "Namespaces", 30 | 3: "Functions", 31 | 4: "Variables", 32 | 5: "Typedefs", 33 | 6: "Enumerations", 34 | 7: "Pages" 35 | }; 36 | 37 | -------------------------------------------------------------------------------- /docs/search/typedefs_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['count_130',['Count',['../namespace_l_o_b.html#a98c8cdadc7da7cd760e1a6dede850854',1,'LOB']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/typedefs_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['price_131',['Price',['../namespace_l_o_b.html#a0170482547b909e8a53b5ae42d18e23a',1,'LOB']]], 4 | ['pricelimitmap_132',['PriceLimitMap',['../namespace_l_o_b.html#a9f7f6214768b2e1c81ab886241d2075a',1,'LOB']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/typedefs_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['quantity_133',['Quantity',['../namespace_l_o_b.html#a1d5eee8595d35bc6f2b8372e44cd8dd7',1,'LOB']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/typedefs_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['uid_134',['UID',['../namespace_l_o_b.html#a482ac950a9cb23fdb93c66d6117a8f74',1,'LOB']]], 4 | ['uidordermap_135',['UIDOrderMap',['../namespace_l_o_b.html#a55b6f5940501ff6a6f8de06dfc18852c',1,'LOB']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/typedefs_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['volume_136',['Volume',['../namespace_l_o_b.html#a0860e916768a8e3baaadf73c1a6f9c58',1,'LOB']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/variables_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['_5fpadding_116',['_padding',['../struct_l_o_b_1_1_limit.html#abcf0b362b5ae3c20be119d7e18b2a72e',1,'LOB::Limit']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/variables_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['best_117',['best',['../struct_l_o_b_1_1_limit_tree.html#a2295552bf2ed740a479ce87eb25594e0',1,'LOB::LimitTree']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/variables_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['count_118',['count',['../struct_l_o_b_1_1_limit_tree.html#ac6f9f6989f2d73a1917c1488252cfaf5',1,'LOB::LimitTree::count()'],['../struct_l_o_b_1_1_limit.html#a5143704d888d4a1029b217eca6f94d18',1,'LOB::Limit::count()']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/variables_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['last_5fbest_5fprice_119',['last_best_price',['../struct_l_o_b_1_1_limit_tree.html#a941d1cf3065746647e08bb972f65121b',1,'LOB::LimitTree']]], 4 | ['limit_120',['limit',['../struct_l_o_b_1_1_order.html#ac4eb93ab36045cd0927ee4d4ea51c1a5',1,'LOB::Order']]], 5 | ['limits_121',['limits',['../struct_l_o_b_1_1_limit_tree.html#a1dbe709a7aba8fab467db625c0d2d3e7',1,'LOB::LimitTree']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/search/variables_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['order_5fhead_122',['order_head',['../struct_l_o_b_1_1_limit.html#a596cd48cc1faf4f2f2e79f4ae354bdb4',1,'LOB::Limit']]], 4 | ['order_5ftail_123',['order_tail',['../struct_l_o_b_1_1_limit.html#ab2708f69d5bdb44d7d4b2296b02055e1',1,'LOB::Limit']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/variables_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['price_124',['price',['../struct_l_o_b_1_1_order.html#a8e5f781012f13a6116c60bb9e8d3fa5f',1,'LOB::Order']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/variables_6.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['quantity_125',['quantity',['../struct_l_o_b_1_1_order.html#a306f045463a61d710f29d59824b4fa9d',1,'LOB::Order']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/variables_7.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['root_126',['root',['../struct_l_o_b_1_1_limit_tree.html#a87882ea3591e325656ed24a9ebb638e2',1,'LOB::LimitTree']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/variables_8.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['side_127',['side',['../struct_l_o_b_1_1_order.html#a958f5a54a613fb012214b71332add261',1,'LOB::Order']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/variables_9.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['uid_128',['uid',['../struct_l_o_b_1_1_order.html#a7287e54cc8ad117cddbeb7b843b29f1b',1,'LOB::Order']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/variables_a.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['volume_129',['volume',['../struct_l_o_b_1_1_limit_tree.html#a64a5025b0f65c36c1a6f2d4056543ea7',1,'LOB::LimitTree::volume()'],['../struct_l_o_b_1_1_limit.html#a73fcec9f433efd6a506f1c08bf52a233',1,'LOB::Limit::volume()']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/splitbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kautenja/limit-order-book/88416a12a0b34b026cbf1d598823fd315a1f2dbf/docs/splitbar.png -------------------------------------------------------------------------------- /docs/struct_l_o_b_1_1_limit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kautenja/limit-order-book/88416a12a0b34b026cbf1d598823fd315a1f2dbf/docs/struct_l_o_b_1_1_limit.png -------------------------------------------------------------------------------- /docs/struct_l_o_b_1_1_order.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kautenja/limit-order-book/88416a12a0b34b026cbf1d598823fd315a1f2dbf/docs/struct_l_o_b_1_1_order.png -------------------------------------------------------------------------------- /docs/sync_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kautenja/limit-order-book/88416a12a0b34b026cbf1d598823fd315a1f2dbf/docs/sync_off.png -------------------------------------------------------------------------------- /docs/sync_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kautenja/limit-order-book/88416a12a0b34b026cbf1d598823fd315a1f2dbf/docs/sync_on.png -------------------------------------------------------------------------------- /docs/tab_a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kautenja/limit-order-book/88416a12a0b34b026cbf1d598823fd315a1f2dbf/docs/tab_a.png -------------------------------------------------------------------------------- /docs/tab_b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kautenja/limit-order-book/88416a12a0b34b026cbf1d598823fd315a1f2dbf/docs/tab_b.png -------------------------------------------------------------------------------- /docs/tab_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kautenja/limit-order-book/88416a12a0b34b026cbf1d598823fd315a1f2dbf/docs/tab_h.png -------------------------------------------------------------------------------- /docs/tab_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kautenja/limit-order-book/88416a12a0b34b026cbf1d598823fd315a1f2dbf/docs/tab_s.png -------------------------------------------------------------------------------- /doxygen/html_footer.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /doxygen/img/limit-order-book.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kautenja/limit-order-book/88416a12a0b34b026cbf1d598823fd315a1f2dbf/doxygen/img/limit-order-book.pdf -------------------------------------------------------------------------------- /limit_order_book/__init__.py: -------------------------------------------------------------------------------- 1 | """A Limit Order Book (LOB).""" 2 | from .limit_order_book import LimitOrderBook 3 | 4 | 5 | # explicitly define the outward facing API of this package 6 | __all__ = [LimitOrderBook.__name__] 7 | -------------------------------------------------------------------------------- /limit_order_book/test/__init__.py: -------------------------------------------------------------------------------- 1 | """Test cases for the parent package.""" 2 | -------------------------------------------------------------------------------- /main/dummy_matching.cpp: -------------------------------------------------------------------------------- 1 | // A dummy PITCH Client that prints to the console. 2 | // Copyright 2019 Christian Kauten 3 | // 4 | 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include "limit_order_book.hpp" 10 | 11 | using namespace LOB; 12 | 13 | int main() { 14 | LimitOrderBook book; 15 | std::default_random_engine generator; 16 | auto price = std::normal_distribution(500, 20); 17 | auto quantity = std::normal_distribution(1000, 100); 18 | for (int i = 1; i < 10000000; i++) { 19 | auto price_ = static_cast(price(generator)); 20 | auto quantity_ = static_cast(quantity(generator)); 21 | book.limit(Side::Buy, 0, 100, price_); 22 | if (i % 11 == 0) { // randomly submit a market order 23 | book.market(Side::Sell, 1, quantity_); 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /notes/engines/island.prg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kautenja/limit-order-book/88416a12a0b34b026cbf1d598823fd315a1f2dbf/notes/engines/island.prg -------------------------------------------------------------------------------- /vendor/Catch2/.conan/test_package/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.2.0) 2 | project(test_package CXX) 3 | 4 | include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake) 5 | conan_basic_setup(TARGETS) 6 | 7 | find_package(Catch2 REQUIRED CONFIG) 8 | 9 | add_executable(${PROJECT_NAME} test_package.cpp) 10 | target_link_libraries(${PROJECT_NAME} CONAN_PKG::Catch2) 11 | set_target_properties(${PROJECT_NAME} PROPERTIES CXX_STANDARD 11) 12 | -------------------------------------------------------------------------------- /vendor/Catch2/.conan/test_package/conanfile.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | from conans import ConanFile, CMake 4 | import os 5 | 6 | 7 | class TestPackageConan(ConanFile): 8 | settings = "os", "compiler", "build_type", "arch" 9 | generators = "cmake" 10 | 11 | def build(self): 12 | cmake = CMake(self) 13 | cmake.configure() 14 | cmake.build() 15 | 16 | def test(self): 17 | assert os.path.isfile(os.path.join(self.deps_cpp_info["Catch2"].rootpath, "licenses", "LICENSE.txt")) 18 | bin_path = os.path.join("bin", "test_package") 19 | self.run("%s -s" % bin_path, run_environment=True) 20 | -------------------------------------------------------------------------------- /vendor/Catch2/.conan/test_package/test_package.cpp: -------------------------------------------------------------------------------- 1 | #define CATCH_CONFIG_MAIN 2 | 3 | #include 4 | 5 | int Factorial( int number ) { 6 | return number <= 1 ? 1 : Factorial( number - 1 ) * number; 7 | } 8 | 9 | TEST_CASE( "Factorial Tests", "[single-file]" ) { 10 | REQUIRE( Factorial(0) == 1 ); 11 | REQUIRE( Factorial(1) == 1 ); 12 | REQUIRE( Factorial(2) == 2 ); 13 | REQUIRE( Factorial(3) == 6 ); 14 | REQUIRE( Factorial(10) == 3628800 ); 15 | } -------------------------------------------------------------------------------- /vendor/Catch2/.gitattributes: -------------------------------------------------------------------------------- 1 | # This sets the default behaviour, overriding core.autocrlf 2 | * text=auto 3 | 4 | # All source files should have unix line-endings in the repository, 5 | # but convert to native line-endings on checkout 6 | *.cpp text 7 | *.h text 8 | *.hpp text 9 | 10 | # Windows specific files should retain windows line-endings 11 | *.sln text eol=crlf 12 | 13 | # Keep executable scripts with LFs so they can be run after being 14 | # checked out on Windows 15 | *.py text eol=lf 16 | 17 | 18 | # Keep the single include header with LFs to make sure it is uploaded, 19 | # hashed etc with LF 20 | single_include/**/*.hpp eol=lf 21 | # Also keep the LICENCE file with LFs for the same reason 22 | LICENCE.txt eol=lf 23 | -------------------------------------------------------------------------------- /vendor/Catch2/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | patreon: horenmar 2 | -------------------------------------------------------------------------------- /vendor/Catch2/.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create an issue that documents a bug 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **Expected behavior** 14 | A clear and concise description of what you expected to happen. 15 | 16 | **Reproduction steps** 17 | Steps to reproduce the bug. 18 | 19 | 20 | 21 | **Platform information:** 22 | 23 | - OS: **Windows NT** 24 | - Compiler+version: **GCC v2.9.5** 25 | - Catch version: **v1.2.3** 26 | 27 | 28 | **Additional context** 29 | Add any other context about the problem here. 30 | -------------------------------------------------------------------------------- /vendor/Catch2/.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Create an issue that requests a feature or other improvement 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Description** 11 | Describe the feature/change you request and why do you want it. 12 | 13 | **Additional context** 14 | Add any other context or screenshots about the feature request here. 15 | -------------------------------------------------------------------------------- /vendor/Catch2/.gitignore: -------------------------------------------------------------------------------- 1 | *.build 2 | *.pbxuser 3 | *.mode1v3 4 | *.ncb 5 | *.suo 6 | Debug 7 | Release 8 | *.user 9 | *.xcuserstate 10 | .DS_Store 11 | xcuserdata 12 | CatchSelfTest.xcscheme 13 | Breakpoints.xcbkptlist 14 | projects/VS2010/TestCatch/_UpgradeReport_Files/ 15 | projects/VS2010/TestCatch/TestCatch/TestCatch.vcxproj.filters 16 | projects/VisualStudio/TestCatch/UpgradeLog.XML 17 | projects/CMake/.idea 18 | projects/CMake/cmake-build-debug 19 | UpgradeLog.XML 20 | Resources/DWARF 21 | projects/Generated 22 | *.pyc 23 | DerivedData 24 | *.xccheckout 25 | Build 26 | .idea 27 | .vs 28 | cmake-build-* 29 | benchmark-dir 30 | .conan/test_package/build 31 | -------------------------------------------------------------------------------- /vendor/Catch2/CMake/Catch2Config.cmake.in: -------------------------------------------------------------------------------- 1 | @PACKAGE_INIT@ 2 | 3 | 4 | # Avoid repeatedly including the targets 5 | if(NOT TARGET Catch2::Catch2) 6 | # Provide path for scripts 7 | list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}") 8 | 9 | include(${CMAKE_CURRENT_LIST_DIR}/Catch2Targets.cmake) 10 | endif() 11 | -------------------------------------------------------------------------------- /vendor/Catch2/CMake/catch2.pc.in: -------------------------------------------------------------------------------- 1 | includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@ 2 | 3 | Name: Catch2 4 | Description: A modern, C++-native, header-only, test framework for C++11 5 | URL: https://github.com/catchorg/Catch2 6 | Version: @Catch2_VERSION@ 7 | Cflags: -I${includedir} 8 | -------------------------------------------------------------------------------- /vendor/Catch2/artwork/catch2-c-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kautenja/limit-order-book/88416a12a0b34b026cbf1d598823fd315a1f2dbf/vendor/Catch2/artwork/catch2-c-logo.png -------------------------------------------------------------------------------- /vendor/Catch2/artwork/catch2-hand-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kautenja/limit-order-book/88416a12a0b34b026cbf1d598823fd315a1f2dbf/vendor/Catch2/artwork/catch2-hand-logo.png -------------------------------------------------------------------------------- /vendor/Catch2/artwork/catch2-logo-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kautenja/limit-order-book/88416a12a0b34b026cbf1d598823fd315a1f2dbf/vendor/Catch2/artwork/catch2-logo-small.png -------------------------------------------------------------------------------- /vendor/Catch2/codecov.yml: -------------------------------------------------------------------------------- 1 | coverage: 2 | precision: 2 3 | round: nearest 4 | range: "60...90" 5 | status: 6 | project: 7 | default: 8 | threshold: 2% 9 | patch: 10 | default: 11 | target: 80% 12 | ignore: 13 | - "projects/SelfTest" 14 | - "**/catch_reporter_tap.hpp" 15 | - "**/catch_reporter_automake.hpp" 16 | - "**/catch_reporter_teamcity.hpp" 17 | - "**/external/clara.hpp" 18 | 19 | 20 | codecov: 21 | branch: master 22 | 23 | comment: 24 | layout: "diff" 25 | -------------------------------------------------------------------------------- /vendor/Catch2/conanfile.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | from conans import ConanFile, CMake 3 | 4 | 5 | class CatchConan(ConanFile): 6 | name = "Catch2" 7 | description = "A modern, C++-native, header-only, framework for unit-tests, TDD and BDD" 8 | topics = ("conan", "catch2", "header-only", "unit-test", "tdd", "bdd") 9 | url = "https://github.com/catchorg/Catch2" 10 | homepage = url 11 | license = "BSL-1.0" 12 | exports = "LICENSE.txt" 13 | exports_sources = ("single_include/*", "CMakeLists.txt", "CMake/*", "contrib/*") 14 | generators = "cmake" 15 | 16 | def package(self): 17 | cmake = CMake(self) 18 | cmake.definitions["BUILD_TESTING"] = "OFF" 19 | cmake.definitions["CATCH_INSTALL_DOCS"] = "OFF" 20 | cmake.definitions["CATCH_INSTALL_HELPERS"] = "ON" 21 | cmake.configure(build_folder='build') 22 | cmake.install() 23 | 24 | self.copy(pattern="LICENSE.txt", dst="licenses") 25 | 26 | def package_id(self): 27 | self.info.header_only() 28 | -------------------------------------------------------------------------------- /vendor/Catch2/contrib/gdbinit: -------------------------------------------------------------------------------- 1 | # 2 | # This file provides a way to skip stepping into Catch code when debugging with gdb. 3 | # 4 | # With the gdb "skip" command you can tell gdb to skip files or functions during debugging. 5 | # see https://xaizek.github.io/2016-05-26/skipping-standard-library-in-gdb/ for an example 6 | # 7 | # Basically the following line tells gdb to skip all functions containing the 8 | # regexp "Catch", which matches the complete Catch namespace. 9 | # If you want to skip just some parts of the Catch code you can modify the 10 | # regexp accordingly. 11 | # 12 | # If you want to permanently skip stepping into Catch code copy the following 13 | # line into your ~/.gdbinit file 14 | # 15 | 16 | skip -rfu Catch 17 | -------------------------------------------------------------------------------- /vendor/Catch2/contrib/lldbinit: -------------------------------------------------------------------------------- 1 | # 2 | # This file provides a way to skip stepping into Catch code when debugging with lldb. 3 | # 4 | # With the setting "target.process.thread.step-avoid-regexp" you can tell lldb 5 | # to skip functions matching the regexp 6 | # 7 | # Basically the following line tells lldb to skip all functions containing the 8 | # regexp "Catch", which matches the complete Catch namespace. 9 | # If you want to skip just some parts of the Catch code you can modify the 10 | # regexp accordingly. 11 | # 12 | # If you want to permanently skip stepping into Catch code copy the following 13 | # line into your ~/.lldbinit file 14 | # 15 | 16 | settings set target.process.thread.step-avoid-regexp Catch -------------------------------------------------------------------------------- /vendor/Catch2/examples/000-CatchMain.cpp: -------------------------------------------------------------------------------- 1 | // 000-CatchMain.cpp 2 | 3 | // In a Catch project with multiple files, dedicate one file to compile the 4 | // source code of Catch itself and reuse the resulting object file for linking. 5 | 6 | // Let Catch provide main(): 7 | #define CATCH_CONFIG_MAIN 8 | 9 | #include 10 | 11 | // That's it 12 | 13 | // Compile implementation of Catch for use with files that do contain tests: 14 | // - g++ -std=c++11 -Wall -I$(CATCH_SINGLE_INCLUDE) -c 000-CatchMain.cpp 15 | // - cl -EHsc -I%CATCH_SINGLE_INCLUDE% -c 000-CatchMain.cpp 16 | -------------------------------------------------------------------------------- /vendor/Catch2/examples/200-Rpt-CatchMain.cpp: -------------------------------------------------------------------------------- 1 | // 200-Rpt-CatchMain.cpp 2 | 3 | // In a Catch project with multiple files, dedicate one file to compile the 4 | // source code of Catch itself and reuse the resulting object file for linking. 5 | 6 | // Let Catch provide main(): 7 | #define CATCH_CONFIG_MAIN 8 | 9 | #include 10 | 11 | #ifdef CATCH_EXAMPLE_RPT_1 12 | #include CATCH_EXAMPLE_RPT_1 13 | #endif 14 | 15 | #ifdef CATCH_EXAMPLE_RPT_2 16 | #include CATCH_EXAMPLE_RPT_2 17 | #endif 18 | 19 | #ifdef CATCH_EXAMPLE_RPT_3 20 | #include CATCH_EXAMPLE_RPT_3 21 | #endif 22 | 23 | // That's it 24 | 25 | // Compile implementation of Catch for use with files that do contain tests: 26 | // - g++ -std=c++11 -Wall -I$(CATCH_ROOT) -DCATCH_EXAMPLE_RPT_1=\"include/reporters/catch_reporter_teamcity.hpp\" -o 200-Rpt-CatchMainTeamCity.o -c 200-Rpt-CatchMain.cpp 27 | // cl -EHsc -I%CATCH_ROOT% -DCATCH_EXAMPLE_RPT_1=\"include/reporters/catch_reporter_teamcity.hpp\" -Fo200-Rpt-CatchMainTeamCity.obj -c 200-Rpt-CatchMain.cpp 28 | -------------------------------------------------------------------------------- /vendor/Catch2/include/catch_with_main.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Phil on 01/11/2010. 3 | * Copyright 2010 Two Blue Cubes Ltd. All rights reserved. 4 | * 5 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 6 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 | */ 8 | #ifndef TWOBLUECUBES_CATCH_WITH_MAIN_HPP_INCLUDED 9 | #define TWOBLUECUBES_CATCH_WITH_MAIN_HPP_INCLUDED 10 | 11 | #define CATCH_CONFIG_MAIN 12 | #include "catch.hpp" 13 | 14 | #endif // TWOBLUECUBES_CATCH_WITH_MAIN_HPP_INCLUDED 15 | -------------------------------------------------------------------------------- /vendor/Catch2/include/internal/catch_commandline.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Phil on 02/11/2010. 3 | * Copyright 2010 Two Blue Cubes Ltd. All rights reserved. 4 | * 5 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 6 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 | */ 8 | #ifndef TWOBLUECUBES_CATCH_COMMANDLINE_HPP_INCLUDED 9 | #define TWOBLUECUBES_CATCH_COMMANDLINE_HPP_INCLUDED 10 | 11 | #include "catch_config.hpp" 12 | #include "catch_clara.h" 13 | 14 | namespace Catch { 15 | 16 | clara::Parser makeCommandLineParser( ConfigData& config ); 17 | 18 | } // end namespace Catch 19 | 20 | #endif // TWOBLUECUBES_CATCH_COMMANDLINE_HPP_INCLUDED 21 | -------------------------------------------------------------------------------- /vendor/Catch2/include/internal/catch_debug_console.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Martin on 29/08/2017. 3 | * 4 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 5 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | * 7 | */ 8 | 9 | #include "catch_debug_console.h" 10 | #include "catch_stream.h" 11 | #include "catch_platform.h" 12 | #include "catch_windows_h_proxy.h" 13 | 14 | #ifdef CATCH_PLATFORM_WINDOWS 15 | 16 | namespace Catch { 17 | void writeToDebugConsole( std::string const& text ) { 18 | ::OutputDebugStringA( text.c_str() ); 19 | } 20 | } 21 | 22 | #else 23 | 24 | namespace Catch { 25 | void writeToDebugConsole( std::string const& text ) { 26 | // !TBD: Need a version for Mac/ XCode and other IDEs 27 | Catch::cout() << text; 28 | } 29 | } 30 | 31 | #endif // Platform 32 | -------------------------------------------------------------------------------- /vendor/Catch2/include/internal/catch_debug_console.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Martin on 29/08/2017. 3 | * 4 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 5 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | * 7 | */ 8 | #ifndef TWOBLUECUBES_CATCH_DEBUG_CONSOLE_H_INCLUDED 9 | #define TWOBLUECUBES_CATCH_DEBUG_CONSOLE_H_INCLUDED 10 | 11 | #include 12 | 13 | namespace Catch { 14 | void writeToDebugConsole( std::string const& text ); 15 | } 16 | 17 | #endif // TWOBLUECUBES_CATCH_DEBUG_CONSOLE_H_INCLUDED 18 | -------------------------------------------------------------------------------- /vendor/Catch2/include/internal/catch_decomposer.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Phil Nash on 8/8/2017. 3 | * Copyright 2017 Two Blue Cubes Ltd. All rights reserved. 4 | * 5 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 6 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 | */ 8 | 9 | #include "catch_decomposer.h" 10 | #include "catch_config.hpp" 11 | 12 | namespace Catch { 13 | 14 | ITransientExpression::~ITransientExpression() = default; 15 | 16 | void formatReconstructedExpression( std::ostream &os, std::string const& lhs, StringRef op, std::string const& rhs ) { 17 | if( lhs.size() + rhs.size() < 40 && 18 | lhs.find('\n') == std::string::npos && 19 | rhs.find('\n') == std::string::npos ) 20 | os << lhs << " " << op << " " << rhs; 21 | else 22 | os << lhs << "\n" << op << "\n" << rhs; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /vendor/Catch2/include/internal/catch_errno_guard.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Martin on 06/03/2017. 3 | * 4 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 5 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | */ 7 | 8 | #include "catch_errno_guard.h" 9 | 10 | #include 11 | 12 | namespace Catch { 13 | ErrnoGuard::ErrnoGuard():m_oldErrno(errno){} 14 | ErrnoGuard::~ErrnoGuard() { errno = m_oldErrno; } 15 | } 16 | -------------------------------------------------------------------------------- /vendor/Catch2/include/internal/catch_errno_guard.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Martin on 06/03/2017. 3 | * 4 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 5 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | */ 7 | #ifndef TWOBLUECUBES_CATCH_ERRNO_GUARD_H_INCLUDED 8 | #define TWOBLUECUBES_CATCH_ERRNO_GUARD_H_INCLUDED 9 | 10 | namespace Catch { 11 | 12 | class ErrnoGuard { 13 | public: 14 | ErrnoGuard(); 15 | ~ErrnoGuard(); 16 | private: 17 | int m_oldErrno; 18 | }; 19 | 20 | } 21 | 22 | #endif // TWOBLUECUBES_CATCH_ERRNO_GUARD_H_INCLUDED 23 | -------------------------------------------------------------------------------- /vendor/Catch2/include/internal/catch_external_interfaces.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Martin on 17/08/2017. 3 | * 4 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 5 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | */ 7 | #ifndef TWOBLUECUBES_CATCH_EXTERNAL_INTERFACES_H_INCLUDED 8 | #define TWOBLUECUBES_CATCH_EXTERNAL_INTERFACES_H_INCLUDED 9 | 10 | #include "../reporters/catch_reporter_bases.hpp" 11 | #include "catch_console_colour.h" 12 | #include "catch_reporter_registrars.hpp" 13 | 14 | // Allow users to base their work off existing reporters 15 | #include "../reporters/catch_reporter_compact.h" 16 | #include "../reporters/catch_reporter_console.h" 17 | #include "../reporters/catch_reporter_junit.h" 18 | #include "../reporters/catch_reporter_xml.h" 19 | 20 | #endif // TWOBLUECUBES_CATCH_EXTERNAL_INTERFACES_H_INCLUDED 21 | -------------------------------------------------------------------------------- /vendor/Catch2/include/internal/catch_generators.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Phil Nash on 15/6/2018. 3 | * 4 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 5 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | */ 7 | 8 | #include "catch_generators.hpp" 9 | #include "catch_random_number_generator.h" 10 | #include "catch_interfaces_capture.h" 11 | 12 | #include 13 | #include 14 | 15 | namespace Catch { 16 | 17 | IGeneratorTracker::~IGeneratorTracker() {} 18 | 19 | const char* GeneratorException::what() const noexcept { 20 | return m_msg; 21 | } 22 | 23 | namespace Generators { 24 | 25 | GeneratorUntypedBase::~GeneratorUntypedBase() {} 26 | 27 | auto acquireGeneratorTracker( SourceLineInfo const& lineInfo ) -> IGeneratorTracker& { 28 | return getResultCapture().acquireGeneratorTracker( lineInfo ); 29 | } 30 | 31 | } // namespace Generators 32 | } // namespace Catch 33 | -------------------------------------------------------------------------------- /vendor/Catch2/include/internal/catch_impl.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Phil on 5/8/2012. 3 | * Copyright 2012 Two Blue Cubes Ltd. All rights reserved. 4 | * 5 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 6 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 | */ 8 | #ifndef TWOBLUECUBES_CATCH_IMPL_HPP_INCLUDED 9 | #define TWOBLUECUBES_CATCH_IMPL_HPP_INCLUDED 10 | 11 | #ifdef __clang__ 12 | #pragma clang diagnostic push 13 | #pragma clang diagnostic ignored "-Wweak-vtables" 14 | #endif 15 | 16 | // Keep these here for external reporters 17 | #include "catch_test_spec.h" 18 | #include "catch_test_case_tracker.h" 19 | 20 | #include "catch_leak_detector.h" 21 | 22 | // Cpp files will be included in the single-header file here 23 | // ~*~* CATCH_CPP_STITCH_PLACE *~*~ 24 | 25 | namespace Catch { 26 | LeakDetector leakDetector; 27 | } 28 | 29 | #ifdef __clang__ 30 | #pragma clang diagnostic pop 31 | #endif 32 | 33 | #endif // TWOBLUECUBES_CATCH_IMPL_HPP_INCLUDED 34 | -------------------------------------------------------------------------------- /vendor/Catch2/include/internal/catch_interfaces_capture.cpp: -------------------------------------------------------------------------------- 1 | #include "catch_interfaces_capture.h" 2 | 3 | namespace Catch { 4 | IResultCapture::~IResultCapture() = default; 5 | } 6 | -------------------------------------------------------------------------------- /vendor/Catch2/include/internal/catch_interfaces_config.cpp: -------------------------------------------------------------------------------- 1 | #include "internal/catch_interfaces_config.h" 2 | 3 | namespace Catch { 4 | IConfig::~IConfig() = default; 5 | } 6 | -------------------------------------------------------------------------------- /vendor/Catch2/include/internal/catch_interfaces_exception.cpp: -------------------------------------------------------------------------------- 1 | #include "internal/catch_interfaces_exception.h" 2 | 3 | namespace Catch { 4 | IExceptionTranslator::~IExceptionTranslator() = default; 5 | IExceptionTranslatorRegistry::~IExceptionTranslatorRegistry() = default; 6 | } 7 | -------------------------------------------------------------------------------- /vendor/Catch2/include/internal/catch_interfaces_registry_hub.cpp: -------------------------------------------------------------------------------- 1 | #include "internal/catch_interfaces_registry_hub.h" 2 | 3 | namespace Catch { 4 | IRegistryHub::~IRegistryHub() = default; 5 | IMutableRegistryHub::~IMutableRegistryHub() = default; 6 | } 7 | -------------------------------------------------------------------------------- /vendor/Catch2/include/internal/catch_interfaces_runner.cpp: -------------------------------------------------------------------------------- 1 | #include "internal/catch_interfaces_runner.h" 2 | 3 | namespace Catch { 4 | IRunner::~IRunner() = default; 5 | } 6 | -------------------------------------------------------------------------------- /vendor/Catch2/include/internal/catch_interfaces_runner.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Phil on 07/01/2011. 3 | * Copyright 2011 Two Blue Cubes Ltd. All rights reserved. 4 | * 5 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 6 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 | */ 8 | #ifndef TWOBLUECUBES_CATCH_INTERFACES_RUNNER_H_INCLUDED 9 | #define TWOBLUECUBES_CATCH_INTERFACES_RUNNER_H_INCLUDED 10 | 11 | namespace Catch { 12 | 13 | struct IRunner { 14 | virtual ~IRunner(); 15 | virtual bool aborting() const = 0; 16 | }; 17 | } 18 | 19 | #endif // TWOBLUECUBES_CATCH_INTERFACES_RUNNER_H_INCLUDED 20 | -------------------------------------------------------------------------------- /vendor/Catch2/include/internal/catch_interfaces_testcase.cpp: -------------------------------------------------------------------------------- 1 | #include "internal/catch_interfaces_testcase.h" 2 | 3 | namespace Catch { 4 | ITestInvoker::~ITestInvoker() = default; 5 | ITestCaseRegistry::~ITestCaseRegistry() = default; 6 | } 7 | -------------------------------------------------------------------------------- /vendor/Catch2/include/internal/catch_leak_detector.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Martin on 12/07/2017. 3 | * 4 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 5 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | */ 7 | #ifndef TWOBLUECUBES_CATCH_LEAK_DETECTOR_H_INCLUDED 8 | #define TWOBLUECUBES_CATCH_LEAK_DETECTOR_H_INCLUDED 9 | 10 | namespace Catch { 11 | 12 | struct LeakDetector { 13 | LeakDetector(); 14 | ~LeakDetector(); 15 | }; 16 | 17 | } 18 | #endif // TWOBLUECUBES_CATCH_LEAK_DETECTOR_H_INCLUDED 19 | -------------------------------------------------------------------------------- /vendor/Catch2/include/internal/catch_matchers.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Phil Nash on 19/07/2017. 3 | * 4 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 5 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | */ 7 | 8 | #include "catch_matchers.h" 9 | 10 | namespace Catch { 11 | namespace Matchers { 12 | namespace Impl { 13 | 14 | std::string MatcherUntypedBase::toString() const { 15 | if( m_cachedToString.empty() ) 16 | m_cachedToString = describe(); 17 | return m_cachedToString; 18 | } 19 | 20 | MatcherUntypedBase::~MatcherUntypedBase() = default; 21 | 22 | } // namespace Impl 23 | } // namespace Matchers 24 | 25 | using namespace Matchers; 26 | using Matchers::Impl::MatcherBase; 27 | 28 | } // namespace Catch 29 | -------------------------------------------------------------------------------- /vendor/Catch2/include/internal/catch_matchers_generic.cpp: -------------------------------------------------------------------------------- 1 | #include "catch_matchers_generic.hpp" 2 | 3 | std::string Catch::Matchers::Generic::Detail::finalizeDescription(const std::string& desc) { 4 | if (desc.empty()) { 5 | return "matches undescribed predicate"; 6 | } else { 7 | return "matches predicate: \"" + desc + '"'; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /vendor/Catch2/include/internal/catch_platform.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Phil on 16/8/2013. 3 | * Copyright 2013 Two Blue Cubes Ltd. All rights reserved. 4 | * 5 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 6 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 | * 8 | */ 9 | #ifndef TWOBLUECUBES_CATCH_PLATFORM_H_INCLUDED 10 | #define TWOBLUECUBES_CATCH_PLATFORM_H_INCLUDED 11 | 12 | #ifdef __APPLE__ 13 | # include 14 | # if TARGET_OS_OSX == 1 15 | # define CATCH_PLATFORM_MAC 16 | # elif TARGET_OS_IPHONE == 1 17 | # define CATCH_PLATFORM_IPHONE 18 | # endif 19 | 20 | #elif defined(linux) || defined(__linux) || defined(__linux__) 21 | # define CATCH_PLATFORM_LINUX 22 | 23 | #elif defined(WIN32) || defined(__WIN32__) || defined(_WIN32) || defined(_MSC_VER) || defined(__MINGW32__) 24 | # define CATCH_PLATFORM_WINDOWS 25 | #endif 26 | 27 | #endif // TWOBLUECUBES_CATCH_PLATFORM_H_INCLUDED 28 | -------------------------------------------------------------------------------- /vendor/Catch2/include/internal/catch_polyfills.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Martin on 17/11/2017. 3 | * 4 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 5 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | */ 7 | 8 | #include "catch_polyfills.hpp" 9 | 10 | #include 11 | 12 | namespace Catch { 13 | 14 | #if !defined(CATCH_CONFIG_POLYFILL_ISNAN) 15 | bool isnan(float f) { 16 | return std::isnan(f); 17 | } 18 | bool isnan(double d) { 19 | return std::isnan(d); 20 | } 21 | #else 22 | // For now we only use this for embarcadero 23 | bool isnan(float f) { 24 | return std::_isnan(f); 25 | } 26 | bool isnan(double d) { 27 | return std::_isnan(d); 28 | } 29 | #endif 30 | 31 | } // end namespace Catch 32 | -------------------------------------------------------------------------------- /vendor/Catch2/include/internal/catch_polyfills.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Martin on 17/11/2017. 3 | * 4 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 5 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | */ 7 | #ifndef TWOBLUECUBES_CATCH_POLYFILLS_HPP_INCLUDED 8 | #define TWOBLUECUBES_CATCH_POLYFILLS_HPP_INCLUDED 9 | 10 | namespace Catch { 11 | bool isnan(float f); 12 | bool isnan(double d); 13 | } 14 | 15 | #endif // TWOBLUECUBES_CATCH_POLYFILLS_HPP_INCLUDED 16 | -------------------------------------------------------------------------------- /vendor/Catch2/include/internal/catch_random_number_generator.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Martin on 30/08/2017. 3 | * 4 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 5 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | */ 7 | 8 | #include "catch_random_number_generator.h" 9 | #include "catch_context.h" 10 | #include "catch_interfaces_config.h" 11 | 12 | namespace Catch { 13 | 14 | std::mt19937& rng() { 15 | static std::mt19937 s_rng; 16 | return s_rng; 17 | } 18 | 19 | void seedRng( IConfig const& config ) { 20 | if( config.rngSeed() != 0 ) { 21 | std::srand( config.rngSeed() ); 22 | rng().seed( config.rngSeed() ); 23 | } 24 | } 25 | 26 | unsigned int rngSeed() { 27 | return getCurrentContext().getConfig()->rngSeed(); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /vendor/Catch2/include/internal/catch_random_number_generator.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Martin on 30/08/2017. 3 | * 4 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 5 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | */ 7 | #ifndef TWOBLUECUBES_CATCH_RANDOM_NUMBER_GENERATOR_H_INCLUDED 8 | #define TWOBLUECUBES_CATCH_RANDOM_NUMBER_GENERATOR_H_INCLUDED 9 | 10 | #include 11 | #include 12 | 13 | namespace Catch { 14 | 15 | struct IConfig; 16 | 17 | std::mt19937& rng(); 18 | void seedRng( IConfig const& config ); 19 | unsigned int rngSeed(); 20 | 21 | } 22 | 23 | #endif // TWOBLUECUBES_CATCH_RANDOM_NUMBER_GENERATOR_H_INCLUDED 24 | -------------------------------------------------------------------------------- /vendor/Catch2/include/internal/catch_reenable_warnings.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Two Blue Cubes Ltd 3 | * 4 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 5 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | */ 7 | 8 | #ifndef TWOBLUECUBES_CATCH_REENABLE_WARNINGS_H_INCLUDED 9 | #define TWOBLUECUBES_CATCH_REENABLE_WARNINGS_H_INCLUDED 10 | 11 | #ifdef __clang__ 12 | # ifdef __ICC // icpc defines the __clang__ macro 13 | # pragma warning(pop) 14 | # else 15 | # pragma clang diagnostic pop 16 | # endif 17 | #elif defined __GNUC__ 18 | # pragma GCC diagnostic pop 19 | #endif 20 | 21 | #endif // TWOBLUECUBES_CATCH_REENABLE_WARNINGS_H_INCLUDED 22 | -------------------------------------------------------------------------------- /vendor/Catch2/include/internal/catch_section_info.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Martin on 01/08/2017. 3 | * 4 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 5 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | */ 7 | 8 | #include "catch_section_info.h" 9 | 10 | namespace Catch { 11 | 12 | SectionInfo::SectionInfo 13 | ( SourceLineInfo const& _lineInfo, 14 | std::string const& _name ) 15 | : name( _name ), 16 | lineInfo( _lineInfo ) 17 | {} 18 | 19 | } // end namespace Catch 20 | -------------------------------------------------------------------------------- /vendor/Catch2/include/internal/catch_startup_exception_registry.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Martin on 04/06/2017. 3 | * Copyright 2017 Two Blue Cubes Ltd. All rights reserved. 4 | * 5 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 6 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 | */ 8 | 9 | #include "catch_startup_exception_registry.h" 10 | #include "catch_compiler_capabilities.h" 11 | 12 | namespace Catch { 13 | void StartupExceptionRegistry::add( std::exception_ptr const& exception ) noexcept { 14 | CATCH_TRY { 15 | m_exceptions.push_back(exception); 16 | } CATCH_CATCH_ALL { 17 | // If we run out of memory during start-up there's really not a lot more we can do about it 18 | std::terminate(); 19 | } 20 | } 21 | 22 | std::vector const& StartupExceptionRegistry::getExceptions() const noexcept { 23 | return m_exceptions; 24 | } 25 | 26 | } // end namespace Catch 27 | -------------------------------------------------------------------------------- /vendor/Catch2/include/internal/catch_startup_exception_registry.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Martin on 04/06/2017. 3 | * Copyright 2017 Two Blue Cubes Ltd. All rights reserved. 4 | * 5 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 6 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 | */ 8 | #ifndef TWOBLUECUBES_CATCH_STARTUP_EXCEPTION_REGISTRY_H_INCLUDED 9 | #define TWOBLUECUBES_CATCH_STARTUP_EXCEPTION_REGISTRY_H_INCLUDED 10 | 11 | 12 | #include 13 | #include 14 | 15 | namespace Catch { 16 | 17 | class StartupExceptionRegistry { 18 | public: 19 | void add(std::exception_ptr const& exception) noexcept; 20 | std::vector const& getExceptions() const noexcept; 21 | private: 22 | std::vector m_exceptions; 23 | }; 24 | 25 | } // end namespace Catch 26 | 27 | #endif // TWOBLUECUBES_CATCH_STARTUP_EXCEPTION_REGISTRY_H_INCLUDED 28 | -------------------------------------------------------------------------------- /vendor/Catch2/include/internal/catch_tag_alias.cpp: -------------------------------------------------------------------------------- 1 | #include "catch_tag_alias.h" 2 | 3 | namespace Catch { 4 | TagAlias::TagAlias(std::string const & _tag, SourceLineInfo _lineInfo): tag(_tag), lineInfo(_lineInfo) {} 5 | } 6 | -------------------------------------------------------------------------------- /vendor/Catch2/include/internal/catch_tag_alias.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Phil on 27/6/2014. 3 | * Copyright 2014 Two Blue Cubes Ltd. All rights reserved. 4 | * 5 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 6 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 | */ 8 | #ifndef TWOBLUECUBES_CATCH_TAG_ALIAS_H_INCLUDED 9 | #define TWOBLUECUBES_CATCH_TAG_ALIAS_H_INCLUDED 10 | 11 | #include "catch_common.h" 12 | 13 | #include 14 | 15 | namespace Catch { 16 | 17 | struct TagAlias { 18 | TagAlias(std::string const& _tag, SourceLineInfo _lineInfo); 19 | 20 | std::string tag; 21 | SourceLineInfo lineInfo; 22 | }; 23 | 24 | } // end namespace Catch 25 | 26 | #endif // TWOBLUECUBES_CATCH_TAG_ALIAS_H_INCLUDED 27 | -------------------------------------------------------------------------------- /vendor/Catch2/include/internal/catch_tag_alias_autoregistrar.cpp: -------------------------------------------------------------------------------- 1 | #include "catch_tag_alias_autoregistrar.h" 2 | #include "catch_compiler_capabilities.h" 3 | #include "catch_interfaces_registry_hub.h" 4 | 5 | namespace Catch { 6 | 7 | RegistrarForTagAliases::RegistrarForTagAliases(char const* alias, char const* tag, SourceLineInfo const& lineInfo) { 8 | CATCH_TRY { 9 | getMutableRegistryHub().registerTagAlias(alias, tag, lineInfo); 10 | } CATCH_CATCH_ALL { 11 | // Do not throw when constructing global objects, instead register the exception to be processed later 12 | getMutableRegistryHub().registerStartupException(); 13 | } 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /vendor/Catch2/include/internal/catch_tag_alias_autoregistrar.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Martin on 27/07/2017. 3 | * 4 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 5 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | */ 7 | #ifndef TWOBLUECUBES_CATCH_TAG_ALIAS_AUTOREGISTRAR_H_INCLUDED 8 | #define TWOBLUECUBES_CATCH_TAG_ALIAS_AUTOREGISTRAR_H_INCLUDED 9 | 10 | #include "catch_common.h" 11 | 12 | namespace Catch { 13 | 14 | struct RegistrarForTagAliases { 15 | RegistrarForTagAliases( char const* alias, char const* tag, SourceLineInfo const& lineInfo ); 16 | }; 17 | 18 | } // end namespace Catch 19 | 20 | #define CATCH_REGISTER_TAG_ALIAS( alias, spec ) \ 21 | CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \ 22 | namespace{ Catch::RegistrarForTagAliases INTERNAL_CATCH_UNIQUE_NAME( AutoRegisterTagAlias )( alias, spec, CATCH_INTERNAL_LINEINFO ); } \ 23 | CATCH_INTERNAL_UNSUPPRESS_GLOBALS_WARNINGS 24 | 25 | #endif // TWOBLUECUBES_CATCH_TAG_ALIAS_AUTOREGISTRAR_H_INCLUDED 26 | -------------------------------------------------------------------------------- /vendor/Catch2/include/internal/catch_text.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Phil on 10/2/2014. 3 | * Copyright 2014 Two Blue Cubes Ltd. All rights reserved. 4 | * 5 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 6 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 | */ 8 | #ifndef TWOBLUECUBES_CATCH_TEXT_H_INCLUDED 9 | #define TWOBLUECUBES_CATCH_TEXT_H_INCLUDED 10 | 11 | #include "catch_clara.h" 12 | 13 | namespace Catch { 14 | using namespace clara::TextFlow; 15 | } 16 | 17 | #endif // TWOBLUECUBES_CATCH_TEXT_H_INCLUDED 18 | -------------------------------------------------------------------------------- /vendor/Catch2/include/internal/catch_timer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Phil on 05/08/2013. 3 | * Copyright 2013 Two Blue Cubes Ltd. All rights reserved. 4 | * 5 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 6 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 | */ 8 | #ifndef TWOBLUECUBES_CATCH_TIMER_H_INCLUDED 9 | #define TWOBLUECUBES_CATCH_TIMER_H_INCLUDED 10 | 11 | #include 12 | 13 | namespace Catch { 14 | 15 | auto getCurrentNanosecondsSinceEpoch() -> uint64_t; 16 | auto getEstimatedClockResolution() -> uint64_t; 17 | 18 | class Timer { 19 | uint64_t m_nanoseconds = 0; 20 | public: 21 | void start(); 22 | auto getElapsedNanoseconds() const -> uint64_t; 23 | auto getElapsedMicroseconds() const -> uint64_t; 24 | auto getElapsedMilliseconds() const -> unsigned int; 25 | auto getElapsedSeconds() const -> double; 26 | }; 27 | 28 | } // namespace Catch 29 | 30 | #endif // TWOBLUECUBES_CATCH_TIMER_H_INCLUDED 31 | -------------------------------------------------------------------------------- /vendor/Catch2/include/internal/catch_to_string.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Martin on 9/5/2018. 3 | * 4 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 5 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | */ 7 | #ifndef TWOBLUECUBES_CATCH_TO_STRING_H_INCLUDED 8 | #define TWOBLUECUBES_CATCH_TO_STRING_H_INCLUDED 9 | 10 | #include 11 | 12 | #include "catch_compiler_capabilities.h" 13 | #include "catch_stream.h" 14 | 15 | namespace Catch { 16 | template 17 | std::string to_string(T const& t) { 18 | #if defined(CATCH_CONFIG_CPP11_TO_STRING) 19 | return std::to_string(t); 20 | #else 21 | ReusableStringStream rss; 22 | rss << t; 23 | return rss.str(); 24 | #endif 25 | } 26 | } // end namespace Catch 27 | 28 | #endif // TWOBLUECUBES_CATCH_TO_STRING_H_INCLUDED 29 | -------------------------------------------------------------------------------- /vendor/Catch2/include/internal/catch_uncaught_exceptions.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Josh on 1/2/2018. 3 | * Copyright 2018 Two Blue Cubes Ltd. All rights reserved. 4 | * 5 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 6 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 | */ 8 | 9 | #include "catch_compiler_capabilities.h" 10 | #include "catch_uncaught_exceptions.h" 11 | #include 12 | 13 | namespace Catch { 14 | bool uncaught_exceptions() { 15 | #if defined(CATCH_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS) 16 | return std::uncaught_exceptions() > 0; 17 | #else 18 | return std::uncaught_exception(); 19 | #endif 20 | } 21 | } // end namespace Catch 22 | -------------------------------------------------------------------------------- /vendor/Catch2/include/internal/catch_uncaught_exceptions.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Josh on 1/2/2018. 3 | * Copyright 2018 Two Blue Cubes Ltd. All rights reserved. 4 | * 5 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 6 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 | */ 8 | #ifndef TWOBLUECUBES_CATCH_UNCAUGHT_EXCEPTIONS_H_INCLUDED 9 | #define TWOBLUECUBES_CATCH_UNCAUGHT_EXCEPTIONS_H_INCLUDED 10 | 11 | namespace Catch { 12 | bool uncaught_exceptions(); 13 | } // end namespace Catch 14 | 15 | #endif // TWOBLUECUBES_CATCH_UNCAUGHT_EXCEPTIONS_H_INCLUDED 16 | -------------------------------------------------------------------------------- /vendor/Catch2/include/internal/catch_user_interfaces.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Martin on 21/11/2017. 3 | * 4 | * This file collects declaration that we want to expose to test files. 5 | * These declarations are expected to be duplicated elsewhere, 6 | * together with their implementation. 7 | * 8 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 9 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 10 | */ 11 | #ifndef TWOBLUECUBES_CATCH_USER_INTERFACES_H_INCLUDED 12 | #define TWOBLUECUBES_CATCH_USER_INTERFACES_H_INCLUDED 13 | 14 | namespace Catch { 15 | unsigned int rngSeed(); 16 | } 17 | 18 | #endif // TWOBLUECUBES_CATCH_USER_INTERFACES_H_INCLUDED 19 | -------------------------------------------------------------------------------- /vendor/Catch2/misc/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.0) 2 | 3 | project(CatchCoverageHelper) 4 | 5 | add_executable(CoverageHelper coverage-helper.cpp) 6 | set_property(TARGET CoverageHelper PROPERTY CXX_STANDARD 11) 7 | set_property(TARGET CoverageHelper PROPERTY CXX_STANDARD_REQUIRED ON) 8 | set_property(TARGET CoverageHelper PROPERTY CXX_EXTENSIONS OFF) 9 | if (MSVC) 10 | target_compile_options( CoverageHelper PRIVATE /W4 /w44265 /WX /w44061 /w44062 ) 11 | endif() 12 | -------------------------------------------------------------------------------- /vendor/Catch2/misc/appveyorMergeCoverageScript.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python2 2 | 3 | import glob 4 | import subprocess 5 | 6 | if __name__ == '__main__': 7 | cov_files = list(glob.glob('cov-report*.bin')) 8 | base_cmd = ['OpenCppCoverage', '--quiet', '--export_type=cobertura:cobertura.xml'] + ['--input_coverage={}'.format(f) for f in cov_files] 9 | subprocess.call(base_cmd) 10 | -------------------------------------------------------------------------------- /vendor/Catch2/misc/appveyorTestRunScript.bat: -------------------------------------------------------------------------------- 1 | SETLOCAL EnableDelayedExpansion 2 | 3 | cd Build 4 | if "%CONFIGURATION%"=="Debug" ( 5 | if "%coverage%"=="1" ( 6 | ctest -j 2 -C %CONFIGURATION% -D ExperimentalMemCheck || exit /b !ERRORLEVEL! 7 | python ..\misc\appveyorMergeCoverageScript.py || exit /b !ERRORLEVEL! 8 | codecov --root .. --no-color --disable gcov -f cobertura.xml -t %CODECOV_TOKEN% || exit /b !ERRORLEVEL! 9 | ) else ( 10 | ctest -j 2 -C %CONFIGURATION% || exit /b !ERRORLEVEL! 11 | ) 12 | ) 13 | if "%CONFIGURATION%"=="Release" ( 14 | ctest -j 2 -C %CONFIGURATION% || exit /b !ERRORLEVEL! 15 | ) 16 | -------------------------------------------------------------------------------- /vendor/Catch2/projects/ExtraTests/ToDo.txt: -------------------------------------------------------------------------------- 1 | Configuration options that are left default and thus are not properly tested 2 | yet: 3 | 4 | CATCH_CONFIG_COUNTER // Use __COUNTER__ to generate unique names for test cases 5 | CATCH_CONFIG_WINDOWS_SEH // Enable SEH handling on Windows 6 | CATCH_CONFIG_FAST_COMPILE // Sacrifices some (rather minor) features for compilation speed 7 | CATCH_CONFIG_DISABLE_MATCHERS // Do not compile Matchers in this compilation unit 8 | CATCH_CONFIG_POSIX_SIGNALS // Enable handling POSIX signals 9 | CATCH_CONFIG_WINDOWS_CRTDBG // Enable leak checking using Windows's CRT Debug Heap 10 | CATCH_CONFIG_DEFAULT_REPORTER 11 | CATCH_CONFIG_ENABLE_ALL_STRINGMAKERS 12 | -------------------------------------------------------------------------------- /vendor/Catch2/projects/ExtraTests/X02-DisabledMacros.cpp: -------------------------------------------------------------------------------- 1 | // X02-DisabledMacros.cpp 2 | // Test that CATCH_CONFIG_DISABLE turns off TEST_CASE autoregistration 3 | // and expressions in assertion macros are not run. 4 | 5 | #define CATCH_CONFIG_MAIN 6 | #include 7 | 8 | 9 | // CATCH_CONFIG_DISABLE also prevents reporter registration. 10 | // We need to manually register at least one reporter for our tests 11 | static Catch::ReporterRegistrar temporary( "console" ); 12 | 13 | #include 14 | 15 | struct foo { 16 | foo(){ 17 | REQUIRE_NOTHROW( print() ); 18 | } 19 | void print() const { 20 | std::cout << "This should not happen\n"; 21 | } 22 | }; 23 | 24 | // Construct foo, but `foo::print` should not be run 25 | foo f; 26 | 27 | // This test should not be run, because it won't be registered 28 | TEST_CASE( "Disabled Macros" ) { 29 | std::cout << "This should not happen\n"; 30 | FAIL(); 31 | } 32 | -------------------------------------------------------------------------------- /vendor/Catch2/projects/ExtraTests/X03-DisabledExceptions-DefaultHandler.cpp: -------------------------------------------------------------------------------- 1 | #define CATCH_CONFIG_MAIN 2 | #include 3 | 4 | TEST_CASE("Tests that run") { 5 | // All of these should be run and be reported 6 | CHECK(1 == 2); 7 | CHECK(1 == 1); 8 | CHECK(1 != 3); 9 | CHECK(1 == 4); 10 | } 11 | 12 | 13 | 14 | TEST_CASE("Tests that abort") { 15 | // Avoid abort and other exceptional exits -- there is no way 16 | // to tell CMake that abort is the desired outcome of a test. 17 | std::set_terminate([](){exit(1);}); 18 | REQUIRE(1 == 1); 19 | REQUIRE(1 != 2); 20 | REQUIRE(1 == 3); 21 | // We should not get here, because the test above aborts 22 | REQUIRE(1 != 4); 23 | } 24 | -------------------------------------------------------------------------------- /vendor/Catch2/projects/ExtraTests/X10-FallbackStringifier.cpp: -------------------------------------------------------------------------------- 1 | // X10-FallbackStringifier.cpp 2 | // Test that defining fallbackStringifier compiles 3 | 4 | #include 5 | 6 | // A catch-all stringifier 7 | template 8 | std::string fallbackStringifier(T const&) { 9 | return "{ !!! }"; 10 | } 11 | 12 | #define CATCH_CONFIG_MAIN 13 | #include 14 | 15 | struct foo { 16 | explicit operator bool() const { 17 | return true; 18 | } 19 | }; 20 | 21 | TEST_CASE("aa") { 22 | REQUIRE(foo{}); 23 | } 24 | -------------------------------------------------------------------------------- /vendor/Catch2/projects/ExtraTests/X11-DisableStringification.cpp: -------------------------------------------------------------------------------- 1 | // X11-DisableStringification.cpp 2 | // Test that stringification of original expression can be disabled 3 | // this is a workaround for VS 2017 issue with Raw String literal 4 | // and preprocessor token pasting. In other words, hopefully this test 5 | // will be deleted soon :-) 6 | 7 | #define CATCH_CONFIG_MAIN 8 | #include 9 | 10 | struct Hidden {}; 11 | 12 | bool operator==(Hidden, Hidden) { return true; } 13 | 14 | TEST_CASE("DisableStringification") { 15 | REQUIRE( Hidden{} == Hidden{} ); 16 | } 17 | -------------------------------------------------------------------------------- /vendor/Catch2/projects/SelfTest/Baselines/compact.sw.approved.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kautenja/limit-order-book/88416a12a0b34b026cbf1d598823fd315a1f2dbf/vendor/Catch2/projects/SelfTest/Baselines/compact.sw.approved.txt -------------------------------------------------------------------------------- /vendor/Catch2/projects/SelfTest/Baselines/console.sw.approved.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kautenja/limit-order-book/88416a12a0b34b026cbf1d598823fd315a1f2dbf/vendor/Catch2/projects/SelfTest/Baselines/console.sw.approved.txt -------------------------------------------------------------------------------- /vendor/Catch2/projects/SelfTest/Baselines/xml.sw.approved.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kautenja/limit-order-book/88416a12a0b34b026cbf1d598823fd315a1f2dbf/vendor/Catch2/projects/SelfTest/Baselines/xml.sw.approved.txt -------------------------------------------------------------------------------- /vendor/Catch2/projects/SelfTest/CompileTimePerfTests/10.tests.cpp: -------------------------------------------------------------------------------- 1 | // Include set of usage tests multiple times - for compile-time performance testing 2 | // (do not run) 3 | 4 | #include "All.tests.cpp" 5 | #include "All.tests.cpp" 6 | #include "All.tests.cpp" 7 | #include "All.tests.cpp" 8 | #include "All.tests.cpp" 9 | #include "All.tests.cpp" 10 | #include "All.tests.cpp" 11 | #include "All.tests.cpp" 12 | #include "All.tests.cpp" 13 | #include "All.tests.cpp" 14 | -------------------------------------------------------------------------------- /vendor/Catch2/projects/SelfTest/CompileTimePerfTests/100.tests.cpp: -------------------------------------------------------------------------------- 1 | // Include set of usage tests multiple times - for compile-time performance testing 2 | // (do not run) 3 | 4 | #include "10.tests.cpp" 5 | #include "10.tests.cpp" 6 | #include "10.tests.cpp" 7 | #include "10.tests.cpp" 8 | #include "10.tests.cpp" 9 | #include "10.tests.cpp" 10 | #include "10.tests.cpp" 11 | #include "10.tests.cpp" 12 | #include "10.tests.cpp" 13 | #include "10.tests.cpp" 14 | -------------------------------------------------------------------------------- /vendor/Catch2/projects/SelfTest/CompileTimePerfTests/All.tests.cpp: -------------------------------------------------------------------------------- 1 | // include set of usage tests into one file for compiler performance test purposes 2 | // This whole file can now be included multiple times in 10.tests.cpp, and *that* 3 | // file included multiple times (in 100.tests.cpp) 4 | 5 | // Note that the intention is only for these files to be compiled. They will 6 | // fail at runtime due to the re-user of test case names 7 | 8 | #include "../UsageTests/Approx.tests.cpp" 9 | #include "../UsageTests/BDD.tests.cpp" 10 | #include "../UsageTests/Class.tests.cpp" 11 | #include "../UsageTests/Compilation.tests.cpp" 12 | #include "../UsageTests/Condition.tests.cpp" 13 | #include "../UsageTests/Exception.tests.cpp" 14 | #include "../UsageTests/Matchers.tests.cpp" 15 | #include "../UsageTests/Misc.tests.cpp" 16 | -------------------------------------------------------------------------------- /vendor/Catch2/projects/SelfTest/SurrogateCpps/catch_console_colour.cpp: -------------------------------------------------------------------------------- 1 | // This file is only here to verify (to the extent possible) the self sufficiency of the header 2 | #include "internal/catch_suppress_warnings.h" 3 | #include "internal/catch_console_colour.h" 4 | -------------------------------------------------------------------------------- /vendor/Catch2/projects/SelfTest/SurrogateCpps/catch_debugger.cpp: -------------------------------------------------------------------------------- 1 | // This file is only here to verify (to the extent possible) the self sufficiency of the header 2 | #include "internal/catch_debugger.h" 3 | -------------------------------------------------------------------------------- /vendor/Catch2/projects/SelfTest/SurrogateCpps/catch_interfaces_reporter.cpp: -------------------------------------------------------------------------------- 1 | #include "internal/catch_suppress_warnings.h" 2 | #include "internal/catch_interfaces_reporter.h" 3 | -------------------------------------------------------------------------------- /vendor/Catch2/projects/SelfTest/SurrogateCpps/catch_option.cpp: -------------------------------------------------------------------------------- 1 | // This file is only here to verify (to the extent possible) the self sufficiency of the header 2 | #include "internal/catch_suppress_warnings.h" 3 | #include "internal/catch_option.hpp" 4 | -------------------------------------------------------------------------------- /vendor/Catch2/projects/SelfTest/SurrogateCpps/catch_stream.cpp: -------------------------------------------------------------------------------- 1 | // This file is only here to verify (to the extent possible) the self sufficiency of the header 2 | #include "internal/catch_suppress_warnings.h" 3 | #include "internal/catch_stream.h" 4 | -------------------------------------------------------------------------------- /vendor/Catch2/projects/SelfTest/SurrogateCpps/catch_test_case_tracker.cpp: -------------------------------------------------------------------------------- 1 | // This file is only here to verify (to the extent possible) the self sufficiency of the header 2 | #include "internal/catch_test_case_tracker.h" 3 | -------------------------------------------------------------------------------- /vendor/Catch2/projects/SelfTest/SurrogateCpps/catch_test_spec.cpp: -------------------------------------------------------------------------------- 1 | // This file is only here to verify (to the extent possible) the self sufficiency of the header 2 | #include "internal/catch_suppress_warnings.h" 3 | #include "internal/catch_test_spec.h" 4 | -------------------------------------------------------------------------------- /vendor/Catch2/projects/SelfTest/SurrogateCpps/catch_xmlwriter.cpp: -------------------------------------------------------------------------------- 1 | // This file is only here to verify (to the extent possible) the self sufficiency of the header 2 | #include "internal/catch_suppress_warnings.h" 3 | #include "internal/catch_xmlwriter.h" 4 | #include "internal/catch_reenable_warnings.h" 5 | -------------------------------------------------------------------------------- /vendor/Catch2/projects/SelfTest/UsageTests/VariadicMacros.tests.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Phil on 15/03/2013. 3 | * Copyright 2013 Two Blue Cubes Ltd. All rights reserved. 4 | * 5 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 6 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 | */ 8 | 9 | #include "catch.hpp" 10 | 11 | 12 | TEST_CASE() 13 | { 14 | SUCCEED( "anonymous test case" ); 15 | } 16 | 17 | TEST_CASE( "Test case with one argument" ) 18 | { 19 | SUCCEED( "no assertions" ); 20 | } 21 | 22 | TEST_CASE( "Variadic macros", "[variadic][sections]" ) 23 | { 24 | SECTION( "Section with one argument" ) 25 | { 26 | SUCCEED( "no assertions" ); 27 | } 28 | } 29 | 30 | -------------------------------------------------------------------------------- /vendor/Catch2/projects/XCode/OCTest/OCTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /vendor/Catch2/projects/XCode/OCTest/OCTest.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /vendor/Catch2/projects/XCode/OCTest/OCTest/CatchOCTestCase.h: -------------------------------------------------------------------------------- 1 | // 2 | // CatchOCTestCase.h 3 | // OCTest 4 | // 5 | // Created by Phil on 13/11/2010. 6 | // Copyright 2010 Two Blue Cubes Ltd. All rights reserved. 7 | // 8 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 9 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 10 | #ifndef TWOBLUECUBES_CATCHOCTESTCASE_H_INCLUDED 11 | #define TWOBLUECUBES_CATCHOCTESTCASE_H_INCLUDED 12 | 13 | #include "catch.hpp" 14 | 15 | #import 16 | #import "TestObj.h" 17 | 18 | @interface TestFixture : NSObject 19 | { 20 | TestObj* obj; 21 | } 22 | 23 | @end 24 | 25 | #endif // TWOBLUECUBES_CATCHOCTESTCASE_H_INCLUDED 26 | -------------------------------------------------------------------------------- /vendor/Catch2/projects/XCode/OCTest/OCTest/Main.mm: -------------------------------------------------------------------------------- 1 | #define CATCH_CONFIG_MAIN 2 | #import "catch.hpp" 3 | -------------------------------------------------------------------------------- /vendor/Catch2/projects/XCode/OCTest/OCTest/OCTest.mm: -------------------------------------------------------------------------------- 1 | /* 2 | * OCTest.mm 3 | * OCTest 4 | * 5 | * Created by Phil on 13/11/2010. 6 | * Copyright 2010 Two Blue Cubes Ltd. All rights reserved. 7 | * 8 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 9 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 10 | * 11 | */ 12 | 13 | #import "catch.hpp" 14 | 15 | #import "TestObj.h" 16 | 17 | TEST_CASE( "OCTest/TestObj", "tests TestObj" ) 18 | { 19 | TestObj* obj = [[TestObj alloc] init]; 20 | 21 | REQUIRE( obj.int_val == 0 ); 22 | 23 | obj.int_val = 1; 24 | 25 | REQUIRE( obj.int_val == 1 ); 26 | 27 | arcSafeRelease( obj ); 28 | } 29 | -------------------------------------------------------------------------------- /vendor/Catch2/projects/XCode/OCTest/OCTest/TestObj.h: -------------------------------------------------------------------------------- 1 | // 2 | // TestObj.h 3 | // OCTest 4 | // 5 | // Created by Phil on 13/11/2010. 6 | // Copyright 2010 Two Blue Cubes Ltd. All rights reserved. 7 | // 8 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 9 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 10 | #ifndef TWOBLUECUBES_TESTOBJ_H_INCLUDED 11 | #define TWOBLUECUBES_TESTOBJ_H_INCLUDED 12 | 13 | #import 14 | 15 | 16 | @interface TestObj : NSObject { 17 | 18 | int int_val; 19 | } 20 | 21 | -(BOOL) isTrue; 22 | -(BOOL) isFalse; 23 | 24 | @property (nonatomic, assign ) int int_val; 25 | 26 | @end 27 | 28 | #endif // TWOBLUECUBES_TESTOBJ_H_INCLUDED 29 | -------------------------------------------------------------------------------- /vendor/Catch2/projects/XCode/OCTest/OCTest/TestObj.m: -------------------------------------------------------------------------------- 1 | // 2 | // TestObj.m 3 | // OCTest 4 | // 5 | // Created by Phil on 13/11/2010. 6 | // Copyright 2010 Two Blue Cubes Ltd. All rights reserved. 7 | // 8 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 9 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 10 | 11 | #import "TestObj.h" 12 | 13 | 14 | @implementation TestObj 15 | 16 | @synthesize int_val; 17 | 18 | -(BOOL) isTrue { 19 | return YES; 20 | } 21 | -(BOOL) isFalse { 22 | return NO; 23 | } 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /vendor/Catch2/scripts/developBuild.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | from __future__ import print_function 4 | import releaseCommon 5 | 6 | v = releaseCommon.Version() 7 | v.incrementBuildNumber() 8 | releaseCommon.performUpdates(v) 9 | 10 | print( "Updated Version.hpp, README and Conan to v{0}".format( v.getVersionString() ) ) 11 | -------------------------------------------------------------------------------- /vendor/Catch2/scripts/majorRelease.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | from __future__ import print_function 4 | import releaseCommon 5 | 6 | v = releaseCommon.Version() 7 | v.incrementMajorVersion() 8 | releaseCommon.performUpdates(v) 9 | 10 | print( "Updated Version.hpp, README and Conan to v{0}".format( v.getVersionString() ) ) 11 | -------------------------------------------------------------------------------- /vendor/Catch2/scripts/minorRelease.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | from __future__ import print_function 4 | import releaseCommon 5 | 6 | v = releaseCommon.Version() 7 | v.incrementMinorVersion() 8 | releaseCommon.performUpdates(v) 9 | 10 | print( "Updated Version.hpp, README and Conan to v{0}".format( v.getVersionString() ) ) 11 | -------------------------------------------------------------------------------- /vendor/Catch2/scripts/patchRelease.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | from __future__ import print_function 4 | import releaseCommon 5 | 6 | v = releaseCommon.Version() 7 | v.incrementPatchNumber() 8 | releaseCommon.performUpdates(v) 9 | 10 | print( "Updated Version.hpp, README and Conan to v{0}".format( v.getVersionString() ) ) 11 | -------------------------------------------------------------------------------- /vendor/Catch2/scripts/scriptCommon.py: -------------------------------------------------------------------------------- 1 | import os 2 | import sys 3 | import subprocess 4 | 5 | 6 | catchPath = os.path.dirname(os.path.realpath( os.path.dirname(sys.argv[0]))) 7 | 8 | def getBuildExecutable(): 9 | if os.name == 'nt': 10 | dir = os.environ.get('CATCH_DEV_OUT_DIR', "cmake-build-debug/projects/SelfTest.exe") 11 | return dir 12 | else: 13 | dir = os.environ.get('CATCH_DEV_OUT_DIR', "cmake-build-debug/projects/SelfTest") 14 | return dir 15 | 16 | 17 | def runAndCapture( args ): 18 | child = subprocess.Popen(" ".join( args ), shell=True, stdout=subprocess.PIPE) 19 | lines = [] 20 | line = "" 21 | while True: 22 | out = child.stdout.read(1) 23 | if out == '' and child.poll(): 24 | break 25 | if out != '': 26 | if out == '\n': 27 | lines.append( line ) 28 | line = "" 29 | else: 30 | line = line + out 31 | return lines 32 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/.clang_complete: -------------------------------------------------------------------------------- 1 | -Iinclude 2 | -Ivendor/Catch2/single_include/catch2 3 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "vendor/Catch2"] 2 | path = vendor/Catch2 3 | url = https://github.com/catchorg/Catch2 4 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/.travis.yml: -------------------------------------------------------------------------------- 1 | --- 2 | language: python # this works for Linux but is an error on macOS or Windows 3 | matrix: 4 | include: 5 | - name: "Ubuntu 14.04" 6 | python: 3.5 7 | before_install: pip3 install scons 8 | - name: "Ubuntu 16.04" 9 | python: 3.5 10 | dist: xenial 11 | before_install: pip3 install scons 12 | - name: "macOS 10.14 (Xcode 10.2)" 13 | os: osx 14 | osx_image: xcode10.2 15 | language: shell 16 | before_install: brew install scons 17 | # - name: "Windows 10" 18 | # os: windows 19 | # language: shell 20 | # before_install: choco install python 21 | # env: PATH=/c/Python37:/c/Python37/Scripts:$PATH 22 | # script: 23 | # - echo "TODO" 24 | # install: 25 | # - pip3 install -r requirements.txt 26 | script: 27 | - scons test 28 | - scons 29 | notifications: 30 | email: false 31 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/README.md: -------------------------------------------------------------------------------- 1 | # Binary Search Tree 2 | 3 | [![build-status][]][build-server] 4 | 5 | [build-status]: https://travis-ci.com/Kautenja/binary-search-tree.svg 6 | [build-server]: https://travis-ci.com/Kautenja/binary-search-tree 7 | 8 | # Roadmap 9 | 10 | - [x] insert node 11 | - [x] remove node 12 | - [x] find node with minimum key 13 | - [x] find node with maximum key 14 | - [ ] find node with given key 15 | 16 | # Usage 17 | 18 | Simply add [include/binary_search_tree.hpp](include/binary_search_tree.hpp) to 19 | your C++ project either by copying directly or using git submodules. 20 | 21 | ## Testing 22 | 23 | To compile and run the [test suite](test): 24 | 25 | ```shell 26 | scons test 27 | ``` 28 | 29 | ## Benchmarking 30 | 31 | To run benchmarks: 32 | 33 | ```shell 34 | scons benchmark/benchmark_bst.cpp 35 | ``` 36 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/test/.gitignore: -------------------------------------------------------------------------------- 1 | main.cpp 2 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/.conan/test_package/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.2.0) 2 | project(test_package CXX) 3 | 4 | include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake) 5 | conan_basic_setup(TARGETS) 6 | 7 | find_package(Catch2 REQUIRED CONFIG) 8 | 9 | add_executable(${PROJECT_NAME} test_package.cpp) 10 | target_link_libraries(${PROJECT_NAME} CONAN_PKG::Catch2) 11 | set_target_properties(${PROJECT_NAME} PROPERTIES CXX_STANDARD 11) 12 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/.conan/test_package/conanfile.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | from conans import ConanFile, CMake 4 | import os 5 | 6 | 7 | class TestPackageConan(ConanFile): 8 | settings = "os", "compiler", "build_type", "arch" 9 | generators = "cmake" 10 | 11 | def build(self): 12 | cmake = CMake(self) 13 | cmake.configure() 14 | cmake.build() 15 | 16 | def test(self): 17 | assert os.path.isfile(os.path.join(self.deps_cpp_info["Catch2"].rootpath, "licenses", "LICENSE.txt")) 18 | bin_path = os.path.join("bin", "test_package") 19 | self.run("%s -s" % bin_path, run_environment=True) 20 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/.conan/test_package/test_package.cpp: -------------------------------------------------------------------------------- 1 | #define CATCH_CONFIG_MAIN 2 | 3 | #include 4 | 5 | int Factorial( int number ) { 6 | return number <= 1 ? 1 : Factorial( number - 1 ) * number; 7 | } 8 | 9 | TEST_CASE( "Factorial Tests", "[single-file]" ) { 10 | REQUIRE( Factorial(0) == 1 ); 11 | REQUIRE( Factorial(1) == 1 ); 12 | REQUIRE( Factorial(2) == 2 ); 13 | REQUIRE( Factorial(3) == 6 ); 14 | REQUIRE( Factorial(10) == 3628800 ); 15 | } -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/.gitattributes: -------------------------------------------------------------------------------- 1 | # This sets the default behaviour, overriding core.autocrlf 2 | * text=auto 3 | 4 | # All source files should have unix line-endings in the repository, 5 | # but convert to native line-endings on checkout 6 | *.cpp text 7 | *.h text 8 | *.hpp text 9 | 10 | # Windows specific files should retain windows line-endings 11 | *.sln text eol=crlf 12 | 13 | # Keep executable scripts with LFs so they can be run after being 14 | # checked out on Windows 15 | *.py text eol=lf 16 | 17 | 18 | # Keep the single include header with LFs to make sure it is uploaded, 19 | # hashed etc with LF 20 | single_include/**/*.hpp eol=lf 21 | # Also keep the LICENCE file with LFs for the same reason 22 | LICENCE.txt eol=lf 23 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | patreon: horenmar 2 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create an issue that documents a bug 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **Expected behavior** 14 | A clear and concise description of what you expected to happen. 15 | 16 | **Reproduction steps** 17 | Steps to reproduce the bug. 18 | 19 | 20 | 21 | **Platform information:** 22 | 23 | - OS: **Windows NT** 24 | - Compiler+version: **GCC v2.9.5** 25 | - Catch version: **v1.2.3** 26 | 27 | 28 | **Additional context** 29 | Add any other context about the problem here. 30 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Create an issue that requests a feature or other improvement 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Description** 11 | Describe the feature/change you request and why do you want it. 12 | 13 | **Additional context** 14 | Add any other context or screenshots about the feature request here. 15 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/.gitignore: -------------------------------------------------------------------------------- 1 | *.build 2 | *.pbxuser 3 | *.mode1v3 4 | *.ncb 5 | *.suo 6 | Debug 7 | Release 8 | *.user 9 | *.xcuserstate 10 | .DS_Store 11 | xcuserdata 12 | CatchSelfTest.xcscheme 13 | Breakpoints.xcbkptlist 14 | projects/VS2010/TestCatch/_UpgradeReport_Files/ 15 | projects/VS2010/TestCatch/TestCatch/TestCatch.vcxproj.filters 16 | projects/VisualStudio/TestCatch/UpgradeLog.XML 17 | projects/CMake/.idea 18 | projects/CMake/cmake-build-debug 19 | UpgradeLog.XML 20 | Resources/DWARF 21 | projects/Generated 22 | *.pyc 23 | DerivedData 24 | *.xccheckout 25 | Build 26 | .idea 27 | .vs 28 | cmake-build-* 29 | benchmark-dir 30 | .conan/test_package/build 31 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/CMake/Catch2Config.cmake.in: -------------------------------------------------------------------------------- 1 | @PACKAGE_INIT@ 2 | 3 | 4 | # Avoid repeatedly including the targets 5 | if(NOT TARGET Catch2::Catch2) 6 | # Provide path for scripts 7 | list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}") 8 | 9 | include(${CMAKE_CURRENT_LIST_DIR}/Catch2Targets.cmake) 10 | endif() 11 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/CMake/catch2.pc.in: -------------------------------------------------------------------------------- 1 | includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@ 2 | 3 | Name: Catch2 4 | Description: A modern, C++-native, header-only, test framework for C++11 5 | URL: https://github.com/catchorg/Catch2 6 | Version: @Catch2_VERSION@ 7 | Cflags: -I${includedir} 8 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/artwork/catch2-c-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kautenja/limit-order-book/88416a12a0b34b026cbf1d598823fd315a1f2dbf/vendor/binary-search-tree/vendor/Catch2/artwork/catch2-c-logo.png -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/artwork/catch2-hand-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kautenja/limit-order-book/88416a12a0b34b026cbf1d598823fd315a1f2dbf/vendor/binary-search-tree/vendor/Catch2/artwork/catch2-hand-logo.png -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/artwork/catch2-logo-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kautenja/limit-order-book/88416a12a0b34b026cbf1d598823fd315a1f2dbf/vendor/binary-search-tree/vendor/Catch2/artwork/catch2-logo-small.png -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/codecov.yml: -------------------------------------------------------------------------------- 1 | coverage: 2 | precision: 2 3 | round: nearest 4 | range: "60...90" 5 | status: 6 | project: 7 | default: 8 | threshold: 2% 9 | patch: 10 | default: 11 | target: 80% 12 | ignore: 13 | - "projects/SelfTest" 14 | - "**/catch_reporter_tap.hpp" 15 | - "**/catch_reporter_automake.hpp" 16 | - "**/catch_reporter_teamcity.hpp" 17 | - "**/external/clara.hpp" 18 | 19 | 20 | codecov: 21 | branch: master 22 | 23 | comment: 24 | layout: "diff" 25 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/contrib/gdbinit: -------------------------------------------------------------------------------- 1 | # 2 | # This file provides a way to skip stepping into Catch code when debugging with gdb. 3 | # 4 | # With the gdb "skip" command you can tell gdb to skip files or functions during debugging. 5 | # see https://xaizek.github.io/2016-05-26/skipping-standard-library-in-gdb/ for an example 6 | # 7 | # Basically the following line tells gdb to skip all functions containing the 8 | # regexp "Catch", which matches the complete Catch namespace. 9 | # If you want to skip just some parts of the Catch code you can modify the 10 | # regexp accordingly. 11 | # 12 | # If you want to permanently skip stepping into Catch code copy the following 13 | # line into your ~/.gdbinit file 14 | # 15 | 16 | skip -rfu Catch 17 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/contrib/lldbinit: -------------------------------------------------------------------------------- 1 | # 2 | # This file provides a way to skip stepping into Catch code when debugging with lldb. 3 | # 4 | # With the setting "target.process.thread.step-avoid-regexp" you can tell lldb 5 | # to skip functions matching the regexp 6 | # 7 | # Basically the following line tells lldb to skip all functions containing the 8 | # regexp "Catch", which matches the complete Catch namespace. 9 | # If you want to skip just some parts of the Catch code you can modify the 10 | # regexp accordingly. 11 | # 12 | # If you want to permanently skip stepping into Catch code copy the following 13 | # line into your ~/.lldbinit file 14 | # 15 | 16 | settings set target.process.thread.step-avoid-regexp Catch -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/examples/000-CatchMain.cpp: -------------------------------------------------------------------------------- 1 | // 000-CatchMain.cpp 2 | 3 | // In a Catch project with multiple files, dedicate one file to compile the 4 | // source code of Catch itself and reuse the resulting object file for linking. 5 | 6 | // Let Catch provide main(): 7 | #define CATCH_CONFIG_MAIN 8 | 9 | #include 10 | 11 | // That's it 12 | 13 | // Compile implementation of Catch for use with files that do contain tests: 14 | // - g++ -std=c++11 -Wall -I$(CATCH_SINGLE_INCLUDE) -c 000-CatchMain.cpp 15 | // - cl -EHsc -I%CATCH_SINGLE_INCLUDE% -c 000-CatchMain.cpp 16 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/include/catch_with_main.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Phil on 01/11/2010. 3 | * Copyright 2010 Two Blue Cubes Ltd. All rights reserved. 4 | * 5 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 6 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 | */ 8 | #ifndef TWOBLUECUBES_CATCH_WITH_MAIN_HPP_INCLUDED 9 | #define TWOBLUECUBES_CATCH_WITH_MAIN_HPP_INCLUDED 10 | 11 | #define CATCH_CONFIG_MAIN 12 | #include "catch.hpp" 13 | 14 | #endif // TWOBLUECUBES_CATCH_WITH_MAIN_HPP_INCLUDED 15 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/include/internal/catch_commandline.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Phil on 02/11/2010. 3 | * Copyright 2010 Two Blue Cubes Ltd. All rights reserved. 4 | * 5 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 6 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 | */ 8 | #ifndef TWOBLUECUBES_CATCH_COMMANDLINE_HPP_INCLUDED 9 | #define TWOBLUECUBES_CATCH_COMMANDLINE_HPP_INCLUDED 10 | 11 | #include "catch_config.hpp" 12 | #include "catch_clara.h" 13 | 14 | namespace Catch { 15 | 16 | clara::Parser makeCommandLineParser( ConfigData& config ); 17 | 18 | } // end namespace Catch 19 | 20 | #endif // TWOBLUECUBES_CATCH_COMMANDLINE_HPP_INCLUDED 21 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/include/internal/catch_debug_console.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Martin on 29/08/2017. 3 | * 4 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 5 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | * 7 | */ 8 | 9 | #include "catch_debug_console.h" 10 | #include "catch_stream.h" 11 | #include "catch_platform.h" 12 | #include "catch_windows_h_proxy.h" 13 | 14 | #ifdef CATCH_PLATFORM_WINDOWS 15 | 16 | namespace Catch { 17 | void writeToDebugConsole( std::string const& text ) { 18 | ::OutputDebugStringA( text.c_str() ); 19 | } 20 | } 21 | 22 | #else 23 | 24 | namespace Catch { 25 | void writeToDebugConsole( std::string const& text ) { 26 | // !TBD: Need a version for Mac/ XCode and other IDEs 27 | Catch::cout() << text; 28 | } 29 | } 30 | 31 | #endif // Platform 32 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/include/internal/catch_debug_console.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Martin on 29/08/2017. 3 | * 4 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 5 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | * 7 | */ 8 | #ifndef TWOBLUECUBES_CATCH_DEBUG_CONSOLE_H_INCLUDED 9 | #define TWOBLUECUBES_CATCH_DEBUG_CONSOLE_H_INCLUDED 10 | 11 | #include 12 | 13 | namespace Catch { 14 | void writeToDebugConsole( std::string const& text ); 15 | } 16 | 17 | #endif // TWOBLUECUBES_CATCH_DEBUG_CONSOLE_H_INCLUDED 18 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/include/internal/catch_decomposer.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Phil Nash on 8/8/2017. 3 | * Copyright 2017 Two Blue Cubes Ltd. All rights reserved. 4 | * 5 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 6 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 | */ 8 | 9 | #include "catch_decomposer.h" 10 | #include "catch_config.hpp" 11 | 12 | namespace Catch { 13 | 14 | ITransientExpression::~ITransientExpression() = default; 15 | 16 | void formatReconstructedExpression( std::ostream &os, std::string const& lhs, StringRef op, std::string const& rhs ) { 17 | if( lhs.size() + rhs.size() < 40 && 18 | lhs.find('\n') == std::string::npos && 19 | rhs.find('\n') == std::string::npos ) 20 | os << lhs << " " << op << " " << rhs; 21 | else 22 | os << lhs << "\n" << op << "\n" << rhs; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/include/internal/catch_errno_guard.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Martin on 06/03/2017. 3 | * 4 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 5 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | */ 7 | 8 | #include "catch_errno_guard.h" 9 | 10 | #include 11 | 12 | namespace Catch { 13 | ErrnoGuard::ErrnoGuard():m_oldErrno(errno){} 14 | ErrnoGuard::~ErrnoGuard() { errno = m_oldErrno; } 15 | } 16 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/include/internal/catch_errno_guard.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Martin on 06/03/2017. 3 | * 4 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 5 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | */ 7 | #ifndef TWOBLUECUBES_CATCH_ERRNO_GUARD_H_INCLUDED 8 | #define TWOBLUECUBES_CATCH_ERRNO_GUARD_H_INCLUDED 9 | 10 | namespace Catch { 11 | 12 | class ErrnoGuard { 13 | public: 14 | ErrnoGuard(); 15 | ~ErrnoGuard(); 16 | private: 17 | int m_oldErrno; 18 | }; 19 | 20 | } 21 | 22 | #endif // TWOBLUECUBES_CATCH_ERRNO_GUARD_H_INCLUDED 23 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/include/internal/catch_external_interfaces.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Martin on 17/08/2017. 3 | * 4 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 5 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | */ 7 | #ifndef TWOBLUECUBES_CATCH_EXTERNAL_INTERFACES_H_INCLUDED 8 | #define TWOBLUECUBES_CATCH_EXTERNAL_INTERFACES_H_INCLUDED 9 | 10 | #include "../reporters/catch_reporter_bases.hpp" 11 | #include "catch_console_colour.h" 12 | #include "catch_reporter_registrars.hpp" 13 | 14 | // Allow users to base their work off existing reporters 15 | #include "../reporters/catch_reporter_compact.h" 16 | #include "../reporters/catch_reporter_console.h" 17 | #include "../reporters/catch_reporter_junit.h" 18 | #include "../reporters/catch_reporter_xml.h" 19 | 20 | #endif // TWOBLUECUBES_CATCH_EXTERNAL_INTERFACES_H_INCLUDED 21 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/include/internal/catch_generators.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Phil Nash on 15/6/2018. 3 | * 4 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 5 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | */ 7 | 8 | #include "catch_generators.hpp" 9 | #include "catch_random_number_generator.h" 10 | #include "catch_interfaces_capture.h" 11 | 12 | #include 13 | #include 14 | 15 | namespace Catch { 16 | 17 | IGeneratorTracker::~IGeneratorTracker() {} 18 | 19 | const char* GeneratorException::what() const noexcept { 20 | return m_msg; 21 | } 22 | 23 | namespace Generators { 24 | 25 | GeneratorUntypedBase::~GeneratorUntypedBase() {} 26 | 27 | auto acquireGeneratorTracker( SourceLineInfo const& lineInfo ) -> IGeneratorTracker& { 28 | return getResultCapture().acquireGeneratorTracker( lineInfo ); 29 | } 30 | 31 | } // namespace Generators 32 | } // namespace Catch 33 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/include/internal/catch_impl.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Phil on 5/8/2012. 3 | * Copyright 2012 Two Blue Cubes Ltd. All rights reserved. 4 | * 5 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 6 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 | */ 8 | #ifndef TWOBLUECUBES_CATCH_IMPL_HPP_INCLUDED 9 | #define TWOBLUECUBES_CATCH_IMPL_HPP_INCLUDED 10 | 11 | #ifdef __clang__ 12 | #pragma clang diagnostic push 13 | #pragma clang diagnostic ignored "-Wweak-vtables" 14 | #endif 15 | 16 | // Keep these here for external reporters 17 | #include "catch_test_spec.h" 18 | #include "catch_test_case_tracker.h" 19 | 20 | #include "catch_leak_detector.h" 21 | 22 | // Cpp files will be included in the single-header file here 23 | // ~*~* CATCH_CPP_STITCH_PLACE *~*~ 24 | 25 | namespace Catch { 26 | LeakDetector leakDetector; 27 | } 28 | 29 | #ifdef __clang__ 30 | #pragma clang diagnostic pop 31 | #endif 32 | 33 | #endif // TWOBLUECUBES_CATCH_IMPL_HPP_INCLUDED 34 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/include/internal/catch_interfaces_capture.cpp: -------------------------------------------------------------------------------- 1 | #include "catch_interfaces_capture.h" 2 | 3 | namespace Catch { 4 | IResultCapture::~IResultCapture() = default; 5 | } 6 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/include/internal/catch_interfaces_config.cpp: -------------------------------------------------------------------------------- 1 | #include "internal/catch_interfaces_config.h" 2 | 3 | namespace Catch { 4 | IConfig::~IConfig() = default; 5 | } 6 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/include/internal/catch_interfaces_exception.cpp: -------------------------------------------------------------------------------- 1 | #include "internal/catch_interfaces_exception.h" 2 | 3 | namespace Catch { 4 | IExceptionTranslator::~IExceptionTranslator() = default; 5 | IExceptionTranslatorRegistry::~IExceptionTranslatorRegistry() = default; 6 | } 7 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/include/internal/catch_interfaces_registry_hub.cpp: -------------------------------------------------------------------------------- 1 | #include "internal/catch_interfaces_registry_hub.h" 2 | 3 | namespace Catch { 4 | IRegistryHub::~IRegistryHub() = default; 5 | IMutableRegistryHub::~IMutableRegistryHub() = default; 6 | } 7 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/include/internal/catch_interfaces_runner.cpp: -------------------------------------------------------------------------------- 1 | #include "internal/catch_interfaces_runner.h" 2 | 3 | namespace Catch { 4 | IRunner::~IRunner() = default; 5 | } 6 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/include/internal/catch_interfaces_runner.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Phil on 07/01/2011. 3 | * Copyright 2011 Two Blue Cubes Ltd. All rights reserved. 4 | * 5 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 6 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 | */ 8 | #ifndef TWOBLUECUBES_CATCH_INTERFACES_RUNNER_H_INCLUDED 9 | #define TWOBLUECUBES_CATCH_INTERFACES_RUNNER_H_INCLUDED 10 | 11 | namespace Catch { 12 | 13 | struct IRunner { 14 | virtual ~IRunner(); 15 | virtual bool aborting() const = 0; 16 | }; 17 | } 18 | 19 | #endif // TWOBLUECUBES_CATCH_INTERFACES_RUNNER_H_INCLUDED 20 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/include/internal/catch_interfaces_testcase.cpp: -------------------------------------------------------------------------------- 1 | #include "internal/catch_interfaces_testcase.h" 2 | 3 | namespace Catch { 4 | ITestInvoker::~ITestInvoker() = default; 5 | ITestCaseRegistry::~ITestCaseRegistry() = default; 6 | } 7 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/include/internal/catch_leak_detector.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Martin on 12/07/2017. 3 | * 4 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 5 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | */ 7 | #ifndef TWOBLUECUBES_CATCH_LEAK_DETECTOR_H_INCLUDED 8 | #define TWOBLUECUBES_CATCH_LEAK_DETECTOR_H_INCLUDED 9 | 10 | namespace Catch { 11 | 12 | struct LeakDetector { 13 | LeakDetector(); 14 | ~LeakDetector(); 15 | }; 16 | 17 | } 18 | #endif // TWOBLUECUBES_CATCH_LEAK_DETECTOR_H_INCLUDED 19 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/include/internal/catch_matchers.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Phil Nash on 19/07/2017. 3 | * 4 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 5 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | */ 7 | 8 | #include "catch_matchers.h" 9 | 10 | namespace Catch { 11 | namespace Matchers { 12 | namespace Impl { 13 | 14 | std::string MatcherUntypedBase::toString() const { 15 | if( m_cachedToString.empty() ) 16 | m_cachedToString = describe(); 17 | return m_cachedToString; 18 | } 19 | 20 | MatcherUntypedBase::~MatcherUntypedBase() = default; 21 | 22 | } // namespace Impl 23 | } // namespace Matchers 24 | 25 | using namespace Matchers; 26 | using Matchers::Impl::MatcherBase; 27 | 28 | } // namespace Catch 29 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/include/internal/catch_matchers_generic.cpp: -------------------------------------------------------------------------------- 1 | #include "catch_matchers_generic.hpp" 2 | 3 | std::string Catch::Matchers::Generic::Detail::finalizeDescription(const std::string& desc) { 4 | if (desc.empty()) { 5 | return "matches undescribed predicate"; 6 | } else { 7 | return "matches predicate: \"" + desc + '"'; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/include/internal/catch_platform.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Phil on 16/8/2013. 3 | * Copyright 2013 Two Blue Cubes Ltd. All rights reserved. 4 | * 5 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 6 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 | * 8 | */ 9 | #ifndef TWOBLUECUBES_CATCH_PLATFORM_H_INCLUDED 10 | #define TWOBLUECUBES_CATCH_PLATFORM_H_INCLUDED 11 | 12 | #ifdef __APPLE__ 13 | # include 14 | # if TARGET_OS_OSX == 1 15 | # define CATCH_PLATFORM_MAC 16 | # elif TARGET_OS_IPHONE == 1 17 | # define CATCH_PLATFORM_IPHONE 18 | # endif 19 | 20 | #elif defined(linux) || defined(__linux) || defined(__linux__) 21 | # define CATCH_PLATFORM_LINUX 22 | 23 | #elif defined(WIN32) || defined(__WIN32__) || defined(_WIN32) || defined(_MSC_VER) || defined(__MINGW32__) 24 | # define CATCH_PLATFORM_WINDOWS 25 | #endif 26 | 27 | #endif // TWOBLUECUBES_CATCH_PLATFORM_H_INCLUDED 28 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/include/internal/catch_polyfills.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Martin on 17/11/2017. 3 | * 4 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 5 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | */ 7 | 8 | #include "catch_polyfills.hpp" 9 | 10 | #include 11 | 12 | namespace Catch { 13 | 14 | #if !defined(CATCH_CONFIG_POLYFILL_ISNAN) 15 | bool isnan(float f) { 16 | return std::isnan(f); 17 | } 18 | bool isnan(double d) { 19 | return std::isnan(d); 20 | } 21 | #else 22 | // For now we only use this for embarcadero 23 | bool isnan(float f) { 24 | return std::_isnan(f); 25 | } 26 | bool isnan(double d) { 27 | return std::_isnan(d); 28 | } 29 | #endif 30 | 31 | } // end namespace Catch 32 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/include/internal/catch_polyfills.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Martin on 17/11/2017. 3 | * 4 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 5 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | */ 7 | #ifndef TWOBLUECUBES_CATCH_POLYFILLS_HPP_INCLUDED 8 | #define TWOBLUECUBES_CATCH_POLYFILLS_HPP_INCLUDED 9 | 10 | namespace Catch { 11 | bool isnan(float f); 12 | bool isnan(double d); 13 | } 14 | 15 | #endif // TWOBLUECUBES_CATCH_POLYFILLS_HPP_INCLUDED 16 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/include/internal/catch_random_number_generator.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Martin on 30/08/2017. 3 | * 4 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 5 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | */ 7 | 8 | #include "catch_random_number_generator.h" 9 | #include "catch_context.h" 10 | #include "catch_interfaces_config.h" 11 | 12 | namespace Catch { 13 | 14 | std::mt19937& rng() { 15 | static std::mt19937 s_rng; 16 | return s_rng; 17 | } 18 | 19 | void seedRng( IConfig const& config ) { 20 | if( config.rngSeed() != 0 ) { 21 | std::srand( config.rngSeed() ); 22 | rng().seed( config.rngSeed() ); 23 | } 24 | } 25 | 26 | unsigned int rngSeed() { 27 | return getCurrentContext().getConfig()->rngSeed(); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/include/internal/catch_random_number_generator.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Martin on 30/08/2017. 3 | * 4 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 5 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | */ 7 | #ifndef TWOBLUECUBES_CATCH_RANDOM_NUMBER_GENERATOR_H_INCLUDED 8 | #define TWOBLUECUBES_CATCH_RANDOM_NUMBER_GENERATOR_H_INCLUDED 9 | 10 | #include 11 | #include 12 | 13 | namespace Catch { 14 | 15 | struct IConfig; 16 | 17 | std::mt19937& rng(); 18 | void seedRng( IConfig const& config ); 19 | unsigned int rngSeed(); 20 | 21 | } 22 | 23 | #endif // TWOBLUECUBES_CATCH_RANDOM_NUMBER_GENERATOR_H_INCLUDED 24 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/include/internal/catch_reenable_warnings.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Two Blue Cubes Ltd 3 | * 4 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 5 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | */ 7 | 8 | #ifndef TWOBLUECUBES_CATCH_REENABLE_WARNINGS_H_INCLUDED 9 | #define TWOBLUECUBES_CATCH_REENABLE_WARNINGS_H_INCLUDED 10 | 11 | #ifdef __clang__ 12 | # ifdef __ICC // icpc defines the __clang__ macro 13 | # pragma warning(pop) 14 | # else 15 | # pragma clang diagnostic pop 16 | # endif 17 | #elif defined __GNUC__ 18 | # pragma GCC diagnostic pop 19 | #endif 20 | 21 | #endif // TWOBLUECUBES_CATCH_REENABLE_WARNINGS_H_INCLUDED 22 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/include/internal/catch_section_info.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Martin on 01/08/2017. 3 | * 4 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 5 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | */ 7 | 8 | #include "catch_section_info.h" 9 | 10 | namespace Catch { 11 | 12 | SectionInfo::SectionInfo 13 | ( SourceLineInfo const& _lineInfo, 14 | std::string const& _name ) 15 | : name( _name ), 16 | lineInfo( _lineInfo ) 17 | {} 18 | 19 | } // end namespace Catch 20 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/include/internal/catch_startup_exception_registry.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Martin on 04/06/2017. 3 | * Copyright 2017 Two Blue Cubes Ltd. All rights reserved. 4 | * 5 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 6 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 | */ 8 | 9 | #include "catch_startup_exception_registry.h" 10 | #include "catch_compiler_capabilities.h" 11 | 12 | namespace Catch { 13 | void StartupExceptionRegistry::add( std::exception_ptr const& exception ) noexcept { 14 | CATCH_TRY { 15 | m_exceptions.push_back(exception); 16 | } CATCH_CATCH_ALL { 17 | // If we run out of memory during start-up there's really not a lot more we can do about it 18 | std::terminate(); 19 | } 20 | } 21 | 22 | std::vector const& StartupExceptionRegistry::getExceptions() const noexcept { 23 | return m_exceptions; 24 | } 25 | 26 | } // end namespace Catch 27 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/include/internal/catch_startup_exception_registry.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Martin on 04/06/2017. 3 | * Copyright 2017 Two Blue Cubes Ltd. All rights reserved. 4 | * 5 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 6 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 | */ 8 | #ifndef TWOBLUECUBES_CATCH_STARTUP_EXCEPTION_REGISTRY_H_INCLUDED 9 | #define TWOBLUECUBES_CATCH_STARTUP_EXCEPTION_REGISTRY_H_INCLUDED 10 | 11 | 12 | #include 13 | #include 14 | 15 | namespace Catch { 16 | 17 | class StartupExceptionRegistry { 18 | public: 19 | void add(std::exception_ptr const& exception) noexcept; 20 | std::vector const& getExceptions() const noexcept; 21 | private: 22 | std::vector m_exceptions; 23 | }; 24 | 25 | } // end namespace Catch 26 | 27 | #endif // TWOBLUECUBES_CATCH_STARTUP_EXCEPTION_REGISTRY_H_INCLUDED 28 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/include/internal/catch_tag_alias.cpp: -------------------------------------------------------------------------------- 1 | #include "catch_tag_alias.h" 2 | 3 | namespace Catch { 4 | TagAlias::TagAlias(std::string const & _tag, SourceLineInfo _lineInfo): tag(_tag), lineInfo(_lineInfo) {} 5 | } 6 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/include/internal/catch_tag_alias.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Phil on 27/6/2014. 3 | * Copyright 2014 Two Blue Cubes Ltd. All rights reserved. 4 | * 5 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 6 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 | */ 8 | #ifndef TWOBLUECUBES_CATCH_TAG_ALIAS_H_INCLUDED 9 | #define TWOBLUECUBES_CATCH_TAG_ALIAS_H_INCLUDED 10 | 11 | #include "catch_common.h" 12 | 13 | #include 14 | 15 | namespace Catch { 16 | 17 | struct TagAlias { 18 | TagAlias(std::string const& _tag, SourceLineInfo _lineInfo); 19 | 20 | std::string tag; 21 | SourceLineInfo lineInfo; 22 | }; 23 | 24 | } // end namespace Catch 25 | 26 | #endif // TWOBLUECUBES_CATCH_TAG_ALIAS_H_INCLUDED 27 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/include/internal/catch_tag_alias_autoregistrar.cpp: -------------------------------------------------------------------------------- 1 | #include "catch_tag_alias_autoregistrar.h" 2 | #include "catch_compiler_capabilities.h" 3 | #include "catch_interfaces_registry_hub.h" 4 | 5 | namespace Catch { 6 | 7 | RegistrarForTagAliases::RegistrarForTagAliases(char const* alias, char const* tag, SourceLineInfo const& lineInfo) { 8 | CATCH_TRY { 9 | getMutableRegistryHub().registerTagAlias(alias, tag, lineInfo); 10 | } CATCH_CATCH_ALL { 11 | // Do not throw when constructing global objects, instead register the exception to be processed later 12 | getMutableRegistryHub().registerStartupException(); 13 | } 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/include/internal/catch_text.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Phil on 10/2/2014. 3 | * Copyright 2014 Two Blue Cubes Ltd. All rights reserved. 4 | * 5 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 6 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 | */ 8 | #ifndef TWOBLUECUBES_CATCH_TEXT_H_INCLUDED 9 | #define TWOBLUECUBES_CATCH_TEXT_H_INCLUDED 10 | 11 | #include "catch_clara.h" 12 | 13 | namespace Catch { 14 | using namespace clara::TextFlow; 15 | } 16 | 17 | #endif // TWOBLUECUBES_CATCH_TEXT_H_INCLUDED 18 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/include/internal/catch_to_string.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Martin on 9/5/2018. 3 | * 4 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 5 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | */ 7 | #ifndef TWOBLUECUBES_CATCH_TO_STRING_H_INCLUDED 8 | #define TWOBLUECUBES_CATCH_TO_STRING_H_INCLUDED 9 | 10 | #include 11 | 12 | #include "catch_compiler_capabilities.h" 13 | #include "catch_stream.h" 14 | 15 | namespace Catch { 16 | template 17 | std::string to_string(T const& t) { 18 | #if defined(CATCH_CONFIG_CPP11_TO_STRING) 19 | return std::to_string(t); 20 | #else 21 | ReusableStringStream rss; 22 | rss << t; 23 | return rss.str(); 24 | #endif 25 | } 26 | } // end namespace Catch 27 | 28 | #endif // TWOBLUECUBES_CATCH_TO_STRING_H_INCLUDED 29 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/include/internal/catch_uncaught_exceptions.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Josh on 1/2/2018. 3 | * Copyright 2018 Two Blue Cubes Ltd. All rights reserved. 4 | * 5 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 6 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 | */ 8 | 9 | #include "catch_compiler_capabilities.h" 10 | #include "catch_uncaught_exceptions.h" 11 | #include 12 | 13 | namespace Catch { 14 | bool uncaught_exceptions() { 15 | #if defined(CATCH_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS) 16 | return std::uncaught_exceptions() > 0; 17 | #else 18 | return std::uncaught_exception(); 19 | #endif 20 | } 21 | } // end namespace Catch 22 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/include/internal/catch_uncaught_exceptions.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Josh on 1/2/2018. 3 | * Copyright 2018 Two Blue Cubes Ltd. All rights reserved. 4 | * 5 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 6 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 | */ 8 | #ifndef TWOBLUECUBES_CATCH_UNCAUGHT_EXCEPTIONS_H_INCLUDED 9 | #define TWOBLUECUBES_CATCH_UNCAUGHT_EXCEPTIONS_H_INCLUDED 10 | 11 | namespace Catch { 12 | bool uncaught_exceptions(); 13 | } // end namespace Catch 14 | 15 | #endif // TWOBLUECUBES_CATCH_UNCAUGHT_EXCEPTIONS_H_INCLUDED 16 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/include/internal/catch_user_interfaces.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Martin on 21/11/2017. 3 | * 4 | * This file collects declaration that we want to expose to test files. 5 | * These declarations are expected to be duplicated elsewhere, 6 | * together with their implementation. 7 | * 8 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 9 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 10 | */ 11 | #ifndef TWOBLUECUBES_CATCH_USER_INTERFACES_H_INCLUDED 12 | #define TWOBLUECUBES_CATCH_USER_INTERFACES_H_INCLUDED 13 | 14 | namespace Catch { 15 | unsigned int rngSeed(); 16 | } 17 | 18 | #endif // TWOBLUECUBES_CATCH_USER_INTERFACES_H_INCLUDED 19 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/misc/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.0) 2 | 3 | project(CatchCoverageHelper) 4 | 5 | add_executable(CoverageHelper coverage-helper.cpp) 6 | set_property(TARGET CoverageHelper PROPERTY CXX_STANDARD 11) 7 | set_property(TARGET CoverageHelper PROPERTY CXX_STANDARD_REQUIRED ON) 8 | set_property(TARGET CoverageHelper PROPERTY CXX_EXTENSIONS OFF) 9 | if (MSVC) 10 | target_compile_options( CoverageHelper PRIVATE /W4 /w44265 /WX /w44061 /w44062 ) 11 | endif() 12 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/misc/appveyorMergeCoverageScript.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python2 2 | 3 | import glob 4 | import subprocess 5 | 6 | if __name__ == '__main__': 7 | cov_files = list(glob.glob('cov-report*.bin')) 8 | base_cmd = ['OpenCppCoverage', '--quiet', '--export_type=cobertura:cobertura.xml'] + ['--input_coverage={}'.format(f) for f in cov_files] 9 | subprocess.call(base_cmd) 10 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/misc/appveyorTestRunScript.bat: -------------------------------------------------------------------------------- 1 | SETLOCAL EnableDelayedExpansion 2 | 3 | cd Build 4 | if "%CONFIGURATION%"=="Debug" ( 5 | if "%coverage%"=="1" ( 6 | ctest -j 2 -C %CONFIGURATION% -D ExperimentalMemCheck || exit /b !ERRORLEVEL! 7 | python ..\misc\appveyorMergeCoverageScript.py || exit /b !ERRORLEVEL! 8 | codecov --root .. --no-color --disable gcov -f cobertura.xml -t %CODECOV_TOKEN% || exit /b !ERRORLEVEL! 9 | ) else ( 10 | ctest -j 2 -C %CONFIGURATION% || exit /b !ERRORLEVEL! 11 | ) 12 | ) 13 | if "%CONFIGURATION%"=="Release" ( 14 | ctest -j 2 -C %CONFIGURATION% || exit /b !ERRORLEVEL! 15 | ) 16 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/projects/ExtraTests/ToDo.txt: -------------------------------------------------------------------------------- 1 | Configuration options that are left default and thus are not properly tested 2 | yet: 3 | 4 | CATCH_CONFIG_COUNTER // Use __COUNTER__ to generate unique names for test cases 5 | CATCH_CONFIG_WINDOWS_SEH // Enable SEH handling on Windows 6 | CATCH_CONFIG_FAST_COMPILE // Sacrifices some (rather minor) features for compilation speed 7 | CATCH_CONFIG_DISABLE_MATCHERS // Do not compile Matchers in this compilation unit 8 | CATCH_CONFIG_POSIX_SIGNALS // Enable handling POSIX signals 9 | CATCH_CONFIG_WINDOWS_CRTDBG // Enable leak checking using Windows's CRT Debug Heap 10 | CATCH_CONFIG_DEFAULT_REPORTER 11 | CATCH_CONFIG_ENABLE_ALL_STRINGMAKERS 12 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/projects/ExtraTests/X02-DisabledMacros.cpp: -------------------------------------------------------------------------------- 1 | // X02-DisabledMacros.cpp 2 | // Test that CATCH_CONFIG_DISABLE turns off TEST_CASE autoregistration 3 | // and expressions in assertion macros are not run. 4 | 5 | #define CATCH_CONFIG_MAIN 6 | #include 7 | 8 | 9 | // CATCH_CONFIG_DISABLE also prevents reporter registration. 10 | // We need to manually register at least one reporter for our tests 11 | static Catch::ReporterRegistrar temporary( "console" ); 12 | 13 | #include 14 | 15 | struct foo { 16 | foo(){ 17 | REQUIRE_NOTHROW( print() ); 18 | } 19 | void print() const { 20 | std::cout << "This should not happen\n"; 21 | } 22 | }; 23 | 24 | // Construct foo, but `foo::print` should not be run 25 | foo f; 26 | 27 | // This test should not be run, because it won't be registered 28 | TEST_CASE( "Disabled Macros" ) { 29 | std::cout << "This should not happen\n"; 30 | FAIL(); 31 | } 32 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/projects/ExtraTests/X03-DisabledExceptions-DefaultHandler.cpp: -------------------------------------------------------------------------------- 1 | #define CATCH_CONFIG_MAIN 2 | #include 3 | 4 | TEST_CASE("Tests that run") { 5 | // All of these should be run and be reported 6 | CHECK(1 == 2); 7 | CHECK(1 == 1); 8 | CHECK(1 != 3); 9 | CHECK(1 == 4); 10 | } 11 | 12 | 13 | 14 | TEST_CASE("Tests that abort") { 15 | // Avoid abort and other exceptional exits -- there is no way 16 | // to tell CMake that abort is the desired outcome of a test. 17 | std::set_terminate([](){exit(1);}); 18 | REQUIRE(1 == 1); 19 | REQUIRE(1 != 2); 20 | REQUIRE(1 == 3); 21 | // We should not get here, because the test above aborts 22 | REQUIRE(1 != 4); 23 | } 24 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/projects/ExtraTests/X10-FallbackStringifier.cpp: -------------------------------------------------------------------------------- 1 | // X10-FallbackStringifier.cpp 2 | // Test that defining fallbackStringifier compiles 3 | 4 | #include 5 | 6 | // A catch-all stringifier 7 | template 8 | std::string fallbackStringifier(T const&) { 9 | return "{ !!! }"; 10 | } 11 | 12 | #define CATCH_CONFIG_MAIN 13 | #include 14 | 15 | struct foo { 16 | explicit operator bool() const { 17 | return true; 18 | } 19 | }; 20 | 21 | TEST_CASE("aa") { 22 | REQUIRE(foo{}); 23 | } 24 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/projects/ExtraTests/X11-DisableStringification.cpp: -------------------------------------------------------------------------------- 1 | // X11-DisableStringification.cpp 2 | // Test that stringification of original expression can be disabled 3 | // this is a workaround for VS 2017 issue with Raw String literal 4 | // and preprocessor token pasting. In other words, hopefully this test 5 | // will be deleted soon :-) 6 | 7 | #define CATCH_CONFIG_MAIN 8 | #include 9 | 10 | struct Hidden {}; 11 | 12 | bool operator==(Hidden, Hidden) { return true; } 13 | 14 | TEST_CASE("DisableStringification") { 15 | REQUIRE( Hidden{} == Hidden{} ); 16 | } 17 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/projects/SelfTest/Baselines/compact.sw.approved.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kautenja/limit-order-book/88416a12a0b34b026cbf1d598823fd315a1f2dbf/vendor/binary-search-tree/vendor/Catch2/projects/SelfTest/Baselines/compact.sw.approved.txt -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/projects/SelfTest/Baselines/console.sw.approved.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kautenja/limit-order-book/88416a12a0b34b026cbf1d598823fd315a1f2dbf/vendor/binary-search-tree/vendor/Catch2/projects/SelfTest/Baselines/console.sw.approved.txt -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/projects/SelfTest/Baselines/xml.sw.approved.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kautenja/limit-order-book/88416a12a0b34b026cbf1d598823fd315a1f2dbf/vendor/binary-search-tree/vendor/Catch2/projects/SelfTest/Baselines/xml.sw.approved.txt -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/projects/SelfTest/CompileTimePerfTests/10.tests.cpp: -------------------------------------------------------------------------------- 1 | // Include set of usage tests multiple times - for compile-time performance testing 2 | // (do not run) 3 | 4 | #include "All.tests.cpp" 5 | #include "All.tests.cpp" 6 | #include "All.tests.cpp" 7 | #include "All.tests.cpp" 8 | #include "All.tests.cpp" 9 | #include "All.tests.cpp" 10 | #include "All.tests.cpp" 11 | #include "All.tests.cpp" 12 | #include "All.tests.cpp" 13 | #include "All.tests.cpp" 14 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/projects/SelfTest/CompileTimePerfTests/100.tests.cpp: -------------------------------------------------------------------------------- 1 | // Include set of usage tests multiple times - for compile-time performance testing 2 | // (do not run) 3 | 4 | #include "10.tests.cpp" 5 | #include "10.tests.cpp" 6 | #include "10.tests.cpp" 7 | #include "10.tests.cpp" 8 | #include "10.tests.cpp" 9 | #include "10.tests.cpp" 10 | #include "10.tests.cpp" 11 | #include "10.tests.cpp" 12 | #include "10.tests.cpp" 13 | #include "10.tests.cpp" 14 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/projects/SelfTest/CompileTimePerfTests/All.tests.cpp: -------------------------------------------------------------------------------- 1 | // include set of usage tests into one file for compiler performance test purposes 2 | // This whole file can now be included multiple times in 10.tests.cpp, and *that* 3 | // file included multiple times (in 100.tests.cpp) 4 | 5 | // Note that the intention is only for these files to be compiled. They will 6 | // fail at runtime due to the re-user of test case names 7 | 8 | #include "../UsageTests/Approx.tests.cpp" 9 | #include "../UsageTests/BDD.tests.cpp" 10 | #include "../UsageTests/Class.tests.cpp" 11 | #include "../UsageTests/Compilation.tests.cpp" 12 | #include "../UsageTests/Condition.tests.cpp" 13 | #include "../UsageTests/Exception.tests.cpp" 14 | #include "../UsageTests/Matchers.tests.cpp" 15 | #include "../UsageTests/Misc.tests.cpp" 16 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/projects/SelfTest/SurrogateCpps/catch_console_colour.cpp: -------------------------------------------------------------------------------- 1 | // This file is only here to verify (to the extent possible) the self sufficiency of the header 2 | #include "internal/catch_suppress_warnings.h" 3 | #include "internal/catch_console_colour.h" 4 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/projects/SelfTest/SurrogateCpps/catch_debugger.cpp: -------------------------------------------------------------------------------- 1 | // This file is only here to verify (to the extent possible) the self sufficiency of the header 2 | #include "internal/catch_debugger.h" 3 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/projects/SelfTest/SurrogateCpps/catch_interfaces_reporter.cpp: -------------------------------------------------------------------------------- 1 | #include "internal/catch_suppress_warnings.h" 2 | #include "internal/catch_interfaces_reporter.h" 3 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/projects/SelfTest/SurrogateCpps/catch_option.cpp: -------------------------------------------------------------------------------- 1 | // This file is only here to verify (to the extent possible) the self sufficiency of the header 2 | #include "internal/catch_suppress_warnings.h" 3 | #include "internal/catch_option.hpp" 4 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/projects/SelfTest/SurrogateCpps/catch_stream.cpp: -------------------------------------------------------------------------------- 1 | // This file is only here to verify (to the extent possible) the self sufficiency of the header 2 | #include "internal/catch_suppress_warnings.h" 3 | #include "internal/catch_stream.h" 4 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/projects/SelfTest/SurrogateCpps/catch_test_case_tracker.cpp: -------------------------------------------------------------------------------- 1 | // This file is only here to verify (to the extent possible) the self sufficiency of the header 2 | #include "internal/catch_test_case_tracker.h" 3 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/projects/SelfTest/SurrogateCpps/catch_test_spec.cpp: -------------------------------------------------------------------------------- 1 | // This file is only here to verify (to the extent possible) the self sufficiency of the header 2 | #include "internal/catch_suppress_warnings.h" 3 | #include "internal/catch_test_spec.h" 4 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/projects/SelfTest/SurrogateCpps/catch_xmlwriter.cpp: -------------------------------------------------------------------------------- 1 | // This file is only here to verify (to the extent possible) the self sufficiency of the header 2 | #include "internal/catch_suppress_warnings.h" 3 | #include "internal/catch_xmlwriter.h" 4 | #include "internal/catch_reenable_warnings.h" 5 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/projects/SelfTest/UsageTests/VariadicMacros.tests.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Phil on 15/03/2013. 3 | * Copyright 2013 Two Blue Cubes Ltd. All rights reserved. 4 | * 5 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 6 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 | */ 8 | 9 | #include "catch.hpp" 10 | 11 | 12 | TEST_CASE() 13 | { 14 | SUCCEED( "anonymous test case" ); 15 | } 16 | 17 | TEST_CASE( "Test case with one argument" ) 18 | { 19 | SUCCEED( "no assertions" ); 20 | } 21 | 22 | TEST_CASE( "Variadic macros", "[variadic][sections]" ) 23 | { 24 | SECTION( "Section with one argument" ) 25 | { 26 | SUCCEED( "no assertions" ); 27 | } 28 | } 29 | 30 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/projects/XCode/OCTest/OCTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/projects/XCode/OCTest/OCTest.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/projects/XCode/OCTest/OCTest/CatchOCTestCase.h: -------------------------------------------------------------------------------- 1 | // 2 | // CatchOCTestCase.h 3 | // OCTest 4 | // 5 | // Created by Phil on 13/11/2010. 6 | // Copyright 2010 Two Blue Cubes Ltd. All rights reserved. 7 | // 8 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 9 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 10 | #ifndef TWOBLUECUBES_CATCHOCTESTCASE_H_INCLUDED 11 | #define TWOBLUECUBES_CATCHOCTESTCASE_H_INCLUDED 12 | 13 | #include "catch.hpp" 14 | 15 | #import 16 | #import "TestObj.h" 17 | 18 | @interface TestFixture : NSObject 19 | { 20 | TestObj* obj; 21 | } 22 | 23 | @end 24 | 25 | #endif // TWOBLUECUBES_CATCHOCTESTCASE_H_INCLUDED 26 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/projects/XCode/OCTest/OCTest/Main.mm: -------------------------------------------------------------------------------- 1 | #define CATCH_CONFIG_MAIN 2 | #import "catch.hpp" 3 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/projects/XCode/OCTest/OCTest/OCTest.mm: -------------------------------------------------------------------------------- 1 | /* 2 | * OCTest.mm 3 | * OCTest 4 | * 5 | * Created by Phil on 13/11/2010. 6 | * Copyright 2010 Two Blue Cubes Ltd. All rights reserved. 7 | * 8 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 9 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 10 | * 11 | */ 12 | 13 | #import "catch.hpp" 14 | 15 | #import "TestObj.h" 16 | 17 | TEST_CASE( "OCTest/TestObj", "tests TestObj" ) 18 | { 19 | TestObj* obj = [[TestObj alloc] init]; 20 | 21 | REQUIRE( obj.int_val == 0 ); 22 | 23 | obj.int_val = 1; 24 | 25 | REQUIRE( obj.int_val == 1 ); 26 | 27 | arcSafeRelease( obj ); 28 | } 29 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/projects/XCode/OCTest/OCTest/TestObj.h: -------------------------------------------------------------------------------- 1 | // 2 | // TestObj.h 3 | // OCTest 4 | // 5 | // Created by Phil on 13/11/2010. 6 | // Copyright 2010 Two Blue Cubes Ltd. All rights reserved. 7 | // 8 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 9 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 10 | #ifndef TWOBLUECUBES_TESTOBJ_H_INCLUDED 11 | #define TWOBLUECUBES_TESTOBJ_H_INCLUDED 12 | 13 | #import 14 | 15 | 16 | @interface TestObj : NSObject { 17 | 18 | int int_val; 19 | } 20 | 21 | -(BOOL) isTrue; 22 | -(BOOL) isFalse; 23 | 24 | @property (nonatomic, assign ) int int_val; 25 | 26 | @end 27 | 28 | #endif // TWOBLUECUBES_TESTOBJ_H_INCLUDED 29 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/projects/XCode/OCTest/OCTest/TestObj.m: -------------------------------------------------------------------------------- 1 | // 2 | // TestObj.m 3 | // OCTest 4 | // 5 | // Created by Phil on 13/11/2010. 6 | // Copyright 2010 Two Blue Cubes Ltd. All rights reserved. 7 | // 8 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 9 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 10 | 11 | #import "TestObj.h" 12 | 13 | 14 | @implementation TestObj 15 | 16 | @synthesize int_val; 17 | 18 | -(BOOL) isTrue { 19 | return YES; 20 | } 21 | -(BOOL) isFalse { 22 | return NO; 23 | } 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/scripts/developBuild.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | from __future__ import print_function 4 | import releaseCommon 5 | 6 | v = releaseCommon.Version() 7 | v.incrementBuildNumber() 8 | releaseCommon.performUpdates(v) 9 | 10 | print( "Updated Version.hpp, README and Conan to v{0}".format( v.getVersionString() ) ) 11 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/scripts/majorRelease.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | from __future__ import print_function 4 | import releaseCommon 5 | 6 | v = releaseCommon.Version() 7 | v.incrementMajorVersion() 8 | releaseCommon.performUpdates(v) 9 | 10 | print( "Updated Version.hpp, README and Conan to v{0}".format( v.getVersionString() ) ) 11 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/scripts/minorRelease.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | from __future__ import print_function 4 | import releaseCommon 5 | 6 | v = releaseCommon.Version() 7 | v.incrementMinorVersion() 8 | releaseCommon.performUpdates(v) 9 | 10 | print( "Updated Version.hpp, README and Conan to v{0}".format( v.getVersionString() ) ) 11 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/scripts/patchRelease.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | from __future__ import print_function 4 | import releaseCommon 5 | 6 | v = releaseCommon.Version() 7 | v.incrementPatchNumber() 8 | releaseCommon.performUpdates(v) 9 | 10 | print( "Updated Version.hpp, README and Conan to v{0}".format( v.getVersionString() ) ) 11 | -------------------------------------------------------------------------------- /vendor/binary-search-tree/vendor/Catch2/scripts/scriptCommon.py: -------------------------------------------------------------------------------- 1 | import os 2 | import sys 3 | import subprocess 4 | 5 | 6 | catchPath = os.path.dirname(os.path.realpath( os.path.dirname(sys.argv[0]))) 7 | 8 | def getBuildExecutable(): 9 | if os.name == 'nt': 10 | dir = os.environ.get('CATCH_DEV_OUT_DIR', "cmake-build-debug/projects/SelfTest.exe") 11 | return dir 12 | else: 13 | dir = os.environ.get('CATCH_DEV_OUT_DIR', "cmake-build-debug/projects/SelfTest") 14 | return dir 15 | 16 | 17 | def runAndCapture( args ): 18 | child = subprocess.Popen(" ".join( args ), shell=True, stdout=subprocess.PIPE) 19 | lines = [] 20 | line = "" 21 | while True: 22 | out = child.stdout.read(1) 23 | if out == '' and child.poll(): 24 | break 25 | if out != '': 26 | if out == '\n': 27 | lines.append( line ) 28 | line = "" 29 | else: 30 | line = line + out 31 | return lines 32 | -------------------------------------------------------------------------------- /vendor/cpptqdm/README.md: -------------------------------------------------------------------------------- 1 | # cpptqdm 2 | 3 | A clone of the Python `tqdm` package in C++. 4 | 5 | ## Usage 6 | 7 | ```cpp 8 | #include "tqdm.hpp" 9 | 10 | tqdm bar(N); 11 | for (int i = 0; i < N; ++i) { 12 | bar.update(); 13 | // do work 14 | } 15 | ``` 16 | 17 | ## Aesthetic 18 | 19 | By default, the progress bar matches the theme of `tqdm`. 20 | 21 | ``` 22 | 20%|████████ | 200288/1000000 [00:00<00:03, 233793it/s] 23 | ``` 24 | 25 | ## Demo 26 | 27 | To demonstrate the progress bar (and all themes), run the following: 28 | 29 | ```shell 30 | g++ test.cpp -std=c++11 && ./a.out 31 | ``` 32 | 33 | ## FAQ 34 | 35 | ### Won't this slow down my loops? 36 | 37 | If your loops are faster than ~200MHz, then maybe! 38 | -------------------------------------------------------------------------------- /vendor/cpptqdm/test.cpp: -------------------------------------------------------------------------------- 1 | // A test file for tqdm progress bar clone. 2 | // 3 | // 4 | 5 | #include 6 | #include "include/tqdm.hpp" 7 | 8 | // the themes to demo 9 | auto themes = { 10 | "default", 11 | "vertical", 12 | "basic", 13 | "braille", 14 | "braille_spin", 15 | "line" 16 | }; 17 | 18 | int main() { 19 | int N = 1000000; 20 | for (auto theme : themes) { 21 | std::cout << theme << std::endl; 22 | tqdm bar(N, "it", theme); 23 | for (int i = 0; i < N; ++i) { 24 | bar.update(); 25 | // do work 26 | usleep(1); 27 | } 28 | } 29 | return 0; 30 | } 31 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/.clang_complete: -------------------------------------------------------------------------------- 1 | -Iinclude 2 | -Ivendor/Catch2/single_include/catch2 3 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "vendor/Catch2"] 2 | path = vendor/Catch2 3 | url = https://github.com/catchorg/Catch2 4 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/.travis.yml: -------------------------------------------------------------------------------- 1 | --- 2 | language: python # this works for Linux but is an error on macOS or Windows 3 | matrix: 4 | include: 5 | - name: "Ubuntu 14.04" 6 | python: 3.5 7 | before_install: pip3 install scons 8 | - name: "Ubuntu 16.04" 9 | python: 3.5 10 | dist: xenial 11 | before_install: pip3 install scons 12 | - name: "macOS 10.14 (Xcode 10.2)" 13 | os: osx 14 | osx_image: xcode10.2 15 | language: shell 16 | before_install: brew install scons 17 | # - name: "Windows 10" 18 | # os: windows 19 | # language: shell 20 | # before_install: choco install python 21 | # env: PATH=/c/Python37:/c/Python37/Scripts:$PATH 22 | # script: 23 | # - echo "TODO" 24 | # install: 25 | # - pip3 install -r requirements.txt 26 | script: 27 | - scons test 28 | - scons 29 | notifications: 30 | email: false 31 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/README.md: -------------------------------------------------------------------------------- 1 | # Doubly Linked List 2 | 3 | [![build-status][]][build-server] 4 | 5 | [build-status]: https://travis-ci.com/Kautenja/doubly-linked-list.svg 6 | [build-server]: https://travis-ci.com/Kautenja/doubly-linked-list 7 | 8 | # Roadmap 9 | 10 | - [x] push back 11 | - [x] append 12 | - [x] remove 13 | - [x] is_empty 14 | - [x] count 15 | - [ ] find 16 | 17 | # Usage 18 | 19 | Simply add [include/doubly_linked_list.hpp](include/doubly_linked_list.hpp) to 20 | your C++ project either by copying directly or using git submodules. 21 | 22 | ## Testing 23 | 24 | To compile and run the [test suite](test): 25 | 26 | ```shell 27 | scons test 28 | ``` 29 | 30 | ## Benchmarking 31 | 32 | To run benchmarks: 33 | 34 | ```shell 35 | scons benchmark/benchmark_dll.cpp 36 | ``` 37 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/benchmark/benchmark_dll.cpp: -------------------------------------------------------------------------------- 1 | #define CATCH_CONFIG_MAIN 2 | #define CATCH_CONFIG_ENABLE_BENCHMARKING 3 | #include 4 | #include 5 | #include "catch.hpp" 6 | #include "doubly_linked_list.hpp" 7 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/test/.gitignore: -------------------------------------------------------------------------------- 1 | main.cpp 2 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/.conan/test_package/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.2.0) 2 | project(test_package CXX) 3 | 4 | include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake) 5 | conan_basic_setup(TARGETS) 6 | 7 | find_package(Catch2 REQUIRED CONFIG) 8 | 9 | add_executable(${PROJECT_NAME} test_package.cpp) 10 | target_link_libraries(${PROJECT_NAME} CONAN_PKG::Catch2) 11 | set_target_properties(${PROJECT_NAME} PROPERTIES CXX_STANDARD 11) 12 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/.conan/test_package/conanfile.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | from conans import ConanFile, CMake 4 | import os 5 | 6 | 7 | class TestPackageConan(ConanFile): 8 | settings = "os", "compiler", "build_type", "arch" 9 | generators = "cmake" 10 | 11 | def build(self): 12 | cmake = CMake(self) 13 | cmake.configure() 14 | cmake.build() 15 | 16 | def test(self): 17 | assert os.path.isfile(os.path.join(self.deps_cpp_info["Catch2"].rootpath, "licenses", "LICENSE.txt")) 18 | bin_path = os.path.join("bin", "test_package") 19 | self.run("%s -s" % bin_path, run_environment=True) 20 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/.conan/test_package/test_package.cpp: -------------------------------------------------------------------------------- 1 | #define CATCH_CONFIG_MAIN 2 | 3 | #include 4 | 5 | int Factorial( int number ) { 6 | return number <= 1 ? 1 : Factorial( number - 1 ) * number; 7 | } 8 | 9 | TEST_CASE( "Factorial Tests", "[single-file]" ) { 10 | REQUIRE( Factorial(0) == 1 ); 11 | REQUIRE( Factorial(1) == 1 ); 12 | REQUIRE( Factorial(2) == 2 ); 13 | REQUIRE( Factorial(3) == 6 ); 14 | REQUIRE( Factorial(10) == 3628800 ); 15 | } -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/.gitattributes: -------------------------------------------------------------------------------- 1 | # This sets the default behaviour, overriding core.autocrlf 2 | * text=auto 3 | 4 | # All source files should have unix line-endings in the repository, 5 | # but convert to native line-endings on checkout 6 | *.cpp text 7 | *.h text 8 | *.hpp text 9 | 10 | # Windows specific files should retain windows line-endings 11 | *.sln text eol=crlf 12 | 13 | # Keep executable scripts with LFs so they can be run after being 14 | # checked out on Windows 15 | *.py text eol=lf 16 | 17 | 18 | # Keep the single include header with LFs to make sure it is uploaded, 19 | # hashed etc with LF 20 | single_include/**/*.hpp eol=lf 21 | # Also keep the LICENCE file with LFs for the same reason 22 | LICENCE.txt eol=lf 23 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | patreon: horenmar 2 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create an issue that documents a bug 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **Expected behavior** 14 | A clear and concise description of what you expected to happen. 15 | 16 | **Reproduction steps** 17 | Steps to reproduce the bug. 18 | 19 | 20 | 21 | **Platform information:** 22 | 23 | - OS: **Windows NT** 24 | - Compiler+version: **GCC v2.9.5** 25 | - Catch version: **v1.2.3** 26 | 27 | 28 | **Additional context** 29 | Add any other context about the problem here. 30 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Create an issue that requests a feature or other improvement 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Description** 11 | Describe the feature/change you request and why do you want it. 12 | 13 | **Additional context** 14 | Add any other context or screenshots about the feature request here. 15 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/.gitignore: -------------------------------------------------------------------------------- 1 | *.build 2 | *.pbxuser 3 | *.mode1v3 4 | *.ncb 5 | *.suo 6 | Debug 7 | Release 8 | *.user 9 | *.xcuserstate 10 | .DS_Store 11 | xcuserdata 12 | CatchSelfTest.xcscheme 13 | Breakpoints.xcbkptlist 14 | projects/VS2010/TestCatch/_UpgradeReport_Files/ 15 | projects/VS2010/TestCatch/TestCatch/TestCatch.vcxproj.filters 16 | projects/VisualStudio/TestCatch/UpgradeLog.XML 17 | projects/CMake/.idea 18 | projects/CMake/cmake-build-debug 19 | UpgradeLog.XML 20 | Resources/DWARF 21 | projects/Generated 22 | *.pyc 23 | DerivedData 24 | *.xccheckout 25 | Build 26 | .idea 27 | .vs 28 | cmake-build-* 29 | benchmark-dir 30 | .conan/test_package/build 31 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/CMake/Catch2Config.cmake.in: -------------------------------------------------------------------------------- 1 | @PACKAGE_INIT@ 2 | 3 | 4 | # Avoid repeatedly including the targets 5 | if(NOT TARGET Catch2::Catch2) 6 | # Provide path for scripts 7 | list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}") 8 | 9 | include(${CMAKE_CURRENT_LIST_DIR}/Catch2Targets.cmake) 10 | endif() 11 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/CMake/catch2.pc.in: -------------------------------------------------------------------------------- 1 | includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@ 2 | 3 | Name: Catch2 4 | Description: A modern, C++-native, header-only, test framework for C++11 5 | URL: https://github.com/catchorg/Catch2 6 | Version: @Catch2_VERSION@ 7 | Cflags: -I${includedir} 8 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/artwork/catch2-c-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kautenja/limit-order-book/88416a12a0b34b026cbf1d598823fd315a1f2dbf/vendor/doubly-linked-list/vendor/Catch2/artwork/catch2-c-logo.png -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/artwork/catch2-hand-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kautenja/limit-order-book/88416a12a0b34b026cbf1d598823fd315a1f2dbf/vendor/doubly-linked-list/vendor/Catch2/artwork/catch2-hand-logo.png -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/artwork/catch2-logo-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kautenja/limit-order-book/88416a12a0b34b026cbf1d598823fd315a1f2dbf/vendor/doubly-linked-list/vendor/Catch2/artwork/catch2-logo-small.png -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/codecov.yml: -------------------------------------------------------------------------------- 1 | coverage: 2 | precision: 2 3 | round: nearest 4 | range: "60...90" 5 | status: 6 | project: 7 | default: 8 | threshold: 2% 9 | patch: 10 | default: 11 | target: 80% 12 | ignore: 13 | - "projects/SelfTest" 14 | - "**/catch_reporter_tap.hpp" 15 | - "**/catch_reporter_automake.hpp" 16 | - "**/catch_reporter_teamcity.hpp" 17 | - "**/external/clara.hpp" 18 | 19 | 20 | codecov: 21 | branch: master 22 | 23 | comment: 24 | layout: "diff" 25 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/contrib/gdbinit: -------------------------------------------------------------------------------- 1 | # 2 | # This file provides a way to skip stepping into Catch code when debugging with gdb. 3 | # 4 | # With the gdb "skip" command you can tell gdb to skip files or functions during debugging. 5 | # see https://xaizek.github.io/2016-05-26/skipping-standard-library-in-gdb/ for an example 6 | # 7 | # Basically the following line tells gdb to skip all functions containing the 8 | # regexp "Catch", which matches the complete Catch namespace. 9 | # If you want to skip just some parts of the Catch code you can modify the 10 | # regexp accordingly. 11 | # 12 | # If you want to permanently skip stepping into Catch code copy the following 13 | # line into your ~/.gdbinit file 14 | # 15 | 16 | skip -rfu Catch 17 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/contrib/lldbinit: -------------------------------------------------------------------------------- 1 | # 2 | # This file provides a way to skip stepping into Catch code when debugging with lldb. 3 | # 4 | # With the setting "target.process.thread.step-avoid-regexp" you can tell lldb 5 | # to skip functions matching the regexp 6 | # 7 | # Basically the following line tells lldb to skip all functions containing the 8 | # regexp "Catch", which matches the complete Catch namespace. 9 | # If you want to skip just some parts of the Catch code you can modify the 10 | # regexp accordingly. 11 | # 12 | # If you want to permanently skip stepping into Catch code copy the following 13 | # line into your ~/.lldbinit file 14 | # 15 | 16 | settings set target.process.thread.step-avoid-regexp Catch -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/examples/000-CatchMain.cpp: -------------------------------------------------------------------------------- 1 | // 000-CatchMain.cpp 2 | 3 | // In a Catch project with multiple files, dedicate one file to compile the 4 | // source code of Catch itself and reuse the resulting object file for linking. 5 | 6 | // Let Catch provide main(): 7 | #define CATCH_CONFIG_MAIN 8 | 9 | #include 10 | 11 | // That's it 12 | 13 | // Compile implementation of Catch for use with files that do contain tests: 14 | // - g++ -std=c++11 -Wall -I$(CATCH_SINGLE_INCLUDE) -c 000-CatchMain.cpp 15 | // - cl -EHsc -I%CATCH_SINGLE_INCLUDE% -c 000-CatchMain.cpp 16 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/include/catch_with_main.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Phil on 01/11/2010. 3 | * Copyright 2010 Two Blue Cubes Ltd. All rights reserved. 4 | * 5 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 6 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 | */ 8 | #ifndef TWOBLUECUBES_CATCH_WITH_MAIN_HPP_INCLUDED 9 | #define TWOBLUECUBES_CATCH_WITH_MAIN_HPP_INCLUDED 10 | 11 | #define CATCH_CONFIG_MAIN 12 | #include "catch.hpp" 13 | 14 | #endif // TWOBLUECUBES_CATCH_WITH_MAIN_HPP_INCLUDED 15 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/include/internal/catch_commandline.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Phil on 02/11/2010. 3 | * Copyright 2010 Two Blue Cubes Ltd. All rights reserved. 4 | * 5 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 6 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 | */ 8 | #ifndef TWOBLUECUBES_CATCH_COMMANDLINE_HPP_INCLUDED 9 | #define TWOBLUECUBES_CATCH_COMMANDLINE_HPP_INCLUDED 10 | 11 | #include "catch_config.hpp" 12 | #include "catch_clara.h" 13 | 14 | namespace Catch { 15 | 16 | clara::Parser makeCommandLineParser( ConfigData& config ); 17 | 18 | } // end namespace Catch 19 | 20 | #endif // TWOBLUECUBES_CATCH_COMMANDLINE_HPP_INCLUDED 21 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/include/internal/catch_debug_console.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Martin on 29/08/2017. 3 | * 4 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 5 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | * 7 | */ 8 | 9 | #include "catch_debug_console.h" 10 | #include "catch_stream.h" 11 | #include "catch_platform.h" 12 | #include "catch_windows_h_proxy.h" 13 | 14 | #ifdef CATCH_PLATFORM_WINDOWS 15 | 16 | namespace Catch { 17 | void writeToDebugConsole( std::string const& text ) { 18 | ::OutputDebugStringA( text.c_str() ); 19 | } 20 | } 21 | 22 | #else 23 | 24 | namespace Catch { 25 | void writeToDebugConsole( std::string const& text ) { 26 | // !TBD: Need a version for Mac/ XCode and other IDEs 27 | Catch::cout() << text; 28 | } 29 | } 30 | 31 | #endif // Platform 32 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/include/internal/catch_debug_console.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Martin on 29/08/2017. 3 | * 4 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 5 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | * 7 | */ 8 | #ifndef TWOBLUECUBES_CATCH_DEBUG_CONSOLE_H_INCLUDED 9 | #define TWOBLUECUBES_CATCH_DEBUG_CONSOLE_H_INCLUDED 10 | 11 | #include 12 | 13 | namespace Catch { 14 | void writeToDebugConsole( std::string const& text ); 15 | } 16 | 17 | #endif // TWOBLUECUBES_CATCH_DEBUG_CONSOLE_H_INCLUDED 18 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/include/internal/catch_decomposer.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Phil Nash on 8/8/2017. 3 | * Copyright 2017 Two Blue Cubes Ltd. All rights reserved. 4 | * 5 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 6 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 | */ 8 | 9 | #include "catch_decomposer.h" 10 | #include "catch_config.hpp" 11 | 12 | namespace Catch { 13 | 14 | ITransientExpression::~ITransientExpression() = default; 15 | 16 | void formatReconstructedExpression( std::ostream &os, std::string const& lhs, StringRef op, std::string const& rhs ) { 17 | if( lhs.size() + rhs.size() < 40 && 18 | lhs.find('\n') == std::string::npos && 19 | rhs.find('\n') == std::string::npos ) 20 | os << lhs << " " << op << " " << rhs; 21 | else 22 | os << lhs << "\n" << op << "\n" << rhs; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/include/internal/catch_errno_guard.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Martin on 06/03/2017. 3 | * 4 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 5 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | */ 7 | 8 | #include "catch_errno_guard.h" 9 | 10 | #include 11 | 12 | namespace Catch { 13 | ErrnoGuard::ErrnoGuard():m_oldErrno(errno){} 14 | ErrnoGuard::~ErrnoGuard() { errno = m_oldErrno; } 15 | } 16 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/include/internal/catch_errno_guard.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Martin on 06/03/2017. 3 | * 4 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 5 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | */ 7 | #ifndef TWOBLUECUBES_CATCH_ERRNO_GUARD_H_INCLUDED 8 | #define TWOBLUECUBES_CATCH_ERRNO_GUARD_H_INCLUDED 9 | 10 | namespace Catch { 11 | 12 | class ErrnoGuard { 13 | public: 14 | ErrnoGuard(); 15 | ~ErrnoGuard(); 16 | private: 17 | int m_oldErrno; 18 | }; 19 | 20 | } 21 | 22 | #endif // TWOBLUECUBES_CATCH_ERRNO_GUARD_H_INCLUDED 23 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/include/internal/catch_external_interfaces.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Martin on 17/08/2017. 3 | * 4 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 5 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | */ 7 | #ifndef TWOBLUECUBES_CATCH_EXTERNAL_INTERFACES_H_INCLUDED 8 | #define TWOBLUECUBES_CATCH_EXTERNAL_INTERFACES_H_INCLUDED 9 | 10 | #include "../reporters/catch_reporter_bases.hpp" 11 | #include "catch_console_colour.h" 12 | #include "catch_reporter_registrars.hpp" 13 | 14 | // Allow users to base their work off existing reporters 15 | #include "../reporters/catch_reporter_compact.h" 16 | #include "../reporters/catch_reporter_console.h" 17 | #include "../reporters/catch_reporter_junit.h" 18 | #include "../reporters/catch_reporter_xml.h" 19 | 20 | #endif // TWOBLUECUBES_CATCH_EXTERNAL_INTERFACES_H_INCLUDED 21 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/include/internal/catch_generators.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Phil Nash on 15/6/2018. 3 | * 4 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 5 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | */ 7 | 8 | #include "catch_generators.hpp" 9 | #include "catch_random_number_generator.h" 10 | #include "catch_interfaces_capture.h" 11 | 12 | #include 13 | #include 14 | 15 | namespace Catch { 16 | 17 | IGeneratorTracker::~IGeneratorTracker() {} 18 | 19 | const char* GeneratorException::what() const noexcept { 20 | return m_msg; 21 | } 22 | 23 | namespace Generators { 24 | 25 | GeneratorUntypedBase::~GeneratorUntypedBase() {} 26 | 27 | auto acquireGeneratorTracker( SourceLineInfo const& lineInfo ) -> IGeneratorTracker& { 28 | return getResultCapture().acquireGeneratorTracker( lineInfo ); 29 | } 30 | 31 | } // namespace Generators 32 | } // namespace Catch 33 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/include/internal/catch_interfaces_capture.cpp: -------------------------------------------------------------------------------- 1 | #include "catch_interfaces_capture.h" 2 | 3 | namespace Catch { 4 | IResultCapture::~IResultCapture() = default; 5 | } 6 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/include/internal/catch_interfaces_config.cpp: -------------------------------------------------------------------------------- 1 | #include "internal/catch_interfaces_config.h" 2 | 3 | namespace Catch { 4 | IConfig::~IConfig() = default; 5 | } 6 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/include/internal/catch_interfaces_exception.cpp: -------------------------------------------------------------------------------- 1 | #include "internal/catch_interfaces_exception.h" 2 | 3 | namespace Catch { 4 | IExceptionTranslator::~IExceptionTranslator() = default; 5 | IExceptionTranslatorRegistry::~IExceptionTranslatorRegistry() = default; 6 | } 7 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/include/internal/catch_interfaces_registry_hub.cpp: -------------------------------------------------------------------------------- 1 | #include "internal/catch_interfaces_registry_hub.h" 2 | 3 | namespace Catch { 4 | IRegistryHub::~IRegistryHub() = default; 5 | IMutableRegistryHub::~IMutableRegistryHub() = default; 6 | } 7 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/include/internal/catch_interfaces_runner.cpp: -------------------------------------------------------------------------------- 1 | #include "internal/catch_interfaces_runner.h" 2 | 3 | namespace Catch { 4 | IRunner::~IRunner() = default; 5 | } 6 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/include/internal/catch_interfaces_runner.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Phil on 07/01/2011. 3 | * Copyright 2011 Two Blue Cubes Ltd. All rights reserved. 4 | * 5 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 6 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 | */ 8 | #ifndef TWOBLUECUBES_CATCH_INTERFACES_RUNNER_H_INCLUDED 9 | #define TWOBLUECUBES_CATCH_INTERFACES_RUNNER_H_INCLUDED 10 | 11 | namespace Catch { 12 | 13 | struct IRunner { 14 | virtual ~IRunner(); 15 | virtual bool aborting() const = 0; 16 | }; 17 | } 18 | 19 | #endif // TWOBLUECUBES_CATCH_INTERFACES_RUNNER_H_INCLUDED 20 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/include/internal/catch_interfaces_testcase.cpp: -------------------------------------------------------------------------------- 1 | #include "internal/catch_interfaces_testcase.h" 2 | 3 | namespace Catch { 4 | ITestInvoker::~ITestInvoker() = default; 5 | ITestCaseRegistry::~ITestCaseRegistry() = default; 6 | } 7 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/include/internal/catch_leak_detector.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Martin on 12/07/2017. 3 | * 4 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 5 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | */ 7 | #ifndef TWOBLUECUBES_CATCH_LEAK_DETECTOR_H_INCLUDED 8 | #define TWOBLUECUBES_CATCH_LEAK_DETECTOR_H_INCLUDED 9 | 10 | namespace Catch { 11 | 12 | struct LeakDetector { 13 | LeakDetector(); 14 | ~LeakDetector(); 15 | }; 16 | 17 | } 18 | #endif // TWOBLUECUBES_CATCH_LEAK_DETECTOR_H_INCLUDED 19 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/include/internal/catch_matchers.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Phil Nash on 19/07/2017. 3 | * 4 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 5 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | */ 7 | 8 | #include "catch_matchers.h" 9 | 10 | namespace Catch { 11 | namespace Matchers { 12 | namespace Impl { 13 | 14 | std::string MatcherUntypedBase::toString() const { 15 | if( m_cachedToString.empty() ) 16 | m_cachedToString = describe(); 17 | return m_cachedToString; 18 | } 19 | 20 | MatcherUntypedBase::~MatcherUntypedBase() = default; 21 | 22 | } // namespace Impl 23 | } // namespace Matchers 24 | 25 | using namespace Matchers; 26 | using Matchers::Impl::MatcherBase; 27 | 28 | } // namespace Catch 29 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/include/internal/catch_matchers_generic.cpp: -------------------------------------------------------------------------------- 1 | #include "catch_matchers_generic.hpp" 2 | 3 | std::string Catch::Matchers::Generic::Detail::finalizeDescription(const std::string& desc) { 4 | if (desc.empty()) { 5 | return "matches undescribed predicate"; 6 | } else { 7 | return "matches predicate: \"" + desc + '"'; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/include/internal/catch_platform.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Phil on 16/8/2013. 3 | * Copyright 2013 Two Blue Cubes Ltd. All rights reserved. 4 | * 5 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 6 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 | * 8 | */ 9 | #ifndef TWOBLUECUBES_CATCH_PLATFORM_H_INCLUDED 10 | #define TWOBLUECUBES_CATCH_PLATFORM_H_INCLUDED 11 | 12 | #ifdef __APPLE__ 13 | # include 14 | # if TARGET_OS_OSX == 1 15 | # define CATCH_PLATFORM_MAC 16 | # elif TARGET_OS_IPHONE == 1 17 | # define CATCH_PLATFORM_IPHONE 18 | # endif 19 | 20 | #elif defined(linux) || defined(__linux) || defined(__linux__) 21 | # define CATCH_PLATFORM_LINUX 22 | 23 | #elif defined(WIN32) || defined(__WIN32__) || defined(_WIN32) || defined(_MSC_VER) || defined(__MINGW32__) 24 | # define CATCH_PLATFORM_WINDOWS 25 | #endif 26 | 27 | #endif // TWOBLUECUBES_CATCH_PLATFORM_H_INCLUDED 28 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/include/internal/catch_polyfills.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Martin on 17/11/2017. 3 | * 4 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 5 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | */ 7 | 8 | #include "catch_polyfills.hpp" 9 | 10 | #include 11 | 12 | namespace Catch { 13 | 14 | #if !defined(CATCH_CONFIG_POLYFILL_ISNAN) 15 | bool isnan(float f) { 16 | return std::isnan(f); 17 | } 18 | bool isnan(double d) { 19 | return std::isnan(d); 20 | } 21 | #else 22 | // For now we only use this for embarcadero 23 | bool isnan(float f) { 24 | return std::_isnan(f); 25 | } 26 | bool isnan(double d) { 27 | return std::_isnan(d); 28 | } 29 | #endif 30 | 31 | } // end namespace Catch 32 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/include/internal/catch_polyfills.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Martin on 17/11/2017. 3 | * 4 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 5 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | */ 7 | #ifndef TWOBLUECUBES_CATCH_POLYFILLS_HPP_INCLUDED 8 | #define TWOBLUECUBES_CATCH_POLYFILLS_HPP_INCLUDED 9 | 10 | namespace Catch { 11 | bool isnan(float f); 12 | bool isnan(double d); 13 | } 14 | 15 | #endif // TWOBLUECUBES_CATCH_POLYFILLS_HPP_INCLUDED 16 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/include/internal/catch_random_number_generator.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Martin on 30/08/2017. 3 | * 4 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 5 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | */ 7 | 8 | #include "catch_random_number_generator.h" 9 | #include "catch_context.h" 10 | #include "catch_interfaces_config.h" 11 | 12 | namespace Catch { 13 | 14 | std::mt19937& rng() { 15 | static std::mt19937 s_rng; 16 | return s_rng; 17 | } 18 | 19 | void seedRng( IConfig const& config ) { 20 | if( config.rngSeed() != 0 ) { 21 | std::srand( config.rngSeed() ); 22 | rng().seed( config.rngSeed() ); 23 | } 24 | } 25 | 26 | unsigned int rngSeed() { 27 | return getCurrentContext().getConfig()->rngSeed(); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/include/internal/catch_random_number_generator.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Martin on 30/08/2017. 3 | * 4 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 5 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | */ 7 | #ifndef TWOBLUECUBES_CATCH_RANDOM_NUMBER_GENERATOR_H_INCLUDED 8 | #define TWOBLUECUBES_CATCH_RANDOM_NUMBER_GENERATOR_H_INCLUDED 9 | 10 | #include 11 | #include 12 | 13 | namespace Catch { 14 | 15 | struct IConfig; 16 | 17 | std::mt19937& rng(); 18 | void seedRng( IConfig const& config ); 19 | unsigned int rngSeed(); 20 | 21 | } 22 | 23 | #endif // TWOBLUECUBES_CATCH_RANDOM_NUMBER_GENERATOR_H_INCLUDED 24 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/include/internal/catch_reenable_warnings.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Two Blue Cubes Ltd 3 | * 4 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 5 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | */ 7 | 8 | #ifndef TWOBLUECUBES_CATCH_REENABLE_WARNINGS_H_INCLUDED 9 | #define TWOBLUECUBES_CATCH_REENABLE_WARNINGS_H_INCLUDED 10 | 11 | #ifdef __clang__ 12 | # ifdef __ICC // icpc defines the __clang__ macro 13 | # pragma warning(pop) 14 | # else 15 | # pragma clang diagnostic pop 16 | # endif 17 | #elif defined __GNUC__ 18 | # pragma GCC diagnostic pop 19 | #endif 20 | 21 | #endif // TWOBLUECUBES_CATCH_REENABLE_WARNINGS_H_INCLUDED 22 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/include/internal/catch_section_info.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Martin on 01/08/2017. 3 | * 4 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 5 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | */ 7 | 8 | #include "catch_section_info.h" 9 | 10 | namespace Catch { 11 | 12 | SectionInfo::SectionInfo 13 | ( SourceLineInfo const& _lineInfo, 14 | std::string const& _name ) 15 | : name( _name ), 16 | lineInfo( _lineInfo ) 17 | {} 18 | 19 | } // end namespace Catch 20 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/include/internal/catch_startup_exception_registry.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Martin on 04/06/2017. 3 | * Copyright 2017 Two Blue Cubes Ltd. All rights reserved. 4 | * 5 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 6 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 | */ 8 | #ifndef TWOBLUECUBES_CATCH_STARTUP_EXCEPTION_REGISTRY_H_INCLUDED 9 | #define TWOBLUECUBES_CATCH_STARTUP_EXCEPTION_REGISTRY_H_INCLUDED 10 | 11 | 12 | #include 13 | #include 14 | 15 | namespace Catch { 16 | 17 | class StartupExceptionRegistry { 18 | public: 19 | void add(std::exception_ptr const& exception) noexcept; 20 | std::vector const& getExceptions() const noexcept; 21 | private: 22 | std::vector m_exceptions; 23 | }; 24 | 25 | } // end namespace Catch 26 | 27 | #endif // TWOBLUECUBES_CATCH_STARTUP_EXCEPTION_REGISTRY_H_INCLUDED 28 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/include/internal/catch_tag_alias.cpp: -------------------------------------------------------------------------------- 1 | #include "catch_tag_alias.h" 2 | 3 | namespace Catch { 4 | TagAlias::TagAlias(std::string const & _tag, SourceLineInfo _lineInfo): tag(_tag), lineInfo(_lineInfo) {} 5 | } 6 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/include/internal/catch_tag_alias.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Phil on 27/6/2014. 3 | * Copyright 2014 Two Blue Cubes Ltd. All rights reserved. 4 | * 5 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 6 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 | */ 8 | #ifndef TWOBLUECUBES_CATCH_TAG_ALIAS_H_INCLUDED 9 | #define TWOBLUECUBES_CATCH_TAG_ALIAS_H_INCLUDED 10 | 11 | #include "catch_common.h" 12 | 13 | #include 14 | 15 | namespace Catch { 16 | 17 | struct TagAlias { 18 | TagAlias(std::string const& _tag, SourceLineInfo _lineInfo); 19 | 20 | std::string tag; 21 | SourceLineInfo lineInfo; 22 | }; 23 | 24 | } // end namespace Catch 25 | 26 | #endif // TWOBLUECUBES_CATCH_TAG_ALIAS_H_INCLUDED 27 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/include/internal/catch_tag_alias_autoregistrar.cpp: -------------------------------------------------------------------------------- 1 | #include "catch_tag_alias_autoregistrar.h" 2 | #include "catch_compiler_capabilities.h" 3 | #include "catch_interfaces_registry_hub.h" 4 | 5 | namespace Catch { 6 | 7 | RegistrarForTagAliases::RegistrarForTagAliases(char const* alias, char const* tag, SourceLineInfo const& lineInfo) { 8 | CATCH_TRY { 9 | getMutableRegistryHub().registerTagAlias(alias, tag, lineInfo); 10 | } CATCH_CATCH_ALL { 11 | // Do not throw when constructing global objects, instead register the exception to be processed later 12 | getMutableRegistryHub().registerStartupException(); 13 | } 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/include/internal/catch_text.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Phil on 10/2/2014. 3 | * Copyright 2014 Two Blue Cubes Ltd. All rights reserved. 4 | * 5 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 6 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 | */ 8 | #ifndef TWOBLUECUBES_CATCH_TEXT_H_INCLUDED 9 | #define TWOBLUECUBES_CATCH_TEXT_H_INCLUDED 10 | 11 | #include "catch_clara.h" 12 | 13 | namespace Catch { 14 | using namespace clara::TextFlow; 15 | } 16 | 17 | #endif // TWOBLUECUBES_CATCH_TEXT_H_INCLUDED 18 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/include/internal/catch_to_string.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Martin on 9/5/2018. 3 | * 4 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 5 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | */ 7 | #ifndef TWOBLUECUBES_CATCH_TO_STRING_H_INCLUDED 8 | #define TWOBLUECUBES_CATCH_TO_STRING_H_INCLUDED 9 | 10 | #include 11 | 12 | #include "catch_compiler_capabilities.h" 13 | #include "catch_stream.h" 14 | 15 | namespace Catch { 16 | template 17 | std::string to_string(T const& t) { 18 | #if defined(CATCH_CONFIG_CPP11_TO_STRING) 19 | return std::to_string(t); 20 | #else 21 | ReusableStringStream rss; 22 | rss << t; 23 | return rss.str(); 24 | #endif 25 | } 26 | } // end namespace Catch 27 | 28 | #endif // TWOBLUECUBES_CATCH_TO_STRING_H_INCLUDED 29 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/include/internal/catch_uncaught_exceptions.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Josh on 1/2/2018. 3 | * Copyright 2018 Two Blue Cubes Ltd. All rights reserved. 4 | * 5 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 6 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 | */ 8 | 9 | #include "catch_compiler_capabilities.h" 10 | #include "catch_uncaught_exceptions.h" 11 | #include 12 | 13 | namespace Catch { 14 | bool uncaught_exceptions() { 15 | #if defined(CATCH_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS) 16 | return std::uncaught_exceptions() > 0; 17 | #else 18 | return std::uncaught_exception(); 19 | #endif 20 | } 21 | } // end namespace Catch 22 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/include/internal/catch_uncaught_exceptions.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Josh on 1/2/2018. 3 | * Copyright 2018 Two Blue Cubes Ltd. All rights reserved. 4 | * 5 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 6 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 | */ 8 | #ifndef TWOBLUECUBES_CATCH_UNCAUGHT_EXCEPTIONS_H_INCLUDED 9 | #define TWOBLUECUBES_CATCH_UNCAUGHT_EXCEPTIONS_H_INCLUDED 10 | 11 | namespace Catch { 12 | bool uncaught_exceptions(); 13 | } // end namespace Catch 14 | 15 | #endif // TWOBLUECUBES_CATCH_UNCAUGHT_EXCEPTIONS_H_INCLUDED 16 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/include/internal/catch_user_interfaces.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Martin on 21/11/2017. 3 | * 4 | * This file collects declaration that we want to expose to test files. 5 | * These declarations are expected to be duplicated elsewhere, 6 | * together with their implementation. 7 | * 8 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 9 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 10 | */ 11 | #ifndef TWOBLUECUBES_CATCH_USER_INTERFACES_H_INCLUDED 12 | #define TWOBLUECUBES_CATCH_USER_INTERFACES_H_INCLUDED 13 | 14 | namespace Catch { 15 | unsigned int rngSeed(); 16 | } 17 | 18 | #endif // TWOBLUECUBES_CATCH_USER_INTERFACES_H_INCLUDED 19 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/misc/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.0) 2 | 3 | project(CatchCoverageHelper) 4 | 5 | add_executable(CoverageHelper coverage-helper.cpp) 6 | set_property(TARGET CoverageHelper PROPERTY CXX_STANDARD 11) 7 | set_property(TARGET CoverageHelper PROPERTY CXX_STANDARD_REQUIRED ON) 8 | set_property(TARGET CoverageHelper PROPERTY CXX_EXTENSIONS OFF) 9 | if (MSVC) 10 | target_compile_options( CoverageHelper PRIVATE /W4 /w44265 /WX /w44061 /w44062 ) 11 | endif() 12 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/misc/appveyorMergeCoverageScript.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python2 2 | 3 | import glob 4 | import subprocess 5 | 6 | if __name__ == '__main__': 7 | cov_files = list(glob.glob('cov-report*.bin')) 8 | base_cmd = ['OpenCppCoverage', '--quiet', '--export_type=cobertura:cobertura.xml'] + ['--input_coverage={}'.format(f) for f in cov_files] 9 | subprocess.call(base_cmd) 10 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/misc/appveyorTestRunScript.bat: -------------------------------------------------------------------------------- 1 | SETLOCAL EnableDelayedExpansion 2 | 3 | cd Build 4 | if "%CONFIGURATION%"=="Debug" ( 5 | if "%coverage%"=="1" ( 6 | ctest -j 2 -C %CONFIGURATION% -D ExperimentalMemCheck || exit /b !ERRORLEVEL! 7 | python ..\misc\appveyorMergeCoverageScript.py || exit /b !ERRORLEVEL! 8 | codecov --root .. --no-color --disable gcov -f cobertura.xml -t %CODECOV_TOKEN% || exit /b !ERRORLEVEL! 9 | ) else ( 10 | ctest -j 2 -C %CONFIGURATION% || exit /b !ERRORLEVEL! 11 | ) 12 | ) 13 | if "%CONFIGURATION%"=="Release" ( 14 | ctest -j 2 -C %CONFIGURATION% || exit /b !ERRORLEVEL! 15 | ) 16 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/projects/ExtraTests/ToDo.txt: -------------------------------------------------------------------------------- 1 | Configuration options that are left default and thus are not properly tested 2 | yet: 3 | 4 | CATCH_CONFIG_COUNTER // Use __COUNTER__ to generate unique names for test cases 5 | CATCH_CONFIG_WINDOWS_SEH // Enable SEH handling on Windows 6 | CATCH_CONFIG_FAST_COMPILE // Sacrifices some (rather minor) features for compilation speed 7 | CATCH_CONFIG_DISABLE_MATCHERS // Do not compile Matchers in this compilation unit 8 | CATCH_CONFIG_POSIX_SIGNALS // Enable handling POSIX signals 9 | CATCH_CONFIG_WINDOWS_CRTDBG // Enable leak checking using Windows's CRT Debug Heap 10 | CATCH_CONFIG_DEFAULT_REPORTER 11 | CATCH_CONFIG_ENABLE_ALL_STRINGMAKERS 12 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/projects/ExtraTests/X02-DisabledMacros.cpp: -------------------------------------------------------------------------------- 1 | // X02-DisabledMacros.cpp 2 | // Test that CATCH_CONFIG_DISABLE turns off TEST_CASE autoregistration 3 | // and expressions in assertion macros are not run. 4 | 5 | #define CATCH_CONFIG_MAIN 6 | #include 7 | 8 | 9 | // CATCH_CONFIG_DISABLE also prevents reporter registration. 10 | // We need to manually register at least one reporter for our tests 11 | static Catch::ReporterRegistrar temporary( "console" ); 12 | 13 | #include 14 | 15 | struct foo { 16 | foo(){ 17 | REQUIRE_NOTHROW( print() ); 18 | } 19 | void print() const { 20 | std::cout << "This should not happen\n"; 21 | } 22 | }; 23 | 24 | // Construct foo, but `foo::print` should not be run 25 | foo f; 26 | 27 | // This test should not be run, because it won't be registered 28 | TEST_CASE( "Disabled Macros" ) { 29 | std::cout << "This should not happen\n"; 30 | FAIL(); 31 | } 32 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/projects/ExtraTests/X03-DisabledExceptions-DefaultHandler.cpp: -------------------------------------------------------------------------------- 1 | #define CATCH_CONFIG_MAIN 2 | #include 3 | 4 | TEST_CASE("Tests that run") { 5 | // All of these should be run and be reported 6 | CHECK(1 == 2); 7 | CHECK(1 == 1); 8 | CHECK(1 != 3); 9 | CHECK(1 == 4); 10 | } 11 | 12 | 13 | 14 | TEST_CASE("Tests that abort") { 15 | // Avoid abort and other exceptional exits -- there is no way 16 | // to tell CMake that abort is the desired outcome of a test. 17 | std::set_terminate([](){exit(1);}); 18 | REQUIRE(1 == 1); 19 | REQUIRE(1 != 2); 20 | REQUIRE(1 == 3); 21 | // We should not get here, because the test above aborts 22 | REQUIRE(1 != 4); 23 | } 24 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/projects/ExtraTests/X10-FallbackStringifier.cpp: -------------------------------------------------------------------------------- 1 | // X10-FallbackStringifier.cpp 2 | // Test that defining fallbackStringifier compiles 3 | 4 | #include 5 | 6 | // A catch-all stringifier 7 | template 8 | std::string fallbackStringifier(T const&) { 9 | return "{ !!! }"; 10 | } 11 | 12 | #define CATCH_CONFIG_MAIN 13 | #include 14 | 15 | struct foo { 16 | explicit operator bool() const { 17 | return true; 18 | } 19 | }; 20 | 21 | TEST_CASE("aa") { 22 | REQUIRE(foo{}); 23 | } 24 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/projects/ExtraTests/X11-DisableStringification.cpp: -------------------------------------------------------------------------------- 1 | // X11-DisableStringification.cpp 2 | // Test that stringification of original expression can be disabled 3 | // this is a workaround for VS 2017 issue with Raw String literal 4 | // and preprocessor token pasting. In other words, hopefully this test 5 | // will be deleted soon :-) 6 | 7 | #define CATCH_CONFIG_MAIN 8 | #include 9 | 10 | struct Hidden {}; 11 | 12 | bool operator==(Hidden, Hidden) { return true; } 13 | 14 | TEST_CASE("DisableStringification") { 15 | REQUIRE( Hidden{} == Hidden{} ); 16 | } 17 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/projects/SelfTest/Baselines/compact.sw.approved.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kautenja/limit-order-book/88416a12a0b34b026cbf1d598823fd315a1f2dbf/vendor/doubly-linked-list/vendor/Catch2/projects/SelfTest/Baselines/compact.sw.approved.txt -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/projects/SelfTest/Baselines/console.sw.approved.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kautenja/limit-order-book/88416a12a0b34b026cbf1d598823fd315a1f2dbf/vendor/doubly-linked-list/vendor/Catch2/projects/SelfTest/Baselines/console.sw.approved.txt -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/projects/SelfTest/Baselines/xml.sw.approved.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kautenja/limit-order-book/88416a12a0b34b026cbf1d598823fd315a1f2dbf/vendor/doubly-linked-list/vendor/Catch2/projects/SelfTest/Baselines/xml.sw.approved.txt -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/projects/SelfTest/CompileTimePerfTests/10.tests.cpp: -------------------------------------------------------------------------------- 1 | // Include set of usage tests multiple times - for compile-time performance testing 2 | // (do not run) 3 | 4 | #include "All.tests.cpp" 5 | #include "All.tests.cpp" 6 | #include "All.tests.cpp" 7 | #include "All.tests.cpp" 8 | #include "All.tests.cpp" 9 | #include "All.tests.cpp" 10 | #include "All.tests.cpp" 11 | #include "All.tests.cpp" 12 | #include "All.tests.cpp" 13 | #include "All.tests.cpp" 14 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/projects/SelfTest/CompileTimePerfTests/100.tests.cpp: -------------------------------------------------------------------------------- 1 | // Include set of usage tests multiple times - for compile-time performance testing 2 | // (do not run) 3 | 4 | #include "10.tests.cpp" 5 | #include "10.tests.cpp" 6 | #include "10.tests.cpp" 7 | #include "10.tests.cpp" 8 | #include "10.tests.cpp" 9 | #include "10.tests.cpp" 10 | #include "10.tests.cpp" 11 | #include "10.tests.cpp" 12 | #include "10.tests.cpp" 13 | #include "10.tests.cpp" 14 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/projects/SelfTest/CompileTimePerfTests/All.tests.cpp: -------------------------------------------------------------------------------- 1 | // include set of usage tests into one file for compiler performance test purposes 2 | // This whole file can now be included multiple times in 10.tests.cpp, and *that* 3 | // file included multiple times (in 100.tests.cpp) 4 | 5 | // Note that the intention is only for these files to be compiled. They will 6 | // fail at runtime due to the re-user of test case names 7 | 8 | #include "../UsageTests/Approx.tests.cpp" 9 | #include "../UsageTests/BDD.tests.cpp" 10 | #include "../UsageTests/Class.tests.cpp" 11 | #include "../UsageTests/Compilation.tests.cpp" 12 | #include "../UsageTests/Condition.tests.cpp" 13 | #include "../UsageTests/Exception.tests.cpp" 14 | #include "../UsageTests/Matchers.tests.cpp" 15 | #include "../UsageTests/Misc.tests.cpp" 16 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/projects/SelfTest/SurrogateCpps/catch_console_colour.cpp: -------------------------------------------------------------------------------- 1 | // This file is only here to verify (to the extent possible) the self sufficiency of the header 2 | #include "internal/catch_suppress_warnings.h" 3 | #include "internal/catch_console_colour.h" 4 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/projects/SelfTest/SurrogateCpps/catch_debugger.cpp: -------------------------------------------------------------------------------- 1 | // This file is only here to verify (to the extent possible) the self sufficiency of the header 2 | #include "internal/catch_debugger.h" 3 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/projects/SelfTest/SurrogateCpps/catch_interfaces_reporter.cpp: -------------------------------------------------------------------------------- 1 | #include "internal/catch_suppress_warnings.h" 2 | #include "internal/catch_interfaces_reporter.h" 3 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/projects/SelfTest/SurrogateCpps/catch_option.cpp: -------------------------------------------------------------------------------- 1 | // This file is only here to verify (to the extent possible) the self sufficiency of the header 2 | #include "internal/catch_suppress_warnings.h" 3 | #include "internal/catch_option.hpp" 4 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/projects/SelfTest/SurrogateCpps/catch_stream.cpp: -------------------------------------------------------------------------------- 1 | // This file is only here to verify (to the extent possible) the self sufficiency of the header 2 | #include "internal/catch_suppress_warnings.h" 3 | #include "internal/catch_stream.h" 4 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/projects/SelfTest/SurrogateCpps/catch_test_case_tracker.cpp: -------------------------------------------------------------------------------- 1 | // This file is only here to verify (to the extent possible) the self sufficiency of the header 2 | #include "internal/catch_test_case_tracker.h" 3 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/projects/SelfTest/SurrogateCpps/catch_test_spec.cpp: -------------------------------------------------------------------------------- 1 | // This file is only here to verify (to the extent possible) the self sufficiency of the header 2 | #include "internal/catch_suppress_warnings.h" 3 | #include "internal/catch_test_spec.h" 4 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/projects/SelfTest/SurrogateCpps/catch_xmlwriter.cpp: -------------------------------------------------------------------------------- 1 | // This file is only here to verify (to the extent possible) the self sufficiency of the header 2 | #include "internal/catch_suppress_warnings.h" 3 | #include "internal/catch_xmlwriter.h" 4 | #include "internal/catch_reenable_warnings.h" 5 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/projects/SelfTest/UsageTests/VariadicMacros.tests.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Created by Phil on 15/03/2013. 3 | * Copyright 2013 Two Blue Cubes Ltd. All rights reserved. 4 | * 5 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 6 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 | */ 8 | 9 | #include "catch.hpp" 10 | 11 | 12 | TEST_CASE() 13 | { 14 | SUCCEED( "anonymous test case" ); 15 | } 16 | 17 | TEST_CASE( "Test case with one argument" ) 18 | { 19 | SUCCEED( "no assertions" ); 20 | } 21 | 22 | TEST_CASE( "Variadic macros", "[variadic][sections]" ) 23 | { 24 | SECTION( "Section with one argument" ) 25 | { 26 | SUCCEED( "no assertions" ); 27 | } 28 | } 29 | 30 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/projects/XCode/OCTest/OCTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/projects/XCode/OCTest/OCTest.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/projects/XCode/OCTest/OCTest/CatchOCTestCase.h: -------------------------------------------------------------------------------- 1 | // 2 | // CatchOCTestCase.h 3 | // OCTest 4 | // 5 | // Created by Phil on 13/11/2010. 6 | // Copyright 2010 Two Blue Cubes Ltd. All rights reserved. 7 | // 8 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 9 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 10 | #ifndef TWOBLUECUBES_CATCHOCTESTCASE_H_INCLUDED 11 | #define TWOBLUECUBES_CATCHOCTESTCASE_H_INCLUDED 12 | 13 | #include "catch.hpp" 14 | 15 | #import 16 | #import "TestObj.h" 17 | 18 | @interface TestFixture : NSObject 19 | { 20 | TestObj* obj; 21 | } 22 | 23 | @end 24 | 25 | #endif // TWOBLUECUBES_CATCHOCTESTCASE_H_INCLUDED 26 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/projects/XCode/OCTest/OCTest/Main.mm: -------------------------------------------------------------------------------- 1 | #define CATCH_CONFIG_MAIN 2 | #import "catch.hpp" 3 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/projects/XCode/OCTest/OCTest/OCTest.mm: -------------------------------------------------------------------------------- 1 | /* 2 | * OCTest.mm 3 | * OCTest 4 | * 5 | * Created by Phil on 13/11/2010. 6 | * Copyright 2010 Two Blue Cubes Ltd. All rights reserved. 7 | * 8 | * Distributed under the Boost Software License, Version 1.0. (See accompanying 9 | * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 10 | * 11 | */ 12 | 13 | #import "catch.hpp" 14 | 15 | #import "TestObj.h" 16 | 17 | TEST_CASE( "OCTest/TestObj", "tests TestObj" ) 18 | { 19 | TestObj* obj = [[TestObj alloc] init]; 20 | 21 | REQUIRE( obj.int_val == 0 ); 22 | 23 | obj.int_val = 1; 24 | 25 | REQUIRE( obj.int_val == 1 ); 26 | 27 | arcSafeRelease( obj ); 28 | } 29 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/projects/XCode/OCTest/OCTest/TestObj.h: -------------------------------------------------------------------------------- 1 | // 2 | // TestObj.h 3 | // OCTest 4 | // 5 | // Created by Phil on 13/11/2010. 6 | // Copyright 2010 Two Blue Cubes Ltd. All rights reserved. 7 | // 8 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 9 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 10 | #ifndef TWOBLUECUBES_TESTOBJ_H_INCLUDED 11 | #define TWOBLUECUBES_TESTOBJ_H_INCLUDED 12 | 13 | #import 14 | 15 | 16 | @interface TestObj : NSObject { 17 | 18 | int int_val; 19 | } 20 | 21 | -(BOOL) isTrue; 22 | -(BOOL) isFalse; 23 | 24 | @property (nonatomic, assign ) int int_val; 25 | 26 | @end 27 | 28 | #endif // TWOBLUECUBES_TESTOBJ_H_INCLUDED 29 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/projects/XCode/OCTest/OCTest/TestObj.m: -------------------------------------------------------------------------------- 1 | // 2 | // TestObj.m 3 | // OCTest 4 | // 5 | // Created by Phil on 13/11/2010. 6 | // Copyright 2010 Two Blue Cubes Ltd. All rights reserved. 7 | // 8 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 9 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 10 | 11 | #import "TestObj.h" 12 | 13 | 14 | @implementation TestObj 15 | 16 | @synthesize int_val; 17 | 18 | -(BOOL) isTrue { 19 | return YES; 20 | } 21 | -(BOOL) isFalse { 22 | return NO; 23 | } 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/scripts/developBuild.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | from __future__ import print_function 4 | import releaseCommon 5 | 6 | v = releaseCommon.Version() 7 | v.incrementBuildNumber() 8 | releaseCommon.performUpdates(v) 9 | 10 | print( "Updated Version.hpp, README and Conan to v{0}".format( v.getVersionString() ) ) 11 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/scripts/majorRelease.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | from __future__ import print_function 4 | import releaseCommon 5 | 6 | v = releaseCommon.Version() 7 | v.incrementMajorVersion() 8 | releaseCommon.performUpdates(v) 9 | 10 | print( "Updated Version.hpp, README and Conan to v{0}".format( v.getVersionString() ) ) 11 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/scripts/minorRelease.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | from __future__ import print_function 4 | import releaseCommon 5 | 6 | v = releaseCommon.Version() 7 | v.incrementMinorVersion() 8 | releaseCommon.performUpdates(v) 9 | 10 | print( "Updated Version.hpp, README and Conan to v{0}".format( v.getVersionString() ) ) 11 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/scripts/patchRelease.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | from __future__ import print_function 4 | import releaseCommon 5 | 6 | v = releaseCommon.Version() 7 | v.incrementPatchNumber() 8 | releaseCommon.performUpdates(v) 9 | 10 | print( "Updated Version.hpp, README and Conan to v{0}".format( v.getVersionString() ) ) 11 | -------------------------------------------------------------------------------- /vendor/doubly-linked-list/vendor/Catch2/scripts/scriptCommon.py: -------------------------------------------------------------------------------- 1 | import os 2 | import sys 3 | import subprocess 4 | 5 | 6 | catchPath = os.path.dirname(os.path.realpath( os.path.dirname(sys.argv[0]))) 7 | 8 | def getBuildExecutable(): 9 | if os.name == 'nt': 10 | dir = os.environ.get('CATCH_DEV_OUT_DIR', "cmake-build-debug/projects/SelfTest.exe") 11 | return dir 12 | else: 13 | dir = os.environ.get('CATCH_DEV_OUT_DIR', "cmake-build-debug/projects/SelfTest") 14 | return dir 15 | 16 | 17 | def runAndCapture( args ): 18 | child = subprocess.Popen(" ".join( args ), shell=True, stdout=subprocess.PIPE) 19 | lines = [] 20 | line = "" 21 | while True: 22 | out = child.stdout.read(1) 23 | if out == '' and child.poll(): 24 | break 25 | if out != '': 26 | if out == '\n': 27 | lines.append( line ) 28 | line = "" 29 | else: 30 | line = line + out 31 | return lines 32 | -------------------------------------------------------------------------------- /vendor/hopscotch_map/.codecov.yml: -------------------------------------------------------------------------------- 1 | comment: off 2 | -------------------------------------------------------------------------------- /vendor/hopscotch_map/cmake/tsl-hopscotch-mapConfig.cmake.in: -------------------------------------------------------------------------------- 1 | # This module sets the following variables: 2 | # * tsl-hopscotch-map_FOUND - true if tsl-hopscotch-map found on the system 3 | # * tsl-hopscotch-map_INCLUDE_DIRS - the directory containing tsl-hopscotch-map headers 4 | @PACKAGE_INIT@ 5 | 6 | if(NOT TARGET tsl::hopscotch_map) 7 | include("${CMAKE_CURRENT_LIST_DIR}/tsl-hopscotch-mapTargets.cmake") 8 | get_target_property(tsl-hopscotch-map_INCLUDE_DIRS tsl::hopscotch_map INTERFACE_INCLUDE_DIRECTORIES) 9 | endif() 10 | -------------------------------------------------------------------------------- /vendor/robin-map/.codecov.yml: -------------------------------------------------------------------------------- 1 | comment: off 2 | -------------------------------------------------------------------------------- /vendor/robin-map/cmake/tsl-robin-mapConfig.cmake.in: -------------------------------------------------------------------------------- 1 | # This module sets the following variables: 2 | # * tsl-robin-map_FOUND - true if tsl-robin-map found on the system 3 | # * tsl-robin-map_INCLUDE_DIRS - the directory containing tsl-robin-map headers 4 | @PACKAGE_INIT@ 5 | 6 | if(NOT TARGET tsl::robin_map) 7 | include("${CMAKE_CURRENT_LIST_DIR}/tsl-robin-mapTargets.cmake") 8 | get_target_property(tsl-robin-map_INCLUDE_DIRS tsl::robin_map INTERFACE_INCLUDE_DIRECTORIES) 9 | endif() 10 | -------------------------------------------------------------------------------- /vendor/sparse-map/.codecov.yml: -------------------------------------------------------------------------------- 1 | comment: off 2 | -------------------------------------------------------------------------------- /vendor/sparse-map/cmake/tsl-sparse-mapConfig.cmake.in: -------------------------------------------------------------------------------- 1 | # This module sets the following variables: 2 | # * tsl-sparse-map_FOUND - true if tsl-sparse-map found on the system 3 | # * tsl-sparse-map_INCLUDE_DIRS - the directory containing tsl-sparse-map headers 4 | @PACKAGE_INIT@ 5 | 6 | if(NOT TARGET tsl::sparse_map) 7 | include("${CMAKE_CURRENT_LIST_DIR}/tsl-sparse-mapTargets.cmake") 8 | get_target_property(tsl-sparse-map_INCLUDE_DIRS tsl::sparse_map INTERFACE_INCLUDE_DIRECTORIES) 9 | endif() 10 | --------------------------------------------------------------------------------