master 46107645315b cached
476 files
46.9 MB
414.1k tokens
518 symbols
1 requests
Download .txt
Showing preview only (1,663K chars total). Download the full file or copy to clipboard to get everything.
Repository: boostcon/cppnow_presentations_2014
Branch: master
Commit: 46107645315b
Files: 476
Total size: 46.9 MB

Directory structure:
gitextract_igkvdt0q/

├── .gitignore
├── README.md
└── files/
    ├── ConceptClang.pptx
    ├── CppNow2014Ranges.odp
    ├── PracticalTypeErasureSlides.odp
    ├── bounded_integer.odp
    ├── cxx11-library-design.pptx
    ├── functional-data-structures.key
    ├── open-pattern-matching.pptx
    ├── optimization_boost_asio.key
    ├── ownership_of_memory.odp
    ├── test_driven/
    │   ├── Boost.Test Documentation Rewrite/
    │   │   ├── doc/
    │   │   │   └── src/
    │   │   │       └── boostbook.css
    │   │   ├── index.html
    │   │   └── libs/
    │   │       └── test/
    │   │           └── doc/
    │   │               ├── Jamfile.v2
    │   │               ├── html/
    │   │               │   ├── index.html
    │   │               │   ├── test/
    │   │               │   │   ├── guide/
    │   │               │   │   │   ├── acceptance_tests.html
    │   │               │   │   │   ├── compilation/
    │   │               │   │   │   │   ├── _main_.html
    │   │               │   │   │   │   ├── header_only.html
    │   │               │   │   │   │   ├── minimal_header.html
    │   │               │   │   │   │   ├── shared_library.html
    │   │               │   │   │   │   └── static_library.html
    │   │               │   │   │   ├── compilation.html
    │   │               │   │   │   ├── exception_safety_test.html
    │   │               │   │   │   ├── manually_registering_test_cases_and_suites.html
    │   │               │   │   │   ├── mocking_collaborators.html
    │   │               │   │   │   ├── test_case_design.html
    │   │               │   │   │   ├── testing__main_.html
    │   │               │   │   │   ├── testing_file_i_o.html
    │   │               │   │   │   ├── testing_file_io.html
    │   │               │   │   │   └── testing_protected_or_private_members.html
    │   │               │   │   ├── guide.html
    │   │               │   │   ├── how_to_read_this_documentation.html
    │   │               │   │   ├── motivation.html
    │   │               │   │   ├── reference/
    │   │               │   │   │   ├── assertion/
    │   │               │   │   │   │   ├── _boost____level___bitwise_equal_.html
    │   │               │   │   │   │   ├── _boost____level___close_.html
    │   │               │   │   │   │   ├── _boost____level___close_fraction_.html
    │   │               │   │   │   │   ├── _boost____level___equal_collections_.html
    │   │               │   │   │   │   ├── _boost____level___exception_.html
    │   │               │   │   │   │   ├── _boost____level___ge_.html
    │   │               │   │   │   │   ├── _boost____level___gt_.html
    │   │               │   │   │   │   ├── _boost____level___le_.html
    │   │               │   │   │   │   ├── _boost____level___lt_.html
    │   │               │   │   │   │   ├── _boost____level___message_.html
    │   │               │   │   │   │   ├── _boost____level___ne_.html
    │   │               │   │   │   │   ├── _boost____level___no_throw_.html
    │   │               │   │   │   │   ├── _boost____level___predicate_.html
    │   │               │   │   │   │   ├── _boost____level___small_.html
    │   │               │   │   │   │   ├── _boost_test_dont_print_log_value_.html
    │   │               │   │   │   │   ├── _boost_test_error_.html
    │   │               │   │   │   │   ├── _boost_test_is_defined_.html
    │   │               │   │   │   │   ├── boost_fail.html
    │   │               │   │   │   │   ├── boost_level_equal.html
    │   │               │   │   │   │   ├── boost_level_exception.html
    │   │               │   │   │   │   ├── boost_level_message.html
    │   │               │   │   │   │   ├── boost_level_no_throw.html
    │   │               │   │   │   │   ├── boost_level_throw.html
    │   │               │   │   │   │   ├── boost_test_dont_print_log_value.html
    │   │               │   │   │   │   └── levels.html
    │   │               │   │   │   ├── assertion.html
    │   │               │   │   │   ├── configuration_macros.html
    │   │               │   │   │   ├── headers.html
    │   │               │   │   │   ├── runner/
    │   │               │   │   │   │   ├── argument/
    │   │               │   │   │   │   │   ├── ___break_exec_path_.html
    │   │               │   │   │   │   │   ├── ___build_info_.html
    │   │               │   │   │   │   │   ├── ___catch_system_errors_.html
    │   │               │   │   │   │   │   ├── ___color_output_.html
    │   │               │   │   │   │   │   ├── ___detect_fp_exceptions_.html
    │   │               │   │   │   │   │   ├── ___detect_memory_leaks_.html
    │   │               │   │   │   │   │   ├── ___log_level_.html
    │   │               │   │   │   │   │   ├── ___log_sink_.html
    │   │               │   │   │   │   │   ├── ___output_format_.html
    │   │               │   │   │   │   │   ├── ___random_.html
    │   │               │   │   │   │   │   ├── ___report_level_.html
    │   │               │   │   │   │   │   ├── ___report_sink_.html
    │   │               │   │   │   │   │   ├── ___result_code_.html
    │   │               │   │   │   │   │   ├── ___save_pattern_.html
    │   │               │   │   │   │   │   ├── ___show_progress_.html
    │   │               │   │   │   │   │   ├── ___use_alt_stack_.html
    │   │               │   │   │   │   │   ├── auto_start_dbg.html
    │   │               │   │   │   │   │   ├── list_content.html
    │   │               │   │   │   │   │   ├── log_format.html
    │   │               │   │   │   │   │   ├── log_level.html
    │   │               │   │   │   │   │   ├── log_sink.html
    │   │               │   │   │   │   │   ├── output_format.html
    │   │               │   │   │   │   │   ├── report_format.html
    │   │               │   │   │   │   │   ├── report_level.html
    │   │               │   │   │   │   │   ├── report_sink.html
    │   │               │   │   │   │   │   └── run_test.html
    │   │               │   │   │   │   ├── argument.html
    │   │               │   │   │   │   ├── output/
    │   │               │   │   │   │   │   ├── _boost_test_checkpoint_.html
    │   │               │   │   │   │   │   ├── _boost_test_passpoint_.html
    │   │               │   │   │   │   │   ├── boost_test_checkpoint.html
    │   │               │   │   │   │   │   ├── boost_test_message.html
    │   │               │   │   │   │   │   ├── log.html
    │   │               │   │   │   │   │   ├── report.html
    │   │               │   │   │   │   │   ├── test_log.html
    │   │               │   │   │   │   │   └── test_report.html
    │   │               │   │   │   │   └── output.html
    │   │               │   │   │   ├── runner.html
    │   │               │   │   │   ├── test_case/
    │   │               │   │   │   │   ├── boost_auto_test_case.html
    │   │               │   │   │   │   ├── boost_auto_test_case_expected_failures.html
    │   │               │   │   │   │   ├── boost_auto_test_case_template.html
    │   │               │   │   │   │   ├── boost_fixture_test_case.html
    │   │               │   │   │   │   ├── boost_global_fixture.html
    │   │               │   │   │   │   ├── boost_param_class_test_case.html
    │   │               │   │   │   │   ├── boost_param_test_case.html
    │   │               │   │   │   │   ├── boost_test_case.html
    │   │               │   │   │   │   ├── boost_test_case_template.html
    │   │               │   │   │   │   └── boost_test_case_template_function.html
    │   │               │   │   │   ├── test_case.html
    │   │               │   │   │   ├── test_classes/
    │   │               │   │   │   │   ├── assertion/
    │   │               │   │   │   │   │   ├── _boost____level___bitwise_equal_.html
    │   │               │   │   │   │   │   ├── _boost____level___close_.html
    │   │               │   │   │   │   │   ├── _boost____level___close_fraction_.html
    │   │               │   │   │   │   │   ├── _boost____level___equal_collections_.html
    │   │               │   │   │   │   │   ├── _boost____level___exception_.html
    │   │               │   │   │   │   │   ├── _boost____level___ge_.html
    │   │               │   │   │   │   │   ├── _boost____level___gt_.html
    │   │               │   │   │   │   │   ├── _boost____level___le_.html
    │   │               │   │   │   │   │   ├── _boost____level___lt_.html
    │   │               │   │   │   │   │   ├── _boost____level___message_.html
    │   │               │   │   │   │   │   ├── _boost____level___ne_.html
    │   │               │   │   │   │   │   ├── _boost____level___no_throw_.html
    │   │               │   │   │   │   │   ├── _boost____level___predicate_.html
    │   │               │   │   │   │   │   ├── _boost____level___small_.html
    │   │               │   │   │   │   │   ├── _boost_test_dont_print_log_value_.html
    │   │               │   │   │   │   │   ├── _boost_test_error_.html
    │   │               │   │   │   │   │   ├── _boost_test_is_defined_.html
    │   │               │   │   │   │   │   ├── boost_fail.html
    │   │               │   │   │   │   │   ├── boost_level_equal.html
    │   │               │   │   │   │   │   ├── boost_level_throw.html
    │   │               │   │   │   │   │   └── levels.html
    │   │               │   │   │   │   ├── assertion.html
    │   │               │   │   │   │   ├── headers.html
    │   │               │   │   │   │   ├── init_unit_test_func.html
    │   │               │   │   │   │   ├── master_test_suite_t.html
    │   │               │   │   │   │   ├── predicate_result/
    │   │               │   │   │   │   │   ├── init_unit_test_func.html
    │   │               │   │   │   │   │   ├── master_test_suite_t.html
    │   │               │   │   │   │   │   ├── test_case.html
    │   │               │   │   │   │   │   ├── test_observer.html
    │   │               │   │   │   │   │   ├── test_suite.html
    │   │               │   │   │   │   │   ├── test_unit.html
    │   │               │   │   │   │   │   ├── unit_test_log_formatter.html
    │   │               │   │   │   │   │   ├── unit_test_log_t.html
    │   │               │   │   │   │   │   └── unit_test_main.html
    │   │               │   │   │   │   ├── predicate_result.html
    │   │               │   │   │   │   ├── runner/
    │   │               │   │   │   │   │   ├── argument.html
    │   │               │   │   │   │   │   └── output.html
    │   │               │   │   │   │   ├── runner.html
    │   │               │   │   │   │   ├── test_case.html
    │   │               │   │   │   │   ├── test_observer.html
    │   │               │   │   │   │   ├── test_suite.html
    │   │               │   │   │   │   ├── test_unit.html
    │   │               │   │   │   │   ├── unit_test_log_formatter.html
    │   │               │   │   │   │   ├── unit_test_log_t.html
    │   │               │   │   │   │   └── unit_test_main.html
    │   │               │   │   │   ├── test_classes.html
    │   │               │   │   │   ├── test_suite/
    │   │               │   │   │   │   ├── boost_auto_test_suite.html
    │   │               │   │   │   │   ├── boost_auto_test_suite_end.html
    │   │               │   │   │   │   ├── boost_fixture_test_suite.html
    │   │               │   │   │   │   ├── boost_test_module.html
    │   │               │   │   │   │   └── boost_test_suite.html
    │   │               │   │   │   └── test_suite.html
    │   │               │   │   ├── reference.html
    │   │               │   │   ├── tutorials/
    │   │               │   │   │   ├── hello_test.html
    │   │               │   │   │   ├── running_selected_tests.html
    │   │               │   │   │   ├── testing_with_exceptions.html
    │   │               │   │   │   └── testing_with_fixtures.html
    │   │               │   │   └── tutorials.html
    │   │               │   └── test_HTML.manifest
    │   │               ├── src/
    │   │               │   ├── Jamfile.v2
    │   │               │   ├── UTF.log.xsd
    │   │               │   ├── UTF.report.xsd
    │   │               │   ├── examples/
    │   │               │   │   ├── Jamfile.v2
    │   │               │   │   ├── another_global_fixture.cpp
    │   │               │   │   ├── assertion_failures.cpp
    │   │               │   │   ├── assertions.cpp
    │   │               │   │   ├── auto_test_case_expected_failures.cpp
    │   │               │   │   ├── auto_test_case_template.cpp
    │   │               │   │   ├── compilation/
    │   │               │   │   │   ├── Jamfile.v2
    │   │               │   │   │   ├── dynamic/
    │   │               │   │   │   │   ├── main.cpp
    │   │               │   │   │   │   └── test_hello.cpp
    │   │               │   │   │   ├── dynamic_main/
    │   │               │   │   │   │   ├── main.cpp
    │   │               │   │   │   │   └── test_hello.cpp
    │   │               │   │   │   ├── minimal/
    │   │               │   │   │   │   └── test_hello.cpp
    │   │               │   │   │   ├── static/
    │   │               │   │   │   │   ├── main.cpp
    │   │               │   │   │   │   └── test_hello.cpp
    │   │               │   │   │   └── static_main/
    │   │               │   │   │       ├── main.cpp
    │   │               │   │   │       └── test_hello.cpp
    │   │               │   │   ├── file_system.cpp
    │   │               │   │   ├── global_fixture.cpp
    │   │               │   │   ├── manual_registration.cpp
    │   │               │   │   ├── param_class_test_case.cpp
    │   │               │   │   ├── param_test_case.cpp
    │   │               │   │   ├── test_case.cpp
    │   │               │   │   ├── test_case_template.cpp
    │   │               │   │   └── turtle_mock.cpp
    │   │               │   ├── ref-assertion.qbk
    │   │               │   ├── ref-assertion.qbk.bak
    │   │               │   ├── ref-compilation.qbk
    │   │               │   ├── ref-runner-argument.qbk
    │   │               │   ├── ref-runner-argument.qbk.bak
    │   │               │   ├── ref-runner-output.qbk
    │   │               │   ├── ref-runner.qbk
    │   │               │   ├── ref-test-case.qbk
    │   │               │   ├── ref-test-case.qbk.bak
    │   │               │   ├── ref-test-classes.qbk
    │   │               │   ├── ref-test-suite.qbk
    │   │               │   ├── reference.qbk
    │   │               │   ├── system_under_test/
    │   │               │   │   ├── Jamfile.v2
    │   │               │   │   ├── hello/
    │   │               │   │   │   ├── Jamfile.v2
    │   │               │   │   │   ├── hello.cpp
    │   │               │   │   │   └── hello.hpp
    │   │               │   │   └── scanner/
    │   │               │   │       ├── Jamfile.v2
    │   │               │   │       ├── directory_scanner.hpp
    │   │               │   │       ├── filesystem_directory_scanner.hpp
    │   │               │   │       ├── scanner.cpp
    │   │               │   │       └── scanner.hpp
    │   │               │   ├── test.qbk
    │   │               │   ├── tutorials/
    │   │               │   │   ├── Jamfile.v2
    │   │               │   │   ├── hello_test/
    │   │               │   │   │   ├── 1/
    │   │               │   │   │   │   ├── Jamfile.v2
    │   │               │   │   │   │   ├── hello_test~1.output
    │   │               │   │   │   │   ├── sut/
    │   │               │   │   │   │   │   ├── hello.cpp
    │   │               │   │   │   │   │   └── hello.hpp
    │   │               │   │   │   │   └── test/
    │   │               │   │   │   │       └── test_hello.cpp
    │   │               │   │   │   ├── 2/
    │   │               │   │   │   │   ├── Jamfile.v2
    │   │               │   │   │   │   ├── hello_test~2.output
    │   │               │   │   │   │   ├── sut/
    │   │               │   │   │   │   │   ├── hello.cpp
    │   │               │   │   │   │   │   └── hello.hpp
    │   │               │   │   │   │   └── test/
    │   │               │   │   │   │       └── test_hello.cpp
    │   │               │   │   │   ├── 3/
    │   │               │   │   │   │   ├── Jamfile.v2
    │   │               │   │   │   │   ├── hello_test~3.output
    │   │               │   │   │   │   ├── sut/
    │   │               │   │   │   │   │   ├── hello.cpp
    │   │               │   │   │   │   │   └── hello.hpp
    │   │               │   │   │   │   └── test/
    │   │               │   │   │   │       └── test_hello.cpp
    │   │               │   │   │   ├── Jamfile.v2
    │   │               │   │   │   ├── hello_test.output
    │   │               │   │   │   ├── sut/
    │   │               │   │   │   │   ├── hello.cpp
    │   │               │   │   │   │   └── hello.hpp
    │   │               │   │   │   └── test/
    │   │               │   │   │       └── test_hello.cpp
    │   │               │   │   ├── running_selected_tests/
    │   │               │   │   │   ├── 1/
    │   │               │   │   │   │   ├── Jamfile.v2
    │   │               │   │   │   │   ├── report_level_detailed.output
    │   │               │   │   │   │   ├── sut/
    │   │               │   │   │   │   │   ├── hello.cpp
    │   │               │   │   │   │   │   └── hello.hpp
    │   │               │   │   │   │   ├── test/
    │   │               │   │   │   │   │   └── test_hello.cpp
    │   │               │   │   │   │   └── test_hello~running_selected_tests~1.output
    │   │               │   │   │   ├── 2/
    │   │               │   │   │   │   ├── Jamfile.v2
    │   │               │   │   │   │   ├── report_level_detailed.output
    │   │               │   │   │   │   ├── run_test_hello_inserts_text.output
    │   │               │   │   │   │   ├── run_test_hello_star_inserts_text.output
    │   │               │   │   │   │   ├── sut/
    │   │               │   │   │   │   │   ├── hello.cpp
    │   │               │   │   │   │   │   └── hello.hpp
    │   │               │   │   │   │   ├── test/
    │   │               │   │   │   │   │   └── test_hello.cpp
    │   │               │   │   │   │   └── test_hello~running_selected_tests~2.output
    │   │               │   │   │   ├── Jamfile.v2
    │   │               │   │   │   ├── report_level_detailed.output
    │   │               │   │   │   ├── sut/
    │   │               │   │   │   │   ├── hello.cpp
    │   │               │   │   │   │   └── hello.hpp
    │   │               │   │   │   └── test/
    │   │               │   │   │       └── test_hello.cpp
    │   │               │   │   ├── testing_with_exceptions/
    │   │               │   │   │   ├── 1/
    │   │               │   │   │   │   ├── Jamfile.v2
    │   │               │   │   │   │   ├── sut/
    │   │               │   │   │   │   │   ├── hello.cpp
    │   │               │   │   │   │   │   └── hello.hpp
    │   │               │   │   │   │   ├── test/
    │   │               │   │   │   │   │   └── test_hello.cpp
    │   │               │   │   │   │   └── test_hello~testing_with_exceptions~1.output
    │   │               │   │   │   ├── 2/
    │   │               │   │   │   │   ├── Jamfile.v2
    │   │               │   │   │   │   ├── sut/
    │   │               │   │   │   │   │   ├── hello.cpp
    │   │               │   │   │   │   │   └── hello.hpp
    │   │               │   │   │   │   ├── test/
    │   │               │   │   │   │   │   └── test_hello.cpp
    │   │               │   │   │   │   └── test_hello~testing_with_exceptions~2.output
    │   │               │   │   │   ├── Jamfile.v2
    │   │               │   │   │   ├── sut/
    │   │               │   │   │   │   ├── hello.cpp
    │   │               │   │   │   │   └── hello.hpp
    │   │               │   │   │   ├── test/
    │   │               │   │   │   │   └── test_hello.cpp
    │   │               │   │   │   └── test_hello~testing_with_exceptions.output
    │   │               │   │   └── testing_with_fixtures/
    │   │               │   │       ├── 1/
    │   │               │   │       │   ├── Jamfile.v2
    │   │               │   │       │   ├── sut/
    │   │               │   │       │   │   ├── hello.cpp
    │   │               │   │       │   │   └── hello.hpp
    │   │               │   │       │   └── test/
    │   │               │   │       │       └── test_hello.cpp
    │   │               │   │       ├── Jamfile.v2
    │   │               │   │       ├── sut/
    │   │               │   │       │   ├── hello.cpp
    │   │               │   │       │   └── hello.hpp
    │   │               │   │       └── test/
    │   │               │   │           └── test_hello.cpp
    │   │               │   ├── tutorials.qbk
    │   │               │   ├── user-compilation.qbk
    │   │               │   └── user-guide.qbk
    │   │               └── todo.txt
    │   ├── ReadMe.txt
    │   └── snapshots/
    │       ├── 00/
    │       │   ├── CMakeLists.txt
    │       │   ├── LocalPaths.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   └── factors.h
    │       │   └── test/
    │       │       └── test_factors.cpp
    │       ├── 01/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   └── factors.h
    │       │   └── test/
    │       │       └── test_factors.cpp
    │       ├── 02/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   └── factors.h
    │       │   └── test/
    │       │       └── test_factors.cpp
    │       ├── 03/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   └── factors.h
    │       │   └── test/
    │       │       └── test_factors.cpp
    │       ├── 04/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   └── factors.h
    │       │   └── test/
    │       │       └── test_factors.cpp
    │       ├── 05/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   └── factors.h
    │       │   └── test/
    │       │       └── test_factors.cpp
    │       ├── 06/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   └── factors.h
    │       │   └── test/
    │       │       └── test_factors.cpp
    │       ├── 07/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   └── factors.h
    │       │   └── test/
    │       │       └── test_factors.cpp
    │       ├── 08/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   └── factors.h
    │       │   └── test/
    │       │       └── test_factors.cpp
    │       ├── 09/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   └── factors.h
    │       │   └── test/
    │       │       └── test_factors.cpp
    │       ├── 10/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   └── factors.h
    │       │   └── test/
    │       │       └── test_factors.cpp
    │       ├── 11/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   └── factors.h
    │       │   └── test/
    │       │       └── test_factors.cpp
    │       ├── 12/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   └── factors.h
    │       │   └── test/
    │       │       └── test_factors.cpp
    │       ├── 13/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   └── factors.h
    │       │   └── test/
    │       │       └── test_factors.cpp
    │       ├── 14/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   └── factors.h
    │       │   └── test/
    │       │       └── test_factors.cpp
    │       ├── 15/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   └── factors.h
    │       │   └── test/
    │       │       └── test_factors.cpp
    │       ├── 16/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   └── factors.h
    │       │   └── test/
    │       │       └── test_factors.cpp
    │       ├── 17/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   └── factors.h
    │       │   └── test/
    │       │       └── test_factors.cpp
    │       ├── 18/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   └── factors.h
    │       │   └── test/
    │       │       └── test_factors.cpp
    │       ├── 19/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   └── factors.h
    │       │   └── test/
    │       │       └── test_factors.cpp
    │       ├── 20/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   └── factors.h
    │       │   └── test/
    │       │       └── test_factors.cpp
    │       ├── 21/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   └── factors.h
    │       │   └── test/
    │       │       └── test_factors.cpp
    │       ├── 22/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   └── factors.h
    │       │   └── test/
    │       │       └── test_factors.cpp
    │       ├── 23/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   └── factors.h
    │       │   └── test/
    │       │       └── test_factors.cpp
    │       ├── 24/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   └── factors.h
    │       │   └── test/
    │       │       └── test_factors.cpp
    │       ├── 25/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   └── factors.h
    │       │   └── test/
    │       │       ├── test_factors.cpp
    │       │       └── test_mediator.cpp
    │       ├── 26/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   ├── factors.h
    │       │   │   └── mediator.h
    │       │   └── test/
    │       │       ├── test_factors.cpp
    │       │       └── test_mediator.cpp
    │       ├── 27/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   ├── factors.h
    │       │   │   └── mediator.h
    │       │   └── test/
    │       │       ├── test_factors.cpp
    │       │       └── test_mediator.cpp
    │       ├── 28/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   ├── factors.h
    │       │   │   └── mediator.h
    │       │   └── test/
    │       │       ├── test_factors.cpp
    │       │       └── test_mediator.cpp
    │       ├── 29/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   ├── factors.h
    │       │   │   └── mediator.h
    │       │   └── test/
    │       │       ├── test_factors.cpp
    │       │       └── test_mediator.cpp
    │       ├── 30/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   ├── factors.h
    │       │   │   └── mediator.h
    │       │   └── test/
    │       │       ├── test_factors.cpp
    │       │       └── test_mediator.cpp
    │       ├── 31/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   ├── factors.h
    │       │   │   └── mediator.h
    │       │   └── test/
    │       │       ├── test_factors.cpp
    │       │       └── test_mediator.cpp
    │       ├── 32/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   ├── factors.h
    │       │   │   └── mediator.h
    │       │   └── test/
    │       │       ├── test_factors.cpp
    │       │       └── test_mediator.cpp
    │       ├── 33/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   ├── factors.h
    │       │   │   └── mediator.h
    │       │   └── test/
    │       │       ├── test_factors.cpp
    │       │       └── test_mediator.cpp
    │       ├── 34/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   ├── factors.h
    │       │   │   └── mediator.h
    │       │   └── test/
    │       │       ├── test_factors.cpp
    │       │       └── test_mediator.cpp
    │       ├── 35/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   ├── factors.h
    │       │   │   └── mediator.h
    │       │   └── test/
    │       │       ├── test_factors.cpp
    │       │       └── test_mediator.cpp
    │       ├── 36/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   ├── factors.h
    │       │   │   └── mediator.h
    │       │   └── test/
    │       │       ├── test_factors.cpp
    │       │       └── test_mediator.cpp
    │       ├── 37/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   ├── factors.h
    │       │   │   └── mediator.h
    │       │   └── test/
    │       │       ├── test_factors.cpp
    │       │       └── test_mediator.cpp
    │       ├── 38/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   ├── factors.h
    │       │   │   └── mediator.h
    │       │   └── test/
    │       │       ├── test_factors.cpp
    │       │       └── test_mediator.cpp
    │       └── 39/
    │           ├── CMakeLists.txt
    │           ├── factors/
    │           │   ├── factors.cpp
    │           │   ├── factors.h
    │           │   └── mediator.h
    │           └── test/
    │               ├── test_factors.cpp
    │               └── test_mediator.cpp
    └── unicode-cpp.pptx

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitignore
================================================
unlinked/
*~
.DS_Store

================================================
FILE: README.md
================================================
# C++Now 2014 Presentations

* [Library in a Week Repo](https://github.com/JeffGarland/liaw2014.git)

Below are links to the pdfs / keynotes / OPDs in the files directory.  
Depending on your browser, you may need to right click on the link and select save.

## Tuesday, May 13

* [Library in a Week - C++ Templating Engine](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/liaw_template_engine_day1.pdf?raw=true)
* Keynote: Axiomatic Programming: From Euclidean Deductions to C++ Templates and Beyond
* C++14: Through the Looking Glass 
* [Coroutines, Fibers, and Threads, Oh My](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/Coroutines-Fibers-Threads.pdf?raw=true)
* The Canonical Class
* [ConceptClang: Theoretical Advances with Full C++ Concepts](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/ConceptClang.pdf?raw=true) | [PPTX](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/ConceptClang.pptx?raw=true)
* [Generic Programming of Generic Spaces: Compile-Time Geometric Algebra with C++11](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/generic_spaces.pdf?raw=true)
* [Test-Driven Development With Boost.Test and Turtle Mock, Part I/II](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/test_driven/test_driven.pdf?raw=true) | [Code](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/test_driven/)
* [Removing undefined behavior from integer operations: the bounded::integer library](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/bounded_integer.pdf?raw=true) | [LibreOffice File](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/bounded_integer.opd?raw=true) 
* [Value Semantics and Range Algorithms - Composability and Efficiency](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/range_algos.pdf?raw=true)
* Preparing the C++11 Library AFIO for Boost Peer Review
 
## Wednesday, May 14
 
* [MPL11: A New Metaprogramming Library for C++11](https://ldionne.github.io/mpl11-cppnow-2014)
* [The Optimization of a Boost.Asio-Based Networking Server](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/optimization_boost_asio.pdf?raw=true) | [Keynote File](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/optimization_boost_asio.key?raw=true)
* [Undefined Behavior in C++; what is it, and why should I care](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/Undefined-Behavior.pdf?raw=true)
* [Mach7: The Design and Evolution of a Pattern Matching Library for C++](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/open-pattern-matching.pdf?raw=true) | [PowerPoint File](ttps://github.com/boostcon/cppnow_presentations_2014/blob/master/files/open-pattern-matching.pptx?raw=true)
* [Practical Type Erasure: A boost::any Based Configuration Framework](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/PracticalTypeErasureSlides.pdf?raw=true)  | [LibreOffice File](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/PracticalTypeErasureSlides.odp?raw=true)
* [A Tutorial Introduction to C++11/14 Part I/II](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/tutorial_intro_cpp_11_14.pdf?raw=true)
* [C++11 in Space Plasma Model Development](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/esitys.tar?raw=true) (Requires Java)
* [C++11 Library Design](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/cxx11-library-design.pdf?raw=true) | [PPTX File](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/cxx11-library-design.pptx?raw=true)
* [Goals for Better Code: Implement Complete Types](https://github.com/sean-parent/sean-parent.github.com/wiki/Papers-and-Presentations)
* [Multiplatform C++](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/2014_05_14_multiplatform_cpp.pdf?raw=true)
* Octopus: A Policy-Driven Framework for CFD Simulations
 
## Thursday, May 15
 
* [Keynote: Beware of C++](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/Josuttis_C++Now_140515_handouts.pdf?raw=true)
* [Interactive Metaprogramming Shell Based on Clang](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/2014_cppnow_metashell.pdf?raw=true)
* [libcppa: Type-safe Messaging Systems in C++](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/libcppa_part1.pdf?raw=true)  | [Part II](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/libcppa_part2.pdf?raw=true)
* [Unicode in C++](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/unicode-cpp.pdf?raw=true) | [PPTX File](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/unicode-cpp.pptx?raw=true)
* [CppComponents: A Modern Portable C++11 Component System](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/cppnow2014_bandela_presentation.pdf?raw=true)
* [UI. Aesthetics. C++](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/UI_Aesthetics_Cpp.pdf?raw=true) 
* Accelerator Programming with C++ AMP
* [Designing XML API for Modern C++](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/designing-xml-api-for-modern-c++.pdf?raw=true)
* [Modern C++ as Concurrent Assembly](https://github.com/diegoperini/cppnow2014-doppl)
* [Understanding &&](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/UnderstandingRValueRef_rev7.pdf?raw=true)
* [Boost Library Incubator](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/incubator.pdf?raw=true) | [Zip Archive](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/incubator.zip?raw=true)
 
## Friday, May 16
 
* [Iterators May Stay](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/CppNow2014Ranges.pdf?raw=true) | [LibreOffice File](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/CppNow2014Ranges.opd?raw=true)
* [Value Semantics: It ain't about the syntax!](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/accu2015.140518.pdf?raw=true)
* [Create Your Own Refactoring Tool with Clang](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/Create-Your-Own-Refactoring-Tool-with-Clang.pdf?raw=true)
* [How to Design C++ Implementations of Complex Combinatorial Algorithms](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/How_to_Design_C++_Implementations_of_Complex_Combinatorial_Algorithms.pdf?raw=true)
* [Intro to Functional Programming in C++](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/intro-to-functional-programming-in-cpp.pdf?raw=true)
* [Managing Object Lifetimes](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/Managing-Object-Lifetimes.pdf?raw=true)
* [0xBADC0DE](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/0xBADC0DE.pdf?raw=true)
* [Expected — An Exception-friendly Error Monad](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/expected.pdf?raw=true)
* [Lifetime and Usage of Global, Thread-local, and Static Data](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/LifetimeRev2.pdf?raw=true)
* [Functional Data Structures in C++](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/functional-data-structures.pdf?raw=true) | [Keynote File](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/functional-data-structures.key?raw=true)
* [Asynchronous Programming Using Boost.MetaStateMachine and the Upcoming Asynchronous Library](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/AsyncTalkCppNow14.pdf?raw=true)
* [Ownership of Memory in C++](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/ownership_of_memory.pdf?raw=true) | [LibreOffice File](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/ownership_of_memory.opd?raw=true)
 
## Saturday, May 17
 
* [The Future of Accelerator Programming in C++](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/CppNow2014_Future_of_Accelerator_Programming.pdf?raw=true)
* [Functional Reactive Programming - Cleanly Abstracted Interactivity](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/Functional-Reactive-Programming.pdf?raw=true)
* [Disambiguation: The Black Technology](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/disambiguation.pdf?raw=true)
* [My Thoughts on Large Code Base Change Ripple Management in C++](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/change_ripple.pdf?raw=true) | [Position Paper](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/large_code_base_change_ripple_in_cpp.pdf?raw=true)
* [Future of Boost: Boostache](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/boostache.pdf?raw=true)
* [Future of Boost: Community Management Team](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/boost-cmt.pdf?raw=true)





================================================
FILE: files/optimization_boost_asio.key
================================================
[File too large to display: 45.4 MB]

================================================
FILE: files/test_driven/Boost.Test Documentation Rewrite/doc/src/boostbook.css
================================================
/*=============================================================================
    Copyright (c) 2004 Joel de Guzman
    http://spirit.sourceforge.net/

    Distributed under the Boost Software License, Version 1.0. (See accompany-
    ing file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
=============================================================================*/

/*=============================================================================
    Body defaults
=============================================================================*/

    body
    {
        margin: 1em;
        font-family: sans-serif;
    }

/*=============================================================================
    Paragraphs
=============================================================================*/

    p
    {
        text-align: left;
        font-size: 10pt;
        line-height: 1.15;
    }

/*=============================================================================
    Program listings
=============================================================================*/

    /* Code on paragraphs */
    p tt.computeroutput
    {
        font-size: 9pt;
    }

    pre.synopsis
    {
        font-size: 9pt;
        margin: 1pc 4% 0pc 4%;
        padding: 0.5pc 0.5pc 0.5pc 0.5pc;
    }

    .programlisting,
    .screen
    {
        font-size: 9pt;
        display: block;
        margin: 1pc 4% 0pc 4%;
        padding: 0.5pc 0.5pc 0.5pc 0.5pc;
    }

    /* Program listings in tables don't get borders */
    td .programlisting,
    td .screen
    {
        margin: 0pc 0pc 0pc 0pc;
        padding:  0pc 0pc 0pc 0pc;
    }

/*=============================================================================
    Headings
=============================================================================*/

    h1, h2, h3, h4, h5, h6
    {
        text-align: left;
        margin: 1em 0em 0.5em 0em;
        font-weight: bold;
    }

    h1 { font-size: 140%; }
    h2 { font-weight: bold; font-size: 140%; }
    h3 { font-weight: bold; font-size: 130%; }
    h4 { font-weight: bold; font-size: 120%; }
    h5 { font-weight: normal; font-style: italic; font-size: 110%; }
    h6 { font-weight: normal; font-style: italic; font-size: 100%; }

    /* Top page titles */
    title,
    h1.title,
    h2.title
    h3.title,
    h4.title,
    h5.title,
    h6.title,
    .refentrytitle
    {
        font-weight: bold;
        margin-bottom: 1pc;
    }

    h1.title { font-size: 140% }
    h2.title { font-size: 140% }
    h3.title { font-size: 130% }
    h4.title { font-size: 120% }
    h5.title { font-size: 110% }
    h6.title { font-size: 100% }

    .section h1
    {
        margin: 0em 0em 0.5em 0em;
        font-size: 140%;
    }

    .section h2 { font-size: 140% }
    .section h3 { font-size: 130% }
    .section h4 { font-size: 120% }
    .section h5 { font-size: 110% }
    .section h6 { font-size: 100% }

    /* Code on titles */
    h1 tt.computeroutput { font-size: 140% }
    h2 tt.computeroutput { font-size: 140% }
    h3 tt.computeroutput { font-size: 130% }
    h4 tt.computeroutput { font-size: 130% }	
    h5 tt.computeroutput { font-size: 130% }
    h6 tt.computeroutput { font-size: 130% }


/*=============================================================================
    Author
=============================================================================*/

    h3.author
    {
        font-size: 100%
    }

/*=============================================================================
    Lists
=============================================================================*/

    li
    {
        font-size: 10pt;
        line-height: 1.3;
    }

    /* Unordered lists */
    ul
    {
        text-align: left;
    }

    /* Ordered lists */
    ol
    {
        text-align: left;
    }

/*=============================================================================
    Links
=============================================================================*/

    a
    {
        text-decoration: none; /* no underline */
    }

    a:hover
    {
        text-decoration: underline;
    }

/*=============================================================================
    Spirit style navigation
=============================================================================*/

    .spirit-nav
    {
        text-align: right;
    }

    .spirit-nav a
    {
        color: white;
        padding-left: 0.5em;
    }

    .spirit-nav img
    {
        border-width: 0px;
    }

/*=============================================================================
    Copyright footer
=============================================================================*/
    .copyright-footer
    {
        text-align: right;
        font-size: 70%;
    }

    .copyright-footer p
    {
        text-align: right;
        font-size: 80%;
    }

/*=============================================================================
    Table of contents
=============================================================================*/

    div.toc
    {
       margin: 1pc 4% 0pc 4%;
       padding: 0.1pc 1pc 0.1pc 1pc;
       font-size: 80%;
       line-height: 1.15;
    }

    .boost-toc
    {
       float: right;
       padding: 0.5pc;
    }
	
    /* Code on toc */
    .toc .computeroutput { font-size: 120% }

    /* No margin on nested menus */

    .toc dl dl { margin: 0; }

/*=============================================================================
    Tables
=============================================================================*/

    .table-title,
    div.table p.title
    {
        margin-left: 4%;
        padding-right: 0.5em;
        padding-left: 0.5em;
    }

    .informaltable table,
    .table table
    {
        width: 92%;
        margin-left: 4%;
        margin-right: 4%;
    }

    div.informaltable table,
    div.table table
    {
        padding: 4px;
    }

    /* Table Cells */
    div.informaltable table tr td,
    div.table table tr td
    {
        padding: 0.5em;
        text-align: left;
        font-size: 9pt;
    }

    div.informaltable table tr th,
    div.table table tr th
    {
        padding: 0.5em 0.5em 0.5em 0.5em;
        border: 1pt solid white;
        font-size: 80%;
    }

    table.simplelist
    {
        width: auto !important;
        margin: 0em !important;
        padding: 0em !important;
        border: none !important;
    }
    table.simplelist td
    {
        margin: 0em !important;
        padding: 0em !important;
        text-align: left !important;
        font-size: 9pt !important;
        border: none !important;
    }

/*=============================================================================
    Blurbs
=============================================================================*/

    div.note,
    div.tip,
    div.important,
    div.caution,
    div.warning,
    p.blurb
    {
        font-size: 9pt; /* A little bit smaller than the main text */
        line-height: 1.2;
        display: block;
        margin: 1pc 4% 0pc 4%;
        padding: 0.5pc 0.5pc 0.5pc 0.5pc;
    }

    p.blurb img
    {
        padding: 1pt;
    }

/*=============================================================================
    Variable Lists
=============================================================================*/

    div.variablelist
    {
        margin: 1em 0;
    }

    /* Make the terms in definition lists bold */
    div.variablelist dl dt,
    span.term
    {
        font-weight: bold;
        font-size: 10pt;
    }

    div.variablelist table tbody tr td
    {
        text-align: left;
        vertical-align: top;
        padding: 0em 2em 0em 0em;
        font-size: 10pt;
        margin: 0em 0em 0.5em 0em;
        line-height: 1;
    }

    div.variablelist dl dt
    {
        margin-bottom: 0.2em;
    }

    div.variablelist dl dd
    {
        margin: 0em 0em 0.5em 2em;
        font-size: 10pt;
    }

    div.variablelist table tbody tr td p,
    div.variablelist dl dd p
    {
        margin: 0em 0em 0.5em 0em;
        line-height: 1;
    }

/*=============================================================================
    Misc
=============================================================================*/

    /* Title of books and articles in bibliographies */
    span.title
    {
        font-style: italic;
    }

    span.underline
    {
        text-decoration: underline;
    }

    span.strikethrough
    {
        text-decoration: line-through;
    }

    /* Copyright, Legal Notice */
    div div.legalnotice p
    {
        text-align: left
    }

/*=============================================================================
    Colors
=============================================================================*/

    @media screen
    {
        body {
            background-color: #FFFFFF;
            color: #000000;
        }

    /* Syntax Highlighting */
        .keyword        { color: #0000AA; }
        .identifier     { color: #000000; }
        .special        { color: #707070; }
        .preprocessor   { color: #402080; }
        .char           { color: teal; }
        .comment        { color: #800000; }
        .string         { color: teal; }
        .number         { color: teal; }
        .white_bkd      { background-color: #FFFFFF; }
        .dk_grey_bkd    { background-color: #999999; }

    /* Links */
        a, a .keyword, a .identifier, a .special, a .preprocessor
        a .char, a .comment, a .string, a .number
        {
            color: #005a9c;
        }

        a:visited, a:visited .keyword, a:visited .identifier,
        a:visited .special, a:visited .preprocessor a:visited .char,
        a:visited .comment, a:visited .string, a:visited .number
        {
            color: #9c5a9c;
        }

        h1 a, h2 a, h3 a, h4 a, h5 a, h6 a,
        h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover, h5 a:hover, h6 a:hover,
        h1 a:visited, h2 a:visited, h3 a:visited, h4 a:visited, h5 a:visited, h6 a:visited
        {
            text-decoration: none; /* no underline */
            color: #000000;
        }

    /* Copyright, Legal Notice */
        .copyright
        {
            color: #666666;
            font-size: small;
        }

        div div.legalnotice p
        {
            color: #666666;
        }

    /* Program listing */
        pre.synopsis
        {
            border: 1px solid #DCDCDC;
        }

        .programlisting,
        .screen
        {
            border: 1px solid #DCDCDC;
        }

        td .programlisting,
        td .screen
        {
            border: 0px solid #DCDCDC;
        }

    /* Blurbs */
        div.note,
        div.tip,
        div.important,
        div.caution,
        div.warning,
        p.blurb
        {
            border: 1px solid #DCDCDC;
        }

    /* Table of contents */
        div.toc
        {
            border: 1px solid #DCDCDC;
        }

    /* Tables */
        div.informaltable table tr td,
        div.table table tr td
        {
            border: 1px solid #DCDCDC;
        }

        div.informaltable table tr th,
        div.table table tr th
        {
            background-color: #F0F0F0;
            border: 1px solid #DCDCDC;
        }

        .copyright-footer
        {
            color: #8F8F8F;
        }

    /* Misc */
        span.highlight
        {
            color: #00A000;
        }
    }

    @media print
    {
    /* Links */
        a
        {
            color: black;
        }

        a:visited
        {
            color: black;
        }

        .spirit-nav
        {
            display: none;
        }

    /* Program listing */
        pre.synopsis
        {
            border: 1px solid gray;
        }

        .programlisting,
        .screen
        {
            border: 1px solid gray;
        }

        td .programlisting,
        td .screen
        {
            border: 0px solid #DCDCDC;
        }

    /* Table of contents */
        div.toc
        {
            border: 1px solid gray;
        }

        .informaltable table,
        .table table
        {
            border: 1px solid gray;
            border-collapse: collapse;
        }

    /* Tables */
        div.informaltable table tr td,
        div.table table tr td
        {
            border: 1px solid gray;
        }

        div.informaltable table tr th,
        div.table table tr th
        {
            border: 1px solid gray;
        }

        table.simplelist tr td
        {
            border: none !important;
        }

    /* Misc */
        span.highlight
        {
            font-weight: bold;
        }
    }

/*=============================================================================
    Images
=============================================================================*/

    span.inlinemediaobject img
    {
        vertical-align: middle;
    }

/*==============================================================================
    Super and Subscript: style so that line spacing isn't effected, see
    http://www.adobe.com/cfusion/communityengine/index.cfm?event=showdetails&productId=1&postId=5341
==============================================================================*/

sup,
sub {
	height: 0;
	line-height: 1;
	vertical-align: baseline;
	position: relative;
	
}

/* For internet explorer: */

* html sup,
* html sub {
	vertical-align: bottom;
}

sup {
	bottom: 1ex;
}

sub {
	top: .5ex;
}

/*==============================================================================
    Indexes: pretty much the same as the TOC.
==============================================================================*/

    .index
    {
       font-size: 80%;
       padding-top: 0px;
       padding-bottom: 0px;
       margin-top: 0px;
       margin-bottom: 0px;
       margin-left: 0px;
    }

    .index ul
    {
       padding-left: 3em;
    }

    .index p
    {
       padding: 2px;
       margin: 2px;
    }

    .index-entry-level-0
    {
        font-weight: bold;
    }

    .index em
    {
        font-weight: bold;
    }



================================================
FILE: files/test_driven/Boost.Test Documentation Rewrite/index.html
================================================
<html>
<head>
<title>Boost.Test</title>
</head>
<body>
<p>Browse the <a
href="libs/test/doc/html/index.html">documentation</a>.</p>
</body>
</html>


================================================
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/Jamfile.v2
================================================
# Jamfile.v2
#
# Copyright (c) 2013
# Richard Thomson
#
# Distributed Under the Boost Software License, Version 1.0. (See
# accompanying file LICENSE_1_0.txt or copy at
# http://www.boost.org/LICENSE_1_0.txt)

use-project /boost/test : ../build ;

import quickbook ;

build-project src ;

alias code : src ;

boostbook test
    :
        src/test.qbk
        code
    :
        <xsl:param>chunk.section.depth=4
        <xsl:param>chunk.first.sections=1
        <xsl:param>toc.section.depth=4
        <xsl:param>toc.max.depth=4
        <xsl:param>generate.section.toc.level=4
        <xsl:param>boost.root=../../../..
    ;


================================================
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/index.html
================================================
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Chapter&#160;1.&#160;Boost.Test</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="Chapter&#160;1.&#160;Boost.Test">
<link rel="next" href="test/motivation.html" title="Motivation">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav"><a accesskey="n" href="test/motivation.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a></div>
<div class="chapter">
<div class="titlepage"><div>
<div><h2 class="title">
<a name="test"></a>Chapter&#160;1.&#160;Boost.Test</h2></div>
<div><div class="author"><h3 class="author">
<span class="firstname">Richard</span> <span class="surname">Thomson</span>
</h3></div></div>
<div><p class="copyright">Copyright &#169; 2013 Richard Thomson</p></div>
<div><div class="legalnotice">
<a name="test.legal"></a><p>
        Distributed under the Boost Software License, Version 1.0. (See accompanying
        file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
      </p>
</div></div>
</div></div>
<div class="toc">
<p><b>Table of Contents</b></p>
<dl class="toc">
<dt><span class="section"><a href="test/motivation.html">Motivation</a></span></dt>
<dt><span class="section"><a href="test/how_to_read_this_documentation.html">How To Read This Documentation</a></span></dt>
<dt><span class="section"><a href="test/tutorials.html">Tutorials</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="test/tutorials/hello_test.html">Hello, Test!</a></span></dt>
<dt><span class="section"><a href="test/tutorials/testing_with_exceptions.html">Testing with
      Exceptions</a></span></dt>
<dt><span class="section"><a href="test/tutorials/testing_with_fixtures.html">Testing with Fixtures</a></span></dt>
<dt><span class="section"><a href="test/tutorials/running_selected_tests.html">Running Selected
      Tests</a></span></dt>
</dl></dd>
<dt><span class="section"><a href="test/guide.html">User's Guide</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="test/guide/compilation.html">Compilation and Usage Variants</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="test/guide/compilation/minimal_header.html">Minimal Header</a></span></dt>
<dt><span class="section"><a href="test/guide/compilation/_main_.html"><code class="literal">main</code></a></span></dt>
<dt><span class="section"><a href="test/guide/compilation/header_only.html">Header Only</a></span></dt>
<dt><span class="section"><a href="test/guide/compilation/static_library.html">Static Library</a></span></dt>
<dt><span class="section"><a href="test/guide/compilation/shared_library.html">Shared Library</a></span></dt>
</dl></dd>
<dt><span class="section"><a href="test/guide/test_case_design.html">Test Case Design and Maintenance</a></span></dt>
<dt><span class="section"><a href="test/guide/acceptance_tests.html">Acceptance Tests and Unit
      Tests</a></span></dt>
<dt><span class="section"><a href="test/guide/testing_file_io.html">Testing File I/O</a></span></dt>
<dt><span class="section"><a href="test/guide/mocking_collaborators.html">Mocking Collaborators</a></span></dt>
<dt><span class="section"><a href="test/guide/testing__main_.html">Testing <code class="literal">main</code></a></span></dt>
<dt><span class="section"><a href="test/guide/testing_protected_or_private_members.html">Testing
      Protected or Private Members</a></span></dt>
<dt><span class="section"><a href="test/guide/manually_registering_test_cases_and_suites.html">Manually
      Registering Test Cases and Suites</a></span></dt>
</dl></dd>
<dt><span class="section"><a href="test/reference.html">Reference</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="test/reference/configuration_macros.html">Configuration Macros</a></span></dt>
<dt><span class="section"><a href="test/reference/test_case.html">Test Cases</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="test/reference/test_case/boost_auto_test_case.html"><code class="literal">BOOST_AUTO_TEST_CASE</code></a></span></dt>
<dt><span class="section"><a href="test/reference/test_case/boost_auto_test_case_expected_failures.html"><code class="literal">BOOST_AUTO_TEST_CASE_EXPECTED_FAILURES</code></a></span></dt>
<dt><span class="section"><a href="test/reference/test_case/boost_auto_test_case_template.html"><code class="literal">BOOST_AUTO_TEST_CASE_TEMPLATE</code></a></span></dt>
<dt><span class="section"><a href="test/reference/test_case/boost_fixture_test_case.html"><code class="literal">BOOST_FIXTURE_TEST_CASE</code></a></span></dt>
<dt><span class="section"><a href="test/reference/test_case/boost_global_fixture.html"><code class="literal">BOOST_GLOBAL_FIXTURE</code></a></span></dt>
<dt><span class="section"><a href="test/reference/test_case/boost_param_test_case.html"><code class="literal">BOOST_PARAM_TEST_CASE</code></a></span></dt>
<dt><span class="section"><a href="test/reference/test_case/boost_param_class_test_case.html"><code class="literal">BOOST_PARAM_CLASS_TEST_CASE</code></a></span></dt>
<dt><span class="section"><a href="test/reference/test_case/boost_test_case.html"><code class="literal">BOOST_TEST_CASE</code></a></span></dt>
<dt><span class="section"><a href="test/reference/test_case/boost_test_case_template.html"><code class="literal">BOOST_TEST_CASE_TEMPLATE</code></a></span></dt>
<dt><span class="section"><a href="test/reference/test_case/boost_test_case_template_function.html"><code class="literal">BOOST_TEST_CASE_TEMPLATE_FUNCTION</code></a></span></dt>
</dl></dd>
<dt><span class="section"><a href="test/reference/test_suite.html">Test Suites</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="test/reference/test_suite/boost_auto_test_suite.html"><code class="literal">BOOST_AUTO_TEST_SUITE</code></a></span></dt>
<dt><span class="section"><a href="test/reference/test_suite/boost_auto_test_suite_end.html"><code class="literal">BOOST_AUTO_TEST_SUITE_END</code></a></span></dt>
<dt><span class="section"><a href="test/reference/test_suite/boost_fixture_test_suite.html"><code class="literal">BOOST_FIXTURE_TEST_SUITE</code></a></span></dt>
<dt><span class="section"><a href="test/reference/test_suite/boost_test_module.html"><code class="literal">BOOST_TEST_MODULE</code></a></span></dt>
<dt><span class="section"><a href="test/reference/test_suite/boost_test_suite.html"><code class="literal">BOOST_TEST_SUITE</code></a></span></dt>
</dl></dd>
<dt><span class="section"><a href="test/reference/test_classes.html">Test Classes</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="test/reference/test_classes/predicate_result.html"><code class="literal">predicate_result</code></a></span></dt>
<dt><span class="section"><a href="test/reference/test_classes/test_unit.html"><code class="literal">test_unit</code></a></span></dt>
<dt><span class="section"><a href="test/reference/test_classes/test_case.html"><code class="literal">test_case</code></a></span></dt>
<dt><span class="section"><a href="test/reference/test_classes/test_suite.html"><code class="literal">test_suite</code></a></span></dt>
<dt><span class="section"><a href="test/reference/test_classes/master_test_suite_t.html"><code class="literal">master_test_suite_t</code></a></span></dt>
<dt><span class="section"><a href="test/reference/test_classes/test_observer.html"><code class="literal">test_observer</code></a></span></dt>
<dt><span class="section"><a href="test/reference/test_classes/unit_test_log_t.html"><code class="literal">unit_test_log_t</code></a></span></dt>
<dt><span class="section"><a href="test/reference/test_classes/unit_test_log_formatter.html"><code class="literal">unit_test_log_formatter</code></a></span></dt>
<dt><span class="section"><a href="test/reference/test_classes/init_unit_test_func.html"><code class="literal">init_unit_test_func</code></a></span></dt>
<dt><span class="section"><a href="test/reference/test_classes/unit_test_main.html"><code class="literal">unit_test_main</code></a></span></dt>
</dl></dd>
<dt><span class="section"><a href="test/reference/assertion.html">Test Assertions</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="test/reference/assertion/levels.html">Assertion Levels</a></span></dt>
<dt><span class="section"><a href="test/reference/assertion/_boost____level___bitwise_equal_.html"><code class="literal">BOOST_</code><em class="replaceable"><code>level</code></em><code class="literal">_BITWISE_EQUAL</code></a></span></dt>
<dt><span class="section"><a href="test/reference/assertion/_boost____level___close_.html"><code class="literal">BOOST_</code><em class="replaceable"><code>level</code></em><code class="literal">_CLOSE</code></a></span></dt>
<dt><span class="section"><a href="test/reference/assertion/_boost____level___close_fraction_.html"><code class="literal">BOOST_</code><em class="replaceable"><code>level</code></em><code class="literal">_CLOSE_FRACTION</code></a></span></dt>
<dt><span class="section"><a href="test/reference/assertion/boost_level_equal.html"><code class="literal">BOOST_</code><em class="replaceable"><code>level</code></em><code class="literal">_EQUAL</code></a></span></dt>
<dt><span class="section"><a href="test/reference/assertion/_boost____level___equal_collections_.html"><code class="literal">BOOST_</code><em class="replaceable"><code>level</code></em><code class="literal">_EQUAL_COLLECTIONS</code></a></span></dt>
<dt><span class="section"><a href="test/reference/assertion/boost_level_exception.html"><code class="literal">BOOST_</code><em class="replaceable"><code>level</code></em><code class="literal">_EXCEPTION</code></a></span></dt>
<dt><span class="section"><a href="test/reference/assertion/boost_fail.html"><code class="literal">BOOST_FAIL</code></a></span></dt>
<dt><span class="section"><a href="test/reference/assertion/_boost____level___ge_.html"><code class="literal">BOOST_</code><em class="replaceable"><code>level</code></em><code class="literal">_GE</code></a></span></dt>
<dt><span class="section"><a href="test/reference/assertion/_boost____level___gt_.html"><code class="literal">BOOST_</code><em class="replaceable"><code>level</code></em><code class="literal">_GT</code></a></span></dt>
<dt><span class="section"><a href="test/reference/assertion/_boost____level___le_.html"><code class="literal">BOOST_</code><em class="replaceable"><code>level</code></em><code class="literal">_LE</code></a></span></dt>
<dt><span class="section"><a href="test/reference/assertion/_boost____level___lt_.html"><code class="literal">BOOST_</code><em class="replaceable"><code>level</code></em><code class="literal">_LT</code></a></span></dt>
<dt><span class="section"><a href="test/reference/assertion/boost_level_message.html"><code class="literal">BOOST_</code><em class="replaceable"><code>level</code></em><code class="literal">_MESSAGE</code></a></span></dt>
<dt><span class="section"><a href="test/reference/assertion/_boost____level___ne_.html"><code class="literal">BOOST_</code><em class="replaceable"><code>level</code></em><code class="literal">_NE</code></a></span></dt>
<dt><span class="section"><a href="test/reference/assertion/boost_level_no_throw.html"><code class="literal">BOOST_</code><em class="replaceable"><code>level</code></em><code class="literal">_NO_THROW</code></a></span></dt>
<dt><span class="section"><a href="test/reference/assertion/_boost____level___predicate_.html"><code class="literal">BOOST_</code><em class="replaceable"><code>level</code></em><code class="literal">_PREDICATE</code></a></span></dt>
<dt><span class="section"><a href="test/reference/assertion/_boost____level___small_.html"><code class="literal">BOOST_</code><em class="replaceable"><code>level</code></em><code class="literal">_SMALL</code></a></span></dt>
<dt><span class="section"><a href="test/reference/assertion/boost_level_throw.html"><code class="literal">BOOST_</code><em class="replaceable"><code>level</code></em><code class="literal">_THROW</code></a></span></dt>
<dt><span class="section"><a href="test/reference/assertion/boost_test_dont_print_log_value.html"><code class="literal">BOOST_TEST_DONT_PRINT_LOG_VALUE</code></a></span></dt>
</dl></dd>
<dt><span class="section"><a href="test/reference/runner.html">Test Runner</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="test/reference/runner/argument.html">Command Line Arguments</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="test/reference/runner/argument/auto_start_dbg.html"><code class="literal">--auto_start_dbg</code></a></span></dt>
<dt><span class="section"><a href="test/reference/runner/argument/___build_info_.html"><code class="literal">--build_info</code></a></span></dt>
<dt><span class="section"><a href="test/reference/runner/argument/___catch_system_errors_.html"><code class="literal">--catch_system_errors</code></a></span></dt>
<dt><span class="section"><a href="test/reference/runner/argument/___detect_fp_exceptions_.html"><code class="literal">--detect_fp_exceptions</code></a></span></dt>
<dt><span class="section"><a href="test/reference/runner/argument/___detect_memory_leaks_.html"><code class="literal">--detect_memory_leaks</code></a></span></dt>
<dt><span class="section"><a href="test/reference/runner/argument/log_format.html"><code class="literal">--log_format</code></a></span></dt>
<dt><span class="section"><a href="test/reference/runner/argument/log_level.html"><code class="literal">--log_level</code></a></span></dt>
<dt><span class="section"><a href="test/reference/runner/argument/log_sink.html"><code class="literal">--log_sink</code></a></span></dt>
<dt><span class="section"><a href="test/reference/runner/argument/output_format.html"><code class="literal">--output_format</code></a></span></dt>
<dt><span class="section"><a href="test/reference/runner/argument/___random_.html"><code class="literal">--random</code></a></span></dt>
<dt><span class="section"><a href="test/reference/runner/argument/report_format.html"><code class="literal">--report_format</code></a></span></dt>
<dt><span class="section"><a href="test/reference/runner/argument/report_level.html"><code class="literal">--report_level</code></a></span></dt>
<dt><span class="section"><a href="test/reference/runner/argument/report_sink.html"><code class="literal">--report_sink</code></a></span></dt>
<dt><span class="section"><a href="test/reference/runner/argument/___result_code_.html"><code class="literal">--result_code</code></a></span></dt>
<dt><span class="section"><a href="test/reference/runner/argument/run_test.html"><code class="literal">--run_test</code></a></span></dt>
<dt><span class="section"><a href="test/reference/runner/argument/___show_progress_.html"><code class="literal">--show_progress</code></a></span></dt>
<dt><span class="section"><a href="test/reference/runner/argument/___use_alt_stack_.html"><code class="literal">--use_alt_stack</code></a></span></dt>
</dl></dd>
<dt><span class="section"><a href="test/reference/runner/output.html">Test Output</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="test/reference/runner/output/log.html">Test Log</a></span></dt>
<dt><span class="section"><a href="test/reference/runner/output/report.html">Test Report</a></span></dt>
<dt><span class="section"><a href="test/reference/runner/output/boost_test_checkpoint.html"><code class="literal">BOOST_TEST_CHECKPOINT</code></a></span></dt>
<dt><span class="section"><a href="test/reference/runner/output/boost_test_message.html"><code class="literal">BOOST_TEST_MESSAGE</code></a></span></dt>
<dt><span class="section"><a href="test/reference/runner/output/_boost_test_passpoint_.html"><code class="literal">BOOST_TEST_PASSPOINT</code></a></span></dt>
</dl></dd>
</dl></dd>
</dl></dd>
</dl>
</div>
<p>
    This is the documentation for Boost.Test, a library designed to support automated
    testing of software generally and unit testing specifically.
  </p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"><p><small>Last revised: January 06, 2014 at 04:37:36 GMT</small></p></td>
<td align="right"><div class="copyright-footer"></div></td>
</tr></table>
<hr>
<div class="spirit-nav"><a accesskey="n" href="test/motivation.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a></div>
</body>
</html>


================================================
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide/acceptance_tests.html
================================================
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Acceptance Tests and Unit Tests</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.Test">
<link rel="up" href="../guide.html" title="User's Guide">
<link rel="prev" href="test_case_design.html" title="Test Case Design and Maintenance">
<link rel="next" href="testing_file_io.html" title="Testing File I/O">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="test_case_design.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../guide.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="testing_file_io.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="test.guide.acceptance_tests"></a><a class="link" href="acceptance_tests.html" title="Acceptance Tests and Unit Tests">Acceptance Tests and Unit
      Tests</a>
</h3></div></div></div>
<p>
        Unit testing helps us to find bugs "in the small"; little implementation
        details that we got wrong while we were building a function, a method or
        a class. When we test each class as an isolated unit, we can miss errors
        in the way two classes interact or in the way a whole ensemble of classes
        cooperate in an integrated system.
      </p>
<p>
        An acceptance test is an automated test that exercises our system as an integrated
        whole and not as a collection of isolated units. In a unit test, we decouple
        ourselves from the execution environment in order to test a piece of code
        in isolation. In an acceptance test, we run the whole system and provide
        controlled inputs to the system. This may consist of prepared input data
        files, prepared input databases and so-on.
      </p>
<p>
        Using these two forms of automated testing, we can use them as a vise to
        squeeze bugs between the two forms of automated tests. Unit tests push from
        below and acceptance tests push from above.
      </p>
<p>
        While the facilities in Boost.Test can be used to create an automated acceptance
        test, the tools are fairly low-level for the kinds of high-level criteria
        that an acceptance test would use. Acceptance tests are usually defined by
        the <a href="http://en.wikipedia.org/wiki/Product_owner#Roles" target="_top">product
        owner</a> or customer and will describe acceptance criteria in the language
        closest to the problem domain and farthest away from the details of the implementation.
      </p>
<p>
        A better approach for automated acceptance tests would be a tool such as
        <a href="http://www.fitnesse.org" target="_top">FitNesse</a> that is designed for
        automated acceptance testing.
      </p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2013 Richard Thomson<p>
        Distributed under the Boost Software License, Version 1.0. (See accompanying
        file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
      </p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="test_case_design.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../guide.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="testing_file_io.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>


================================================
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide/compilation/_main_.html
================================================
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>main</title>
<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="../../../index.html" title="Chapter&#160;1.&#160;Boost.Test">
<link rel="up" href="../compilation.html" title="Compilation and Usage Variants">
<link rel="prev" href="minimal_header.html" title="Minimal Header">
<link rel="next" href="header_only.html" title="Header Only">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="minimal_header.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../compilation.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="header_only.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="test.guide.compilation._main_"></a><a class="link" href="_main_.html" title="main"><code class="literal">main</code></a>
</h4></div></div></div>
<p>
          To use the implementation of <code class="literal">main</code> provided by Boost.Test,
          exactly one source file must define <a class="link" href="../../reference/configuration_macros.html#test.reference.compilation.boost_test_main"><code class="literal">BOOST_TEST_MAIN</code></a>
          before including <code class="literal">&lt;boost/test/unit_test.hpp&gt;</code>. If
          multiple source files define <a class="link" href="../../reference/configuration_macros.html#test.reference.compilation.boost_test_main"><code class="literal">BOOST_TEST_MAIN</code></a>,
          then a multiply defined symbol error will occur during linking.
        </p>
<p>
          If <a class="link" href="../../reference/configuration_macros.html#test.reference.compilation.boost_test_no_main"><code class="literal">BOOST_TEST_NO_MAIN</code></a>
          is defined, then no implementation of <code class="literal">main</code> will be provided
          and the test executable must provide an initialization function. The exact
          initialization function that must be provided varies depending on how the
          library is compiled. The details are shown in the discussion of each compilation
          variation.
        </p>
<p>
          When Boost.Test is compiled as a library, <a class="link" href="../../reference/configuration_macros.html#test.reference.compilation.boost_test_no_main"><code class="literal">BOOST_TEST_NO_MAIN</code></a>
          must be defined when the library is compiled for it to work properly in
          those circumstances.
        </p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2013 Richard Thomson<p>
        Distributed under the Boost Software License, Version 1.0. (See accompanying
        file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
      </p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="minimal_header.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../compilation.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="header_only.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>


================================================
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide/compilation/header_only.html
================================================
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Header Only</title>
<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="../../../index.html" title="Chapter&#160;1.&#160;Boost.Test">
<link rel="up" href="../compilation.html" title="Compilation and Usage Variants">
<link rel="prev" href="_main_.html" title="main">
<link rel="next" href="static_library.html" title="Static Library">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="_main_.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../compilation.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="static_library.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="test.guide.compilation.header_only"></a><a class="link" href="header_only.html" title="Header Only">Header Only</a>
</h4></div></div></div>
<p>
          The entire unit test framework can be incorporated into an executable by
          including the file <code class="literal">&lt;boost/test/included/unit_test.hpp&gt;</code>.
          Because the entire implementation is incorporated into the source file
          including this header, only a single source file in the test executable
          can include this header.
        </p>
<p>
          Additional source files must define <a class="link" href="../../reference/configuration_macros.html#test.reference.compilation.boost_test_no_lib"><code class="literal">BOOST_TEST_NO_LIB</code></a>
          before including <code class="literal">&lt;boost/test/unit_test.hpp&gt;</code> to
          prevent any automatic linking to a shared library. If additional source
          files attempt to include <code class="literal">&lt;boost/test/included/unit_test.hpp&gt;</code>,
          a multiply defined symbol error will occur during linking.
        </p>
<p>
</p>
<pre class="programlisting"><span class="comment">// In exactly one source file:</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">test</span><span class="special">/</span><span class="identifier">included</span><span class="special">/</span><span class="identifier">unit_test</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>

<span class="comment">// test cases (optional)</span>
</pre>
<p>
</p>
<pre class="programlisting"><span class="comment">// In additional source files</span>
<span class="preprocessor">#define</span> <span class="identifier">BOOST_TEST_NO_LIB</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">test</span><span class="special">/</span><span class="identifier">unit_test</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>

<span class="comment">// test cases</span>
</pre>
<p>
        </p>
<p>
          If <a class="link" href="../../reference/configuration_macros.html#test.reference.compilation.boost_test_no_main"><code class="literal">BOOST_TEST_NO_MAIN</code></a>
          is defined, then an implementation of <code class="literal">main</code> must be provided
          that executes the test cases. This is most readily done by delegating to
          <a class="link" href="../../reference/test_classes/unit_test_main.html" title="unit_test_main"><code class="literal">unit_test_main</code></a>.
        </p>
<p>
</p>
<pre class="programlisting"><span class="comment">// In exactly one source file</span>
<span class="preprocessor">#define</span> <span class="identifier">BOOST_TEST_NO_MAIN</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">test</span><span class="special">/</span><span class="identifier">unit_test</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>

<span class="identifier">boost</span><span class="special">::</span><span class="identifier">unit_test</span><span class="special">::</span><span class="identifier">test_suite</span> <span class="special">*</span><span class="identifier">init_function</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">argc</span><span class="special">,</span> <span class="keyword">char</span> <span class="special">*</span><span class="identifier">argv</span><span class="special">[])</span>
<span class="special">{</span>
    <span class="comment">// create test cases and suites and return a pointer to any enclosing</span>
    <span class="comment">// suite, or 0.</span>
    <span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
<span class="special">}</span>

<span class="keyword">int</span> <span class="identifier">main</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">argc</span><span class="special">,</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">argv</span><span class="special">[])</span>
<span class="special">{</span>
    <span class="keyword">return</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">unit_test</span><span class="special">::</span><span class="identifier">unit_test_main</span><span class="special">(&amp;</span><span class="identifier">init_function</span><span class="special">,</span> <span class="identifier">argc</span><span class="special">,</span> <span class="identifier">argv</span><span class="special">);</span>
<span class="special">}</span>
</pre>
<p>
        </p>
<h6>
<a name="test.guide.compilation.header_only.h0"></a>
          <span class="phrase"><a name="test.guide.compilation.header_only.example_source_code"></a></span><a class="link" href="header_only.html#test.guide.compilation.header_only.example_source_code">Example
          Source Code</a>
        </h6>
<p>
          The <a class="link" href="../../tutorials.html" title="Tutorials">tutorials</a> all use the header-only
          version of Boost.Test.
        </p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2013 Richard Thomson<p>
        Distributed under the Boost Software License, Version 1.0. (See accompanying
        file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
      </p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="_main_.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../compilation.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="static_library.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>


================================================
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide/compilation/minimal_header.html
================================================
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Minimal Header</title>
<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="../../../index.html" title="Chapter&#160;1.&#160;Boost.Test">
<link rel="up" href="../compilation.html" title="Compilation and Usage Variants">
<link rel="prev" href="../compilation.html" title="Compilation and Usage Variants">
<link rel="next" href="_main_.html" title="main">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../compilation.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../compilation.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="_main_.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="test.guide.compilation.minimal_header"></a><a class="link" href="minimal_header.html" title="Minimal Header">Minimal Header</a>
</h4></div></div></div>
<p>
          A lightweight, minimal version of the testing framework can be obtained
          by including <code class="literal">&lt;boost/test/minimal.hpp&gt;</code>. This header
          provides only the following macros:
        </p>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>
                  <p>
                    Macro
                  </p>
                </th>
<th>
                  <p>
                    Meaning
                  </p>
                </th>
</tr></thead>
<tbody>
<tr>
<td>
                  <p>
                    <code class="literal">BOOST_CHECK(</code><span class="emphasis"><em>expression</em></span><code class="literal">)</code>
                  </p>
                </td>
<td>
                  <p>
                    If <span class="emphasis"><em>expression</em></span> is false, the test fails and
                    test execution continues.
                  </p>
                </td>
</tr>
<tr>
<td>
                  <p>
                    <code class="literal">BOOST_REQUIRE(</code><span class="emphasis"><em>expression</em></span><code class="literal">)</code>
                  </p>
                </td>
<td>
                  <p>
                    If <span class="emphasis"><em>expression</em></span> is false, the test fails and
                    test execution terminates.
                  </p>
                </td>
</tr>
<tr>
<td>
                  <p>
                    <code class="literal">BOOST_ERROR(</code><span class="emphasis"><em>message</em></span><code class="literal">)</code>
                  </p>
                </td>
<td>
                  <p>
                    Report <span class="emphasis"><em>message</em></span>, fail the test and continue
                    test execution.
                  </p>
                </td>
</tr>
<tr>
<td>
                  <p>
                    <code class="literal">BOOST_FAIL(</code><span class="emphasis"><em>message</em></span><code class="literal">)</code>
                  </p>
                </td>
<td>
                  <p>
                    Report <span class="emphasis"><em>message</em></span>, fail the test and terminate
                    test execution.
                  </p>
                </td>
</tr>
</tbody>
</table></div>
<p>
          The header supplies an implementation of <code class="literal">main</code> that executes
          a single test case by calling a free function named <code class="literal">test_main</code>
          with the following signature:
        </p>
<p>
</p>
<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">test_main</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">argc</span><span class="special">,</span> <span class="keyword">char</span> <span class="special">*</span><span class="identifier">argv</span><span class="special">[]);</span>
</pre>
<p>
        </p>
<p>
          The arguments <code class="literal">argc</code> and <code class="literal">argv</code> are passed
          to <code class="literal">test_main</code> from the implementation of <code class="literal">main</code>
          supplied by the test framework. No command-line argument processing is
          performed by <code class="literal">main</code>. A summary report of errors recorded
          by the test case is printed out after executing the test case. If any exception
          is thrown by the test case, it is caught by <code class="literal">main</code> and
          treated as an error from the test case.
        </p>
<p>
</p>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">test</span><span class="special">/</span><span class="identifier">minimal</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>

<span class="keyword">int</span> <span class="identifier">test_main</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">argc</span><span class="special">,</span> <span class="keyword">char</span> <span class="special">*</span><span class="identifier">argv</span><span class="special">[])</span>
<span class="special">{</span>
    <span class="comment">// test case</span>
<span class="special">}</span>
</pre>
<p>
        </p>
<h6>
<a name="test.guide.compilation.minimal_header.h0"></a>
          <span class="phrase"><a name="test.guide.compilation.minimal_header.example_source_code"></a></span><a class="link" href="minimal_header.html#test.guide.compilation.minimal_header.example_source_code">Example
          Source Code</a>
        </h6>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
              System under test:
              <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem">
                    <a href="../../../../../../../libs/test/doc/src/system_under_test/hello/hello.cpp" target="_top">hello.cpp</a>
                  </li></ul></div>
            </li>
<li class="listitem">
              An example of using the minimal test framework:
              <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem">
                    <a href="../../../../../../../libs/test/doc/src/examples/compilation/minimal/test_hello.cpp" target="_top">test_hello.cpp</a>.
                  </li></ul></div>
            </li>
</ul></div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2013 Richard Thomson<p>
        Distributed under the Boost Software License, Version 1.0. (See accompanying
        file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
      </p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../compilation.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../compilation.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="_main_.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>


================================================
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide/compilation/shared_library.html
================================================
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Shared Library</title>
<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="../../../index.html" title="Chapter&#160;1.&#160;Boost.Test">
<link rel="up" href="../compilation.html" title="Compilation and Usage Variants">
<link rel="prev" href="static_library.html" title="Static Library">
<link rel="next" href="../test_case_design.html" title="Test Case Design and Maintenance">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="static_library.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../compilation.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../test_case_design.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="test.guide.compilation.shared_library"></a><a class="link" href="shared_library.html" title="Shared Library">Shared Library</a>
</h4></div></div></div>
<p>
          To build Boost.Test as a shared library, first build the boost build tools,
          as described in the <a href="../../../../../../../more/getting_started/index.html" target="_top">Getting
          Started</a> documentation. After you have bootstrapped the build tools,
          build the test library with by invoking <code class="literal">b2</code> with arguments
          similar to the following:
        </p>
<p>
</p>
<pre class="programlisting"><span class="identifier">b2</span> <span class="special">--</span><span class="identifier">with</span><span class="special">-</span><span class="identifier">test</span> <span class="identifier">link</span><span class="special">=</span><span class="identifier">shared</span></pre>
<p>
        </p>
<p>
          This will place the resulting libraries in <code class="literal">stage/lib</code>
          at the top level of the boost tree.
        </p>
<p>
          In a shared library configuration, Boost.Test is compiled into a single
          shared library named <code class="literal">boost_unit_test_framework</code> and the
          test executable is linked against that library to import symbols from the
          library. The Boost.Test shared library must be available to the runtime
          loader in order for the tests to execute. Every compilation unit that includes
          a header from Boost.Test must define <a class="link" href="../../reference/configuration_macros.html#test.reference.compilation.boost_test_dyn_link"><code class="literal">BOOST_TEST_DYN_LINK</code></a>
          first so that declarations are properly annotated as imported symbols.
          When <a class="link" href="../../reference/configuration_macros.html#test.reference.compilation.boost_test_dyn_link"><code class="literal">BOOST_TEST_DYN_LINK</code></a>
          is defined, Boost.Test also defines <a class="link" href="../../reference/configuration_macros.html#test.reference.compilation.boost_test_alternative_init_api"><code class="literal">BOOST_TEST_ALTERNATIVE_INIT_API</code></a>.
        </p>
<p>
          Exactly one compilation unit in the test executable should define <a class="link" href="../../reference/configuration_macros.html#test.reference.compilation.boost_test_main"><code class="literal">BOOST_TEST_MAIN</code></a>,
          in order run the tests.
        </p>
<p>
</p>
<pre class="programlisting"><span class="comment">// In exactly one compilation unit</span>
<span class="preprocessor">#define</span> <span class="identifier">BOOST_TEST_DYN_LINK</span>
<span class="preprocessor">#define</span> <span class="identifier">BOOST_TEST_MAIN</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">test</span><span class="special">/</span><span class="identifier">unit_test</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>

<span class="comment">// test cases (optional)</span>
</pre>
<p>
        </p>
<p>
          Additional source files define <a class="link" href="../../reference/configuration_macros.html#test.reference.compilation.boost_test_dyn_link"><code class="literal">BOOST_TEST_DYN_LINK</code></a>,
          include the main unit test header and define more test cases and/or suites.
        </p>
<p>
</p>
<pre class="programlisting"><span class="comment">// In additional source files</span>
<span class="preprocessor">#define</span> <span class="identifier">BOOST_TEST_DYN_LINK</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">test</span><span class="special">/</span><span class="identifier">unit_test</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>

<span class="comment">// test cases</span>
</pre>
<p>
        </p>
<p>
          To compile the library with no implementation of <code class="literal">main</code>,
          add <a class="link" href="../../reference/configuration_macros.html#test.reference.compilation.boost_test_no_main"><code class="literal">BOOST_TEST_NO_MAIN</code></a>
          to the <code class="literal">cxxflags</code> property for b2:
        </p>
<p>
</p>
<pre class="programlisting"><span class="identifier">b2</span> <span class="special">--</span><span class="identifier">with</span><span class="special">-</span><span class="identifier">test</span> <span class="identifier">link</span><span class="special">=</span><span class="identifier">shared</span> <span class="identifier">define</span><span class="special">=</span><span class="identifier">BOOST_TEST_NO_MAIN</span></pre>
<p>
        </p>
<p>
          When the library is compiled with <a class="link" href="../../reference/configuration_macros.html#test.reference.compilation.boost_test_no_main"><code class="literal">BOOST_TEST_NO_MAIN</code></a>
          defined, one source file must provide a definition for <code class="literal">main</code>.
          The simplest is to delegate to <a class="link" href="../../reference/test_classes/unit_test_main.html" title="unit_test_main"><code class="literal">unit_test_main</code></a>
          and provide an implementation of an initialization function that manually
          adds test cases and suites to the test tree. Any test cases or test suites
          added with <a class="link" href="../../reference/test_case/boost_auto_test_case.html" title="BOOST_AUTO_TEST_CASE"><code class="literal">BOOST_AUTO_TEST_CASE</code></a>,
          <a class="link" href="../../reference/test_case/boost_fixture_test_case.html" title="BOOST_FIXTURE_TEST_CASE"><code class="literal">BOOST_FIXTURE_TEST_CASE</code></a>,
          <a class="link" href="../../reference/test_suite/boost_auto_test_suite.html" title="BOOST_AUTO_TEST_SUITE"><code class="literal">BOOST_AUTO_TEST_SUITE</code></a>
          or <a class="link" href="../../reference/test_suite/boost_fixture_test_suite.html" title="BOOST_FIXTURE_TEST_SUITE"><code class="literal">BOOST_FIXTURE_TEST_SUITE</code></a>
          are automatically added.
        </p>
<p>
</p>
<pre class="programlisting"><span class="comment">// In exactly one source file</span>
<span class="preprocessor">#define</span> <span class="identifier">BOOST_TEST_NO_MAIN</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">test</span><span class="special">/</span><span class="identifier">unit_test</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>

<span class="keyword">bool</span> <span class="identifier">init_function</span><span class="special">()</span>
<span class="special">{</span>
    <span class="comment">// create test cases and suites and return a boolean indicating</span>
    <span class="comment">// success (true) or failure (false).</span>
    <span class="keyword">return</span> <span class="keyword">true</span><span class="special">;</span>
<span class="special">}</span>

<span class="keyword">int</span> <span class="identifier">main</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">argc</span><span class="special">,</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">argv</span><span class="special">[])</span>
<span class="special">{</span>
    <span class="keyword">return</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">unit_test</span><span class="special">::</span><span class="identifier">unit_test_main</span><span class="special">(&amp;</span><span class="identifier">init_function</span><span class="special">,</span> <span class="identifier">argc</span><span class="special">,</span> <span class="identifier">argv</span><span class="special">);</span>
<span class="special">}</span>
</pre>
<p>
        </p>
<h6>
<a name="test.guide.compilation.shared_library.h0"></a>
          <span class="phrase"><a name="test.guide.compilation.shared_library.example_source_code"></a></span><a class="link" href="shared_library.html#test.guide.compilation.shared_library.example_source_code">Example
          Source Code</a>
        </h6>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
              System under test:
              <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
<li class="listitem">
                    <a href="../../../../../../../libs/test/doc/src/system_under_test/hello/hello.hpp" target="_top">hello.hpp</a>
                  </li>
<li class="listitem">
                    <a href="../../../../../../../libs/test/doc/src/system_under_test/hello/hello.cpp" target="_top">hello.cpp</a>
                  </li>
</ul></div>
            </li>
<li class="listitem">
              An example of using the standard implementation of <code class="literal">main</code>:
              <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
<li class="listitem">
                    <a href="../../../../../../../libs/test/doc/src/examples/compilation/dynamic/main.cpp" target="_top">main.cpp</a>
                  </li>
<li class="listitem">
                    <a href="../../../../../../../libs/test/doc/src/examples/compilation/dynamic/test_hello.cpp" target="_top">test_hello.cpp</a>.
                  </li>
</ul></div>
            </li>
<li class="listitem">
              An example of using a custom <code class="literal">main</code>:
              <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
<li class="listitem">
                    <a href="../../../../../../../libs/test/doc/src/examples/compilation/dynamic_main/main.cpp" target="_top">main.cpp</a>
                  </li>
<li class="listitem">
                    <a href="../../../../../../../libs/test/doc/src/examples/compilation/dynamic_main/test_hello.cpp" target="_top">test_hello.cpp</a>.
                  </li>
</ul></div>
            </li>
</ul></div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2013 Richard Thomson<p>
        Distributed under the Boost Software License, Version 1.0. (See accompanying
        file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
      </p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="static_library.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../compilation.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../test_case_design.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>


================================================
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide/compilation/static_library.html
================================================
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Static Library</title>
<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="../../../index.html" title="Chapter&#160;1.&#160;Boost.Test">
<link rel="up" href="../compilation.html" title="Compilation and Usage Variants">
<link rel="prev" href="header_only.html" title="Header Only">
<link rel="next" href="shared_library.html" title="Shared Library">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="header_only.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../compilation.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="shared_library.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="test.guide.compilation.static_library"></a><a class="link" href="static_library.html" title="Static Library">Static Library</a>
</h4></div></div></div>
<p>
          To build Boost.Test as a static library, first build the boost build tools,
          as described in the <a href="../../../../../../../more/getting_started/index.html" target="_top">Getting
          Started</a> documentation. After you have bootstrapped the build tools,
          build the test library with by invoking <code class="literal">b2</code> with arguments
          similar to the following:
        </p>
<p>
</p>
<pre class="programlisting"><span class="identifier">b2</span> <span class="special">--</span><span class="identifier">with</span><span class="special">-</span><span class="identifier">test</span> <span class="identifier">link</span><span class="special">=</span><span class="keyword">static</span></pre>
<p>
        </p>
<p>
          This will place the resulting libraries in <code class="literal">stage/lib</code>
          at the top level of the boost tree.
        </p>
<p>
          In a static library configuration, Boost.Test is compiled into a single
          static library named <code class="literal">boost_unit_test_framework</code> and the
          test executable is linked against that library. Exactly one compilation
          unit in the test executable should define <a class="link" href="../../reference/configuration_macros.html#test.reference.compilation.boost_test_main"><code class="literal">BOOST_TEST_MAIN</code></a>,
          in order run the tests.
        </p>
<p>
</p>
<pre class="programlisting"><span class="comment">// In exactly one source file</span>
<span class="preprocessor">#define</span> <span class="identifier">BOOST_TEST_MAIN</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">test</span><span class="special">/</span><span class="identifier">unit_test</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>

<span class="comment">// test cases (optional)</span>
</pre>
<p>
        </p>
<p>
          Additional source files simply include the main unit test header and define
          more test cases and/or suites.
        </p>
<p>
</p>
<pre class="programlisting"><span class="comment">// In additional source files</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">test</span><span class="special">/</span><span class="identifier">unit_test</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>

<span class="comment">// test cases</span>
</pre>
<p>
        </p>
<p>
          To compile the library with no implementation of <code class="literal">main</code>,
          add <a class="link" href="../../reference/configuration_macros.html#test.reference.compilation.boost_test_no_main"><code class="literal">BOOST_TEST_NO_MAIN</code></a>
          to the <code class="literal">cxxflags</code> property for b2:
        </p>
<p>
</p>
<pre class="programlisting"><span class="identifier">b2</span> <span class="special">--</span><span class="identifier">with</span><span class="special">-</span><span class="identifier">test</span> <span class="identifier">link</span><span class="special">=</span><span class="keyword">static</span> <span class="identifier">define</span><span class="special">=</span><span class="identifier">BOOST_TEST_NO_MAIN</span></pre>
<p>
        </p>
<p>
          When the library is compiled with <a class="link" href="../../reference/configuration_macros.html#test.reference.compilation.boost_test_no_main"><code class="literal">BOOST_TEST_NO_MAIN</code></a>
          defined, one source file must provide a definition for <code class="literal">main</code>.
          The simplest is to delegate to <a class="link" href="../../reference/test_classes/unit_test_main.html" title="unit_test_main"><code class="literal">unit_test_main</code></a>
          and provide an implementation of an initialization function that manually
          adds test cases and suites to the test tree. Any test cases or test suites
          added with <a class="link" href="../../reference/test_case/boost_auto_test_case.html" title="BOOST_AUTO_TEST_CASE"><code class="literal">BOOST_AUTO_TEST_CASE</code></a>,
          <a class="link" href="../../reference/test_case/boost_fixture_test_case.html" title="BOOST_FIXTURE_TEST_CASE"><code class="literal">BOOST_FIXTURE_TEST_CASE</code></a>,
          <a class="link" href="../../reference/test_suite/boost_auto_test_suite.html" title="BOOST_AUTO_TEST_SUITE"><code class="literal">BOOST_AUTO_TEST_SUITE</code></a>
          or <a class="link" href="../../reference/test_suite/boost_fixture_test_suite.html" title="BOOST_FIXTURE_TEST_SUITE"><code class="literal">BOOST_FIXTURE_TEST_SUITE</code></a>
          are automatically added.
        </p>
<p>
</p>
<pre class="programlisting"><span class="comment">// In exactly one source file</span>
<span class="preprocessor">#define</span> <span class="identifier">BOOST_TEST_NO_MAIN</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">test</span><span class="special">/</span><span class="identifier">unit_test</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>

<span class="identifier">boost</span><span class="special">::</span><span class="identifier">unit_test</span><span class="special">::</span><span class="identifier">test_suite</span> <span class="special">*</span><span class="identifier">init_function</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">argc</span><span class="special">,</span> <span class="keyword">char</span> <span class="special">*</span><span class="identifier">argv</span><span class="special">[])</span>
<span class="special">{</span>
    <span class="comment">// create test cases and suites and return a pointer to any enclosing</span>
    <span class="comment">// suite, or 0.</span>
    <span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
<span class="special">}</span>

<span class="keyword">int</span> <span class="identifier">main</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">argc</span><span class="special">,</span> <span class="keyword">char</span> <span class="special">*</span><span class="identifier">argv</span><span class="special">[])</span>
<span class="special">{</span>
    <span class="keyword">return</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">unit_test</span><span class="special">::</span><span class="identifier">unit_test_main</span><span class="special">(</span><span class="identifier">init_function</span><span class="special">,</span> <span class="identifier">argc</span><span class="special">,</span> <span class="identifier">argv</span><span class="special">);</span>
<span class="special">}</span>
</pre>
<p>
        </p>
<h6>
<a name="test.guide.compilation.static_library.h0"></a>
          <span class="phrase"><a name="test.guide.compilation.static_library.example_source_code"></a></span><a class="link" href="static_library.html#test.guide.compilation.static_library.example_source_code">Example
          Source Code</a>
        </h6>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
              System under test:
              <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
<li class="listitem">
                    <a href="../../../../../../../libs/test/doc/src/system_under_test/hello/hello.hpp" target="_top">hello.hpp</a>
                  </li>
<li class="listitem">
                    <a href="../../../../../../../libs/test/doc/src/system_under_test/hello/hello.cpp" target="_top">hello.cpp</a>.
                  </li>
</ul></div>
            </li>
<li class="listitem">
              An example of using the standard implementation of <code class="literal">main</code>:
              <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
<li class="listitem">
                    <a href="../../../../../../../libs/test/doc/src/examples/compilation/static/main.cpp" target="_top">main.cpp</a>
                  </li>
<li class="listitem">
                    <a href="../../../../../../../libs/test/doc/src/examples/compilation/static/test_hello.cpp" target="_top">test_hello.cpp</a>.
                  </li>
</ul></div>
            </li>
<li class="listitem">
              An example of using a custom <code class="literal">main</code>:
              <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
<li class="listitem">
                    <a href="../../../../../../../libs/test/doc/src/examples/compilation/static_main/main.cpp" target="_top">main.cpp</a>
                  </li>
<li class="listitem">
                    <a href="../../../../../../../libs/test/doc/src/examples/compilation/static_main/test_hello.cpp" target="_top">test_hello.cpp</a>.
                  </li>
</ul></div>
            </li>
</ul></div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2013 Richard Thomson<p>
        Distributed under the Boost Software License, Version 1.0. (See accompanying
        file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
      </p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="header_only.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../compilation.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="shared_library.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>


================================================
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide/compilation.html
================================================
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Compilation and Usage Variants</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.Test">
<link rel="up" href="../guide.html" title="User's Guide">
<link rel="prev" href="../guide.html" title="User's Guide">
<link rel="next" href="compilation/minimal_header.html" title="Minimal Header">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../guide.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../guide.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="compilation/minimal_header.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="test.guide.compilation"></a><a class="link" href="compilation.html" title="Compilation and Usage Variants">Compilation and Usage Variants</a>
</h3></div></div></div>
<div class="toc"><dl class="toc">
<dt><span class="section"><a href="compilation/minimal_header.html">Minimal Header</a></span></dt>
<dt><span class="section"><a href="compilation/_main_.html"><code class="literal">main</code></a></span></dt>
<dt><span class="section"><a href="compilation/header_only.html">Header Only</a></span></dt>
<dt><span class="section"><a href="compilation/static_library.html">Static Library</a></span></dt>
<dt><span class="section"><a href="compilation/shared_library.html">Shared Library</a></span></dt>
</dl></div>
<p>
        Boost.Test is available in several forms:
      </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
            a single, minimal header
          </li>
<li class="listitem">
            a header-only form
          </li>
<li class="listitem">
            a static library
          </li>
<li class="listitem">
            a shared library
          </li>
</ul></div>
<p>
        The minimal header can be useful in situations where you don't already have
        the library built and want to quickly explore a test with a minimal amount
        of fuss. Once you need to create multiple unit tests, you will quickly outgrow
        the minimal header.
      </p>
<p>
        The header only form is useful when you don't want to be bothered with compiling
        the library. Once you have multiple compilation units with unit tests in
        each compilation unit, you will grow tired of the compilation cost involved
        with the header only form of the framework.
      </p>
<p>
        The static library form is the easiest to integrate into your build system
        as it doesn't require any installation of runtime files in order to execute
        your tests. This runtime simplicity comes at the cost of increased link times
        and executable sizes.
      </p>
<p>
        The dynamic library form requires the most effort for successful test execution,
        but provides faster link times than the static library, faster compile times
        than the header only form and provides all the features of the framework
        compared to the minimal header.
      </p>
<div class="caution"><table border="0" summary="Caution">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Caution]" src="../../../../../../doc/src/images/caution.png"></td>
<th align="left">Caution</th>
</tr>
<tr><td align="left" valign="top"><p>
          Boost.Test is not a thread-safe library. Care should be taken when automated
          tests create multiple threads and interact with data structures passed
          to Boost.Test macros or functions.
        </p></td></tr>
</table></div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2013 Richard Thomson<p>
        Distributed under the Boost Software License, Version 1.0. (See accompanying
        file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
      </p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../guide.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../guide.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="compilation/minimal_header.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>


================================================
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide/exception_safety_test.html
================================================
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Exception Safety Tests</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.Test 1.22.0">
<link rel="up" href="../guide.html" title="User's Guide">
<link rel="prev" href="manually_registering_test_cases_and_suites.html" title="Manually Registering Test Cases and Suites">
<link rel="next" href="../reference.html" title="Reference">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="manually_registering_test_cases_and_suites.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../guide.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../reference.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="test.guide.exception_safety_test"></a><a class="link" href="exception_safety_test.html" title="Exception Safety Tests">Exception Safety Tests</a>
</h3></div></div></div>
<p>
        Boost.Test provides support for a special kind of test called an exception
        safety test.
      </p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2013 Richard Thomson<p>
        Distributed under the Boost Software License, Version 1.0. (See accompanying
        file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
      </p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="manually_registering_test_cases_and_suites.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../guide.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../reference.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>


================================================
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide/manually_registering_test_cases_and_suites.html
================================================
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Manually Registering Test Cases and Suites</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.Test">
<link rel="up" href="../guide.html" title="User's Guide">
<link rel="prev" href="testing_protected_or_private_members.html" title="Testing Protected or Private Members">
<link rel="next" href="../reference.html" title="Reference">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="testing_protected_or_private_members.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../guide.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../reference.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="test.guide.manually_registering_test_cases_and_suites"></a><a class="link" href="manually_registering_test_cases_and_suites.html" title="Manually Registering Test Cases and Suites">Manually
      Registering Test Cases and Suites</a>
</h3></div></div></div>
<h5>
<a name="test.guide.manually_registering_test_cases_and_suites.h0"></a>
        <span class="phrase"><a name="test.guide.manually_registering_test_cases_and_suites.registering_test_cases"></a></span><a class="link" href="manually_registering_test_cases_and_suites.html#test.guide.manually_registering_test_cases_and_suites.registering_test_cases">Registering
        Test Cases</a>
      </h5>
<p>
        You may have an existing body of tests that you wish to register with Boost.Test
        manually. You can use <a class="link" href="../reference/test_case/boost_test_case.html" title="BOOST_TEST_CASE"><code class="literal">BOOST_TEST_CASE</code></a>
        to register a function taking no arguments and returning <code class="literal">void</code>
        as a test case:
      </p>
<p>
</p>
<pre class="programlisting"><span class="keyword">static</span> <span class="keyword">void</span> <span class="identifier">inserts_text</span><span class="special">()</span>
<span class="special">{</span>
    <span class="identifier">std</span><span class="special">::</span><span class="identifier">ostringstream</span> <span class="identifier">dest</span><span class="special">;</span>

    <span class="identifier">hello_world</span><span class="special">(</span><span class="identifier">dest</span><span class="special">);</span>

    <span class="identifier">BOOST_REQUIRE_EQUAL</span><span class="special">(</span><span class="string">"Hello, world!\n"</span><span class="special">,</span> <span class="identifier">dest</span><span class="special">.</span><span class="identifier">str</span><span class="special">());</span>
<span class="special">}</span>

<span class="keyword">static</span> <span class="keyword">void</span> <span class="identifier">register_function</span><span class="special">(</span><span class="identifier">test_suite</span><span class="special">&amp;</span> <span class="identifier">suite</span><span class="special">)</span>
<span class="special">{</span>
    <span class="identifier">suite</span><span class="special">.</span><span class="identifier">add</span><span class="special">(</span><span class="identifier">BOOST_TEST_CASE</span><span class="special">(</span><span class="identifier">inserts_text</span><span class="special">));</span>
<span class="special">}</span>
</pre>
<p>
      </p>
<p>
        You can use a test case method on a fixture class by registering a function
        that creates an instance of the fixture and invokes the test method. This
        assures that a fresh fixture is created for each test case, ensuring that
        each test executes independently of other tests.
      </p>
<p>
</p>
<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">hello_fixture</span>
<span class="special">{</span>
<span class="keyword">public</span><span class="special">:</span>
    <span class="keyword">void</span> <span class="identifier">stream_with_badbit_throws_runtime_error</span><span class="special">()</span>
    <span class="special">{</span>
        <span class="identifier">dest</span><span class="special">.</span><span class="identifier">clear</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">badbit</span><span class="special">);</span>

        <span class="identifier">BOOST_REQUIRE_THROW</span><span class="special">(</span><span class="identifier">hello_world</span><span class="special">(</span><span class="identifier">dest</span><span class="special">),</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">runtime_error</span><span class="special">);</span>
    <span class="special">}</span>

    <span class="identifier">std</span><span class="special">::</span><span class="identifier">ostringstream</span> <span class="identifier">dest</span><span class="special">;</span>
<span class="special">};</span>
</pre>
<p>
      </p>
<p>
</p>
<pre class="programlisting"><span class="keyword">static</span> <span class="keyword">void</span> <span class="identifier">stream_with_badbit_throws_runtime_error</span><span class="special">()</span>
<span class="special">{</span>
    <span class="identifier">hello_fixture</span><span class="special">().</span><span class="identifier">stream_with_badbit_throws_runtime_error</span><span class="special">();</span>
<span class="special">};</span>

<span class="keyword">static</span> <span class="keyword">void</span> <span class="identifier">register_method_function_instance</span><span class="special">(</span><span class="identifier">test_suite</span><span class="special">&amp;</span> <span class="identifier">suite</span><span class="special">)</span>
<span class="special">{</span>
    <span class="identifier">suite</span><span class="special">.</span><span class="identifier">add</span><span class="special">(</span><span class="identifier">BOOST_TEST_CASE</span><span class="special">(</span><span class="identifier">stream_with_badbit_throws_runtime_error</span><span class="special">));</span>
<span class="special">}</span>
</pre>
<p>
      </p>
<p>
        You can register a method on a class as a test case by using Boost.Bind to
        bind the method to a static instance of the class. This can cause oen test
        case to influence the execution of another test case because they share the
        static fixture.
      </p>
<p>
</p>
<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">hello_fixture</span> <span class="identifier">hf</span><span class="special">;</span>

<span class="keyword">static</span> <span class="keyword">void</span> <span class="identifier">register_method_static_instance</span><span class="special">(</span><span class="identifier">test_suite</span><span class="special">&amp;</span> <span class="identifier">suite</span><span class="special">)</span>
<span class="special">{</span>
    <span class="identifier">suite</span><span class="special">.</span><span class="identifier">add</span><span class="special">(</span><span class="identifier">BOOST_TEST_CASE</span><span class="special">(</span>
        <span class="identifier">boost</span><span class="special">::</span><span class="identifier">bind</span><span class="special">(&amp;</span><span class="identifier">hello_fixture</span><span class="special">::</span><span class="identifier">stream_with_badbit_throws_runtime_error</span><span class="special">,</span>
            <span class="special">&amp;</span><span class="identifier">hf</span><span class="special">)));</span>
<span class="special">}</span>
</pre>
<p>
      </p>
<p>
        A static instance of the class is used so that the instance exists at the
        time the test case is invoked. Test case invocation happens after registration,
        so using a local instance in the registration function is insufficient.
      </p>
<h5>
<a name="test.guide.manually_registering_test_cases_and_suites.h1"></a>
        <span class="phrase"><a name="test.guide.manually_registering_test_cases_and_suites.registering_test_suites"></a></span><a class="link" href="manually_registering_test_cases_and_suites.html#test.guide.manually_registering_test_cases_and_suites.registering_test_suites">Registering
        Test Suites</a>
      </h5>
<p>
        A new test suite is created with the <a class="link" href="../reference/test_suite/boost_test_suite.html" title="BOOST_TEST_SUITE"><code class="literal">BOOST_TEST_SUITE</code></a>
        macro. The new suite must be added to the master test suite to execute its
        tests. Any number of test suites can be added in a hierarchy of suites and
        any test case can be added to any test suite.
      </p>
<p>
</p>
<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">test_suite</span><span class="special">*</span>
<span class="identifier">init_unit_test_suite</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">argc</span><span class="special">,</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">argv</span><span class="special">[])</span>
<span class="special">{</span>
    <span class="identifier">test_suite</span><span class="special">*</span> <span class="identifier">hello_suite</span> <span class="special">=</span> <span class="identifier">BOOST_TEST_SUITE</span><span class="special">(</span><span class="string">"hello"</span><span class="special">);</span>
    <span class="identifier">register_function</span><span class="special">(*</span><span class="identifier">hello_suite</span><span class="special">);</span>
    <span class="identifier">register_method_static_instance</span><span class="special">(*</span><span class="identifier">hello_suite</span><span class="special">);</span>
    <span class="identifier">register_method_function_instance</span><span class="special">(*</span><span class="identifier">hello_suite</span><span class="special">);</span>
    <span class="identifier">framework</span><span class="special">::</span><span class="identifier">master_test_suite</span><span class="special">().</span><span class="identifier">add</span><span class="special">(</span><span class="identifier">hello_suite</span><span class="special">);</span>
    <span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
<span class="special">}</span>
</pre>
<p>
      </p>
<h5>
<a name="test.guide.manually_registering_test_cases_and_suites.h2"></a>
        <span class="phrase"><a name="test.guide.manually_registering_test_cases_and_suites.example_source_code"></a></span><a class="link" href="manually_registering_test_cases_and_suites.html#test.guide.manually_registering_test_cases_and_suites.example_source_code">Example
        Source Code</a>
      </h5>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
            System under test:
            <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
<li class="listitem">
                  <a href="../../../../../../libs/test/doc/src/system_under_test/hello/hello.hpp" target="_top">hello.hpp</a>
                </li>
<li class="listitem">
                  <a href="../../../../../../libs/test/doc/src/system_under_test/hello/hello.cpp" target="_top">hello.cpp</a>
                </li>
</ul></div>
          </li>
<li class="listitem">
            Tests:
            <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem">
                  <a href="../../../../../../libs/test/doc/src/examples/manual_registration.cpp" target="_top">manual_registration.cpp</a>
                </li></ul></div>
          </li>
</ul></div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2013 Richard Thomson<p>
        Distributed under the Boost Software License, Version 1.0. (See accompanying
        file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
      </p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="testing_protected_or_private_members.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../guide.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../reference.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>


================================================
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide/mocking_collaborators.html
================================================
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Mocking Collaborators</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.Test">
<link rel="up" href="../guide.html" title="User's Guide">
<link rel="prev" href="testing_file_io.html" title="Testing File I/O">
<link rel="next" href="testing__main_.html" title="Testing main">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="testing_file_io.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../guide.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="testing__main_.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="test.guide.mocking_collaborators"></a><a class="link" href="mocking_collaborators.html" title="Mocking Collaborators">Mocking Collaborators</a>
</h3></div></div></div>
<p>
        In <a class="link" href="testing_file_io.html" title="Testing File I/O">testing file I/O</a>, we
        showed an example of creating a class <code class="literal">fake_directory_scanner</code>
        that acted as a simple test double for an interface. Such simple fake objects
        are fine at first, but they're full of boring boiler plate code and after
        a while it becomes tedious to write them by hand.
      </p>
<p>
        For collaborators defined by a pure virtual base class, also known as an
        interface, there are mock object frameworks that alleviate the need to write
        the repetitive boiler plate code. One such mock object framework that is
        designed to work with Boost.Test is the <a href="http://turtle.sourceforge.net" target="_top">Turtle
        mock object framework</a>.
      </p>
<p>
        Here is an example of the file system tests written using turtle:
      </p>
<p>
</p>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="string">"directory_scanner.hpp"</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">turtle</span><span class="special">/</span><span class="identifier">mock</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>

<span class="identifier">MOCK_BASE_CLASS</span><span class="special">(</span><span class="identifier">mock_directory_scanner</span><span class="special">,</span> <span class="identifier">directory_scanner</span><span class="special">)</span>
<span class="special">{</span>
    <span class="identifier">MOCK_METHOD</span><span class="special">(</span><span class="identifier">begin</span><span class="special">,</span> <span class="number">1</span><span class="special">);</span>
    <span class="identifier">MOCK_METHOD</span><span class="special">(</span><span class="identifier">has_next</span><span class="special">,</span> <span class="number">0</span><span class="special">);</span>
    <span class="identifier">MOCK_METHOD</span><span class="special">(</span><span class="identifier">next</span><span class="special">,</span> <span class="number">0</span><span class="special">);</span>
<span class="special">};</span>
</pre>
<p>
      </p>
<p>
        Defining the mock object is considerably simpler than writing a fake object
        by hand. Turtle uses variadic argument macros and template based type deduction
        to infer the type signature of the methods simply from the number of arguments
        each method takes. This alleviates us from having to repeat all of this information
        from the interface into the implementation of the test double.
      </p>
<p>
        Now we can rewrite our tests to use a mock object configured for each test
        case:
      </p>
<p>
</p>
<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="keyword">const</span> <span class="identifier">ARBITRARY_DIRECTORY_NAME</span><span class="special">(</span><span class="string">"foo"</span><span class="special">);</span>
<span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="keyword">const</span> <span class="identifier">ARBITRARY_NON_TEXT_FILE_NAME</span><span class="special">(</span><span class="string">"foo.foo"</span><span class="special">);</span>
<span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="keyword">const</span> <span class="identifier">ARBITRARY_TEXT_FILE_NAME</span><span class="special">(</span><span class="string">"foo.txt"</span><span class="special">);</span>
<span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="keyword">const</span> <span class="identifier">ARBITRARY_OTHER_TEXT_FILE_NAME</span><span class="special">(</span><span class="string">"bar.txt"</span><span class="special">);</span>

<span class="keyword">struct</span> <span class="identifier">text_files_fixture</span>
<span class="special">{</span>
    <span class="identifier">text_files_fixture</span><span class="special">()</span>
    <span class="special">{</span>
        <span class="identifier">MOCK_EXPECT</span><span class="special">(</span><span class="identifier">scanner</span><span class="special">.</span><span class="identifier">begin</span><span class="special">).</span><span class="identifier">once</span><span class="special">().</span><span class="identifier">with</span><span class="special">(</span><span class="identifier">ARBITRARY_DIRECTORY_NAME</span><span class="special">);</span>
    <span class="special">}</span>

    <span class="keyword">void</span> <span class="identifier">expect_enumerate_non_text_file</span><span class="special">()</span>
    <span class="special">{</span>
        <span class="identifier">MOCK_EXPECT</span><span class="special">(</span><span class="identifier">scanner</span><span class="special">.</span><span class="identifier">has_next</span><span class="special">).</span><span class="identifier">once</span><span class="special">().</span><span class="identifier">returns</span><span class="special">(</span><span class="keyword">true</span><span class="special">);</span>
        <span class="identifier">MOCK_EXPECT</span><span class="special">(</span><span class="identifier">scanner</span><span class="special">.</span><span class="identifier">next</span><span class="special">).</span><span class="identifier">once</span><span class="special">().</span><span class="identifier">returns</span><span class="special">(</span><span class="identifier">ARBITRARY_NON_TEXT_FILE_NAME</span><span class="special">);</span>
    <span class="special">}</span>

    <span class="keyword">void</span> <span class="identifier">expect_enumerate_text_file</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">file_name</span> <span class="special">=</span> <span class="identifier">ARBITRARY_TEXT_FILE_NAME</span><span class="special">)</span>
    <span class="special">{</span>
        <span class="identifier">MOCK_EXPECT</span><span class="special">(</span><span class="identifier">scanner</span><span class="special">.</span><span class="identifier">has_next</span><span class="special">).</span><span class="identifier">once</span><span class="special">().</span><span class="identifier">returns</span><span class="special">(</span><span class="keyword">true</span><span class="special">);</span>
        <span class="identifier">MOCK_EXPECT</span><span class="special">(</span><span class="identifier">scanner</span><span class="special">.</span><span class="identifier">next</span><span class="special">).</span><span class="identifier">once</span><span class="special">().</span><span class="identifier">returns</span><span class="special">(</span><span class="identifier">file_name</span><span class="special">);</span>
        <span class="identifier">expected</span><span class="special">.</span><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">file_name</span><span class="special">);</span>
    <span class="special">}</span>

    <span class="keyword">void</span> <span class="identifier">expect_enumerate_end</span><span class="special">()</span>
    <span class="special">{</span>
        <span class="identifier">MOCK_EXPECT</span><span class="special">(</span><span class="identifier">scanner</span><span class="special">.</span><span class="identifier">has_next</span><span class="special">).</span><span class="identifier">once</span><span class="special">().</span><span class="identifier">returns</span><span class="special">(</span><span class="keyword">false</span><span class="special">);</span>
    <span class="special">}</span>

    <span class="identifier">mock_directory_scanner</span> <span class="identifier">scanner</span><span class="special">;</span>
    <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span> <span class="identifier">empty</span><span class="special">;</span>
    <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span> <span class="identifier">expected</span><span class="special">;</span>
<span class="special">};</span>

<span class="identifier">BOOST_FIXTURE_TEST_SUITE</span><span class="special">(</span><span class="identifier">test_text_files</span><span class="special">,</span> <span class="identifier">text_files_fixture</span><span class="special">);</span>

<span class="identifier">BOOST_AUTO_TEST_CASE</span><span class="special">(</span><span class="identifier">returns_empty_for_empty_directory</span><span class="special">)</span>
<span class="special">{</span>
    <span class="identifier">expect_enumerate_end</span><span class="special">();</span>

    <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span> <span class="identifier">files</span> <span class="special">=</span> <span class="identifier">text_files</span><span class="special">(</span><span class="identifier">ARBITRARY_DIRECTORY_NAME</span><span class="special">,</span> <span class="identifier">scanner</span><span class="special">);</span>

    <span class="identifier">BOOST_REQUIRE_EQUAL_COLLECTIONS</span><span class="special">(</span><span class="identifier">empty</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">empty</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span> <span class="identifier">files</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">files</span><span class="special">.</span><span class="identifier">end</span><span class="special">());</span>
<span class="special">}</span>

<span class="identifier">BOOST_AUTO_TEST_CASE</span><span class="special">(</span><span class="identifier">returns_empty_for_no_text_files</span><span class="special">)</span>
<span class="special">{</span>
    <span class="identifier">expect_enumerate_non_text_file</span><span class="special">();</span>
    <span class="identifier">expect_enumerate_end</span><span class="special">();</span>

    <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span> <span class="identifier">files</span> <span class="special">=</span> <span class="identifier">text_files</span><span class="special">(</span><span class="identifier">ARBITRARY_DIRECTORY_NAME</span><span class="special">,</span> <span class="identifier">scanner</span><span class="special">);</span>

    <span class="identifier">BOOST_REQUIRE_EQUAL_COLLECTIONS</span><span class="special">(</span><span class="identifier">empty</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">empty</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span> <span class="identifier">files</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">files</span><span class="special">.</span><span class="identifier">end</span><span class="special">());</span>
<span class="special">}</span>

<span class="identifier">BOOST_AUTO_TEST_CASE</span><span class="special">(</span><span class="identifier">returns_file_for_text_file</span><span class="special">)</span>
<span class="special">{</span>
    <span class="identifier">expect_enumerate_text_file</span><span class="special">();</span>
    <span class="identifier">expect_enumerate_end</span><span class="special">();</span>

    <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span> <span class="identifier">files</span> <span class="special">=</span> <span class="identifier">text_files</span><span class="special">(</span><span class="identifier">ARBITRARY_DIRECTORY_NAME</span><span class="special">,</span> <span class="identifier">scanner</span><span class="special">);</span>

    <span class="identifier">BOOST_REQUIRE_EQUAL_COLLECTIONS</span><span class="special">(</span><span class="identifier">expected</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">expected</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span> <span class="identifier">files</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">files</span><span class="special">.</span><span class="identifier">end</span><span class="special">());</span>
<span class="special">}</span>

<span class="identifier">BOOST_AUTO_TEST_CASE</span><span class="special">(</span><span class="identifier">returns_only_text_file_for_mixed_files</span><span class="special">)</span>
<span class="special">{</span>
    <span class="identifier">expect_enumerate_text_file</span><span class="special">();</span>
    <span class="identifier">expect_enumerate_non_text_file</span><span class="special">();</span>
    <span class="identifier">expect_enumerate_end</span><span class="special">();</span>

    <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span> <span class="identifier">files</span> <span class="special">=</span> <span class="identifier">text_files</span><span class="special">(</span><span class="identifier">ARBITRARY_DIRECTORY_NAME</span><span class="special">,</span> <span class="identifier">scanner</span><span class="special">);</span>

    <span class="identifier">BOOST_REQUIRE_EQUAL_COLLECTIONS</span><span class="special">(</span><span class="identifier">expected</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">expected</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span> <span class="identifier">files</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">files</span><span class="special">.</span><span class="identifier">end</span><span class="special">());</span>
<span class="special">}</span>

<span class="identifier">BOOST_AUTO_TEST_CASE</span><span class="special">(</span><span class="identifier">returns_all_text_files</span><span class="special">)</span>
<span class="special">{</span>
    <span class="identifier">expect_enumerate_text_file</span><span class="special">();</span>
    <span class="identifier">expect_enumerate_non_text_file</span><span class="special">();</span>
    <span class="identifier">expect_enumerate_text_file</span><span class="special">(</span><span class="identifier">ARBITRARY_OTHER_TEXT_FILE_NAME</span><span class="special">);</span>
    <span class="identifier">expect_enumerate_end</span><span class="special">();</span>

    <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span> <span class="identifier">files</span> <span class="special">=</span> <span class="identifier">text_files</span><span class="special">(</span><span class="identifier">ARBITRARY_DIRECTORY_NAME</span><span class="special">,</span> <span class="identifier">scanner</span><span class="special">);</span>

    <span class="identifier">BOOST_REQUIRE_EQUAL_COLLECTIONS</span><span class="special">(</span><span class="identifier">expected</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">expected</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span> <span class="identifier">files</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">files</span><span class="special">.</span><span class="identifier">end</span><span class="special">());</span>
<span class="special">}</span>

<span class="identifier">BOOST_AUTO_TEST_SUITE_END</span><span class="special">();</span>
</pre>
<p>
      </p>
<p>
        The tests themselves are largely unchanged and what is different is the intention
        revealing methods we placed in the test fixture. Mock object frameworks generally
        provide a rich set of methods on the mock object for setting the expectations
        on the number of times a method is called, such as <code class="literal">once()</code>,
        the expected arguments to a method, such as <code class="literal">with()</code>, and
        the return value of a method, such as <code class="literal">returns()</code>.
      </p>
<p>
        With a turtle mock, the expectations are verified when the mock object is
        destroyed. The mock is a member in our fixture and will be destroyed at the
        end of every test case.
      </p>
<h5>
<a name="test.guide.mocking_collaborators.h0"></a>
        <span class="phrase"><a name="test.guide.mocking_collaborators.example_source_code"></a></span><a class="link" href="mocking_collaborators.html#test.guide.mocking_collaborators.example_source_code">Example Source
        Code</a>
      </h5>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
            System under test:
            <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
<li class="listitem">
                  <a href="../../../../../../libs/test/doc/src/system_under_test/scanner/scanner.hpp" target="_top">scanner.hpp</a>
                </li>
<li class="listitem">
                  <a href="../../../../../../libs/test/doc/src/system_under_test/scanner/scanner.cpp" target="_top">scanner.cpp</a>
                </li>
<li class="listitem">
                  <a href="../../../../../../libs/test/doc/src/system_under_test/scanner/directory_scanner.hpp" target="_top">directory_scanner.hpp</a>
                </li>
<li class="listitem">
                  <a href="../../../../../../libs/test/doc/src/system_under_test/scanner/filesystem_directory_scanner.hpp" target="_top">filesystem_directory_scanner.hpp</a>
                </li>
</ul></div>
          </li>
<li class="listitem">
            Tests:
            <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem">
                  <a href="../../../../../../libs/test/doc/src/examples/turtle_mock.cpp" target="_top">turtle_mock.cpp</a>
                </li></ul></div>
          </li>
</ul></div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2013 Richard Thomson<p>
        Distributed under the Boost Software License, Version 1.0. (See accompanying
        file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
      </p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="testing_file_io.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../guide.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="testing__main_.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>


================================================
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide/test_case_design.html
================================================
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Test Case Design and Maintenance</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.Test">
<link rel="up" href="../guide.html" title="User's Guide">
<link rel="prev" href="compilation/shared_library.html" title="Shared Library">
<link rel="next" href="acceptance_tests.html" title="Acceptance Tests and Unit Tests">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="compilation/shared_library.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../guide.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="acceptance_tests.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="test.guide.test_case_design"></a><a class="link" href="test_case_design.html" title="Test Case Design and Maintenance">Test Case Design and Maintenance</a>
</h3></div></div></div>
<p>
        <a href="http://xunitpatterns.com/Goals%20of%20Test%20Automation.html" target="_top">xUnit
        Patterns</a><a href="#ftn.test.guide.test_case_design.f0" class="footnote" name="test.guide.test_case_design.f0"><sup class="footnote">[2]</sup></a>, by Gerard Meszaros, presents several high level objectives for
        automated tests and individual goals for achieving those objectives:
      </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
            Objective: Tests should help us improve quality.
            <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
<li class="listitem">
                  Goal: <a class="link" href="test_case_design.html#tests_as_specifications">Tests as specifications</a>
                </li>
<li class="listitem">
                  Goal: <a class="link" href="test_case_design.html#bug_repellant">Bug repellant</a>
                </li>
<li class="listitem">
                  Goal: <a class="link" href="test_case_design.html#defect_localization">Defect localization</a>
                </li>
</ul></div>
          </li>
<li class="listitem">
            Objective: Tests should help us understand the system under test.
            <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem">
                  Goal: <a class="link" href="test_case_design.html#tests_as_documentation">Tests as documentation</a>
                </li></ul></div>
          </li>
<li class="listitem">
            Objective: Tests should reduce, not increase, risk.
            <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
<li class="listitem">
                  Goal: <a class="link" href="test_case_design.html#tests_as_safety_net">Tests as safety net</a>
                </li>
<li class="listitem">
                  Goal: <a class="link" href="test_case_design.html#do_no_harm">Do No Harm</a>
                </li>
</ul></div>
          </li>
<li class="listitem">
            Objective: Tests should be easy to run.
            <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
<li class="listitem">
                  Goal: <a class="link" href="test_case_design.html#fully_automated_test">Fully Automated Test</a>
                </li>
<li class="listitem">
                  Goal: <a class="link" href="test_case_design.html#self_checking_test">Self-Checking Test</a>
                </li>
<li class="listitem">
                  Goal: <a class="link" href="test_case_design.html#repeatable_test">Repeatable Test</a>
                </li>
</ul></div>
          </li>
<li class="listitem">
            Objective: Tests should be easy to write and maintain.
            <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
<li class="listitem">
                  Goal: <a class="link" href="test_case_design.html#simple_tests">Simple Tests</a>
                </li>
<li class="listitem">
                  Goal: <a class="link" href="test_case_design.html#expressive_tests">Expressive Tests</a>
                </li>
<li class="listitem">
                  Goal: <a class="link" href="test_case_design.html#separation_of_concerns">Separation of Concerns</a>
                </li>
</ul></div>
          </li>
<li class="listitem">
            Objective: Tests should require minimal maintenance as the system evolves
            around them.
            <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem">
                  Goal: <a class="link" href="test_case_design.html#robust_test">Robust Test</a>
                </li></ul></div>
          </li>
</ul></div>
<p>
        In this section, we will discuss how the facilities in Boost.Test can support
        these goals; see <span class="emphasis"><em>xUnit Patterns</em></span> for the description
        and rationale of these goals.
      </p>
<a name="tests_as_specifications"></a><h5>
<a name="test.guide.test_case_design.h0"></a>
        <span class="phrase"><a name="test.guide.test_case_design.goal__tests_as_specifications"></a></span><a class="link" href="test_case_design.html#test.guide.test_case_design.goal__tests_as_specifications">Goal:
        Tests as Specifications</a>
      </h5>
<p>
        Tests can serve as specifications for the system under test if we write the
        test for the system first, using test-driven development. We imagine the
        perfect system that does exactly what we need and write a test as if that
        system existed. In order to achieve a failing test, we write just enough
        of the implementation to make the test compile.
      </p>
<p>
        A good way to ensure that the implementation causes a test failure is for
        called methods and functions to throw an exception indicating that the method
        or function called is not implemented:
</p>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">stdexcept</span><span class="special">&gt;</span>

<span class="keyword">void</span> <span class="identifier">free_function</span><span class="special">()</span>
<span class="special">{</span>
    <span class="keyword">throw</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">runtime_error</span><span class="special">(</span><span class="string">"free_function not implemented."</span><span class="special">);</span>
<span class="special">}</span>
</pre>
<p>
        We get a failing test right away, while still satisfying just enough syntax
        to satisfy the compiler.
      </p>
<a name="bug_repellant"></a><h5>
<a name="test.guide.test_case_design.h1"></a>
        <span class="phrase"><a name="test.guide.test_case_design.goal__bug_repellant"></a></span><a class="link" href="test_case_design.html#test.guide.test_case_design.goal__bug_repellant">Goal:
        Bug Repellant</a>
      </h5>
<p>
        It is well known that the longer a bug remains undetected in a software,
        the more expensive it is to fix.<a href="#ftn.test.guide.test_case_design.f1" class="footnote" name="test.guide.test_case_design.f1"><sup class="footnote">[3]</sup></a> If we are practicing test-driven development, then we find bugs
        in our implementation as soon as we code them. The time to find a bug in
        this manner can be as little as seconds and was demonstrated in the tutorial
        <a class="link" href="../tutorials/hello_test.html" title="Hello, Test!">"Hello, Test!"</a>.
      </p>
<p>
        The easiest way to achieve this rapid feedback is to run the tests as part
        of the build. The details vary depending on your build system.
      </p>
<p>
        In Visual Studio 2012, this is most readily achieved by setting a post-build
        build event as shown below. Because <code class="literal">$(TargetPath)</code> may
        contain spaces, the variable is surrounded by double quotes to ensure that
        the entire path to the executable is found. The description is given generically
        using <code class="literal">$(TargetName)</code> so that this build event can be copied
        to any test project's properties and be used without modification. Take care
        that you define the build event for all configurations and all platforms
        used by your build system so that the unit tests always run.
      </p>
<p>
        <span class="inlinemediaobject"><img src="../../../src/user-vs2012-build-event.png" alt="user-vs2012-build-event"></span>
      </p>
<p>
        If you are using a <code class="literal">Makefile</code> to compile your code, create
        a phony target that depends on your unit test executable and specify the
        command to execute your unit test and create the phony target if the test
        passes. This will ensure that the unit tests continue to run as long as they
        fail because the phony target will only be updated when the tests pass.
      </p>
<p>
        If you are using Boost.Build and Jamfiles to compile your code, you can use
        the rules in the <code class="literal">testing</code> module to incorporate your unit
        tests into your build. The <code class="literal">unit-test</code> rule will build an
        executable and run it, failing the build when the executable returns a non-zero
        exit status. Other rules in the <code class="literal">testing</code> module may also
        be useful.
      </p>
<a name="defect_localization"></a><h5>
<a name="test.guide.test_case_design.h2"></a>
        <span class="phrase"><a name="test.guide.test_case_design.goal__defect_localization"></a></span><a class="link" href="test_case_design.html#test.guide.test_case_design.goal__defect_localization">Goal: Defect
        Localization</a>
      </h5>
<p>
        If we keep our test cases focused on only a single behavior in our system
        under test, then there is only a single cause for any particular unit test
        to fail. We saw this in <a class="link" href="../tutorials/testing_with_exceptions.html" title="Testing with Exceptions">"Testing
        With Exceptions"</a> when we added a new test case to <code class="literal">hello_world</code>
        for a bad stream. By choosing <a href="http://c2.com/cgi/wiki?IntentionRevealingNames" target="_top">intention
        revealing names</a> for our test cases, we can identify the source of
        the failure simply by reading the name of the failed test case.
      </p>
<p>
        Since each test case excercises only one scenario for the system under test,
        we must make at least one test case for each possible scenario. We can use
        the <a href="http://en.wikipedia.org/wiki/Cyclomatic_complexity" target="_top">cyclomatic
        complexity</a> as a rough proxy for the number of tests cases needed
        for any particular method or function to ensure that we have sufficient
        <a href="http://en.wikipedia.org/wiki/Code_coverage" target="_top">coverage</a>
        of the system under test.
      </p>
<a name="tests_as_documentation"></a><h5>
<a name="test.guide.test_case_design.h3"></a>
        <span class="phrase"><a name="test.guide.test_case_design.goal__tests_as_documentation"></a></span><a class="link" href="test_case_design.html#test.guide.test_case_design.goal__tests_as_documentation">Goal:
        Tests as Documentation</a>
      </h5>
<p>
        When confronted with a new software component or a new code base, how do
        we understand its behavior? We can read the documentation, but ultimately
        the behavior is defined by the code executed. Comments and documentation
        can lag the actual implementation. Sometimes, the only answer to our questions
        about a software component come from the implementation. If the component
        is only available to us in binary form, we don't have the luxury of consulting
        the source code in order to answer our questions.
      </p>
<p>
        Unit tests can serve as a form of executable documentation for software components.
        They tell us how the system responds to the scenarios orchestrated by the
        test cases.
      </p>
<p>
        When faced with a confusing aspect of a software component, we can answer
        questions about the behavior of the component by writing a unit test that
        describes our hypothesis about the component's behavior. If the unit test
        passes, we have verified our hypothesis. If the unit test fails, our hypothesis
        was incorrect; either way, we have learned something about the component.
        We can use unit tests to document subtle and unexpected behaviors of components.
        Unit tests are also the perfect documentation for a bug report on a component
        maintained by others.
      </p>
<a name="tests_as_safety_net"></a><h5>
<a name="test.guide.test_case_design.h4"></a>
        <span class="phrase"><a name="test.guide.test_case_design.goal__tests_as_safety_net"></a></span><a class="link" href="test_case_design.html#test.guide.test_case_design.goal__tests_as_safety_net">Goal: Tests
        as Safety Net</a>
      </h5>
<p>
        When we start building a software system, we are able to keep all the details
        of the system in our mind because the system is small. As the size of the
        system increases, it becomes harder and harder to keep all the details of
        the system in mind as we make modifications. A comprehensive suite of unit
        tests over the system give us an automated regression test that gives us
        the confidence of knowing that our changes are not introducing any problems
        elsewhere in the code.
      </p>
<a name="do_no_harm"></a><h5>
<a name="test.guide.test_case_design.h5"></a>
        <span class="phrase"><a name="test.guide.test_case_design.goal__do_no_harm"></a></span><a class="link" href="test_case_design.html#test.guide.test_case_design.goal__do_no_harm">Goal:
        Do No Harm</a>
      </h5>
<p>
        Automated tests should only reduce risk, not introduce risk into the system.
        To achieve this, we want to keep all test code separated from production
        code. The easiest way to do this is to put the system under test into a library
        (static or shared) and link the test executable against the library. We saw
        this in the tutorial <a class="link" href="../tutorials/hello_test.html" title="Hello, Test!">"Hello,
        Test!"</a>, when we separated the system under test into the <code class="literal">hello</code>
        library and the test code into <code class="literal">test_hello.cpp</code>.
      </p>
<a name="fully_automated_test"></a><h5>
<a name="test.guide.test_case_design.h6"></a>
        <span class="phrase"><a name="test.guide.test_case_design.goal__fully_automated_test"></a></span><a class="link" href="test_case_design.html#test.guide.test_case_design.goal__fully_automated_test">Goal: Fully
        Automated Test</a>
      </h5>
<p>
        Boost.Test supports fully automated tests by allowing us to supply the inputs
        to the system under test in each test case in order to drive the system into
        the scenario of interest. Test cases should never rely on user input, or
        they will not be fully automated tests that can run unattended.
      </p>
<a name="self_checking_test"></a><h5>
<a name="test.guide.test_case_design.h7"></a>
        <span class="phrase"><a name="test.guide.test_case_design.goal__self_checking_test"></a></span><a class="link" href="test_case_design.html#test.guide.test_case_design.goal__self_checking_test">Goal: Self-Checking
        Test</a>
      </h5>
<p>
        Boost.Test supports self-checking tests through its rich set of <a class="link" href="../reference/assertion.html" title="Test Assertions">assertions</a>.
        Each test case supplies the inputs to the system under test and validates
        the behavior of the system using assertions. Self-checking tests report only
        bad news and good news results in no notifications. The default output from
        the test runner only reports failing tests and a summary of all tests executed.
        The test runner also returns a non-zero status code when a test fails, allowing
        easy failure of <a href="http://en.wikipedia.org/wiki/Continuous_integration" target="_top">continuous
        integration</a> builds.
      </p>
<a name="repeatable_test"></a><h5>
<a name="test.guide.test_case_design.h8"></a>
        <span class="phrase"><a name="test.guide.test_case_design.goal__repeatable_test"></a></span><a class="link" href="test_case_design.html#test.guide.test_case_design.goal__repeatable_test">Goal:
        Repeatable Test</a>
      </h5>
<p>
        We should get the same results from automated tests every time we run them,
        provided the implementation of the system under test has not changed between
        runs. In the context of unit testing, this implies that a test case must
        control all the collaborators that can influence the system.
      </p>
<p>
        The most troublesome collaborators are among the following: * current date
        and time * device input * file system * system services (Windows registry,
        networking, etc.) * C style apis
      </p>
<p>
        In the book "Working Effectively with Legacy Code", Michael Feathers
        described a number of techniques for decoupling the system under test from
        such troublesome collaborators that can cause unit tests to spuriously fail.
        All the techniques are variations on a theme: introduce a level of indirection
        to decouple the system under test from a collaborator. C++ offers <a href="http://en.wikipedia.org/wiki/Template_metaprogramming#Static_polymorphism" target="_top">static
        polymorphism</a> via templates as well as the usual dynamic polymorphism
        via interfaces to decouple a system under test from a collaborator.
      </p>
<a name="simple_tests"></a><h5>
<a name="test.guide.test_case_design.h9"></a>
        <span class="phrase"><a name="test.guide.test_case_design.goal__simple_tests"></a></span><a class="link" href="test_case_design.html#test.guide.test_case_design.goal__simple_tests">Goal:
        Simple Tests</a>
      </h5>
<p>
        We keep tests simple by exercising only one scenario for each test case.
        Simple test cases read linearly through the phases of setup, exercise and
        verify. Trying to exercise too much functionality in a single test case can
        introduce unnecessary complexity into the test.
      </p>
<p>
        Duplication between test cases can make tests hard to read by distracting
        us from the steady rhythm of setup, exercise and verify of test cases. You
        may find it useful to apply the <a href="http://en.wikipedia.org/wiki/Rule_of_three_(computer_programming)" target="_top">rule
        of three</a> when writing test cases to decide when to extract duplication
        into a fixture.
      </p>
<a name="expressive_tests"></a><h5>
<a name="test.guide.test_case_design.h10"></a>
        <span class="phrase"><a name="test.guide.test_case_design.goal__expressive_tests"></a></span><a class="link" href="test_case_design.html#test.guide.test_case_design.goal__expressive_tests">Goal:
        Expressive Tests</a>
      </h5>
<p>
        Sometimes low-level setup details get in the way of a test reading clearly.
        This could be the result of a complicated data structure needed in order
        to exercise the system down a particular code path. Similarly, the verification
        of a result produced by the system under test may involve a series of assertions
        that make the test hard to follow. Boost.Test provides fixtures as a way
        to localize these distracting details by extracting setup and assertion methods
        into the fixture.
      </p>
<p>
        Over time we build up a series of methods in the fixture that allow us to
        express domain concepts succinctly and clearly in the tests, making them
        more expressive of the scenario in the domain. Fixtures can be combined through
        aggregation or inheritance in order to express combinations and hierarchies
        of domain concepts.
      </p>
<a name="separation_of_concerns"></a><h5>
<a name="test.guide.test_case_design.h11"></a>
        <span class="phrase"><a name="test.guide.test_case_design.goal__separation_of_concerns"></a></span><a class="link" href="test_case_design.html#test.guide.test_case_design.goal__separation_of_concerns">Goal:
        Separation of Concerns</a>
      </h5>
<p>
        We keep test code separated from production code with the packaging mechanisms
        provided by C++. Production code is supplied to the test executable as a
        library, either static or dynamic. The test code resides in separate source
        files from the production code. The production code consumed by the test
        code is compiled with the exact same preprocessor settings as the production
        code to ensure that tests do not influence the production code.
      </p>
<p>
        We keep concerns separated in our tests by testing each concern in its own
        test case. Each test case exercises a single scenario and our tests exercise
        the responsibilities or classes individually. If we are practicing test-driven
        development, we keep the <a href="http://en.wikipedia.org/wiki/Single_responsibility_principle" target="_top">single
        responsibility principle</a> in mind as we are creating the system to
        satisfy the evolving tests. When our tests start involving more than one
        concern, it can be a sign that our system under test is covering more than
        one responsibility.
      </p>
<a name="robust_test"></a><h5>
<a name="test.guide.test_case_design.h12"></a>
        <span class="phrase"><a name="test.guide.test_case_design.goal__robust_test"></a></span><a class="link" href="test_case_design.html#test.guide.test_case_design.goal__robust_test">Goal:
        Robust Test</a>
      </h5>
<p>
        Test cases are robust when small changes to the system under test result
        in a small number of test cases failing. If a small change to the system
        results in many test cases failing, then our tests are not robust. If our
        tests cases do not sufficiently isolate the system under test from its collaborators,
        then a change to one part of the system can cause tests on seemingly unrelated
        parts of the system to fail. If we have repeated assertions in many test
        cases for the same system under test, then many test cases can fail if that
        single assertion fails. Each of these situations is a case of overlap between
        test cases; in the first case, the overlap is between the parts of the production
        code unrelated to the system under test that we exercise and in the second
        case, the overlap is between test cases on the system under test.
      </p>
<div class="footnotes">
<br><hr style="width:100; text-align:left;margin-left: 0">
<div id="ftn.test.guide.test_case_design.f0" class="footnote"><p><a href="#test.guide.test_case_design.f0" class="para"><sup class="para">[2] </sup></a>
          The term <span class="emphasis"><em>xUnit</em></span> is a generic term for unit testing
          frameworks, such as jUnit. The advice in <span class="emphasis"><em>xUnit Patterns</em></span>
          applies equally well to Boost.Test.
        </p></div>
<div id="ftn.test.guide.test_case_design.f1" class="footnote"><p><a href="#test.guide.test_case_design.f1" class="para"><sup class="para">[3] </sup></a>
          <a href="https://en.wikipedia.org/wiki/Software_testing#Economics" target="_top">Software
          Testing: Economics</a>
        </p></div>
</div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2013 Richard Thomson<p>
        Distributed under the Boost Software License, Version 1.0. (See accompanying
        file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
      </p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="compilation/shared_library.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../guide.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="acceptance_tests.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>


================================================
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide/testing__main_.html
================================================
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Testing main</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.Test">
<link rel="up" href="../guide.html" title="User's Guide">
<link rel="prev" href="mocking_collaborators.html" title="Mocking Collaborators">
<link rel="next" href="testing_protected_or_private_members.html" title="Testing Protected or Private Members">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="mocking_collaborators.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../guide.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="testing_protected_or_private_members.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="test.guide.testing__main_"></a><a class="link" href="testing__main_.html" title="Testing main">Testing <code class="literal">main</code></a>
</h3></div></div></div>
<p>
        If there is considerable logic in an appliation's <code class="literal">main</code>
        function, this can be difficult to unit test. The <a href="http://en.wikipedia.org/wiki/One_definition_rule" target="_top">One
        Definition Rule</a> prevents us from having the application's <code class="literal">main</code>
        and the unit test executable's <code class="literal">main</code> in the same executable.
        Furthermore, even if we could perform some trick to resolve the multiply
        defined symbol<a href="#ftn.test.guide.testing__main_.f0" class="footnote" name="test.guide.testing__main_.f0"><sup class="footnote">[4]</sup></a>, we would still need to figure out how to link the test executable
        with the application's <code class="literal">main</code> function to test the code.
      </p>
<p>
        When it becomes difficult to test code where it is currently, such as in
        the body of <code class="literal">main</code>, the simplest thing to do is to move
        the code somewhere else that makes it easy to test. Here is one way to accomplish
        this:
      </p>
<div class="orderedlist"><ol class="orderedlist" type="1">
<li class="listitem">
            rename <code class="literal">main</code> to <code class="literal">app_main</code>.
          </li>
<li class="listitem">
            move <code class="literal">app_main</code> to a library.
          </li>
<li class="listitem">
            create a simple delegating <code class="literal">main</code> that calls <code class="literal">app_main</code>.
          </li>
<li class="listitem">
            write tests for <code class="literal">app_main</code> by linking against the library.
          </li>
</ol></div>
<p>
        The delegating <code class="literal">main</code> looks like this:
</p>
<pre class="programlisting"><span class="keyword">extern</span> <span class="keyword">int</span> <span class="identifier">app_main</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">argc</span><span class="special">,</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">argv</span><span class="special">[]);</span>

<span class="keyword">int</span> <span class="identifier">main</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">argc</span><span class="special">,</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">argv</span><span class="special">[])</span>
<span class="special">{</span>
    <span class="keyword">return</span> <span class="identifier">app_main</span><span class="special">(</span><span class="identifier">argc</span><span class="special">,</span> <span class="identifier">argv</span><span class="special">);</span>
<span class="special">}</span>
</pre>
<p>
        If you don't already have a library for <code class="literal">app_main</code>, then
        create one and add all the other application code to the library as well.
        The build logic for making the executable will consist of compiling a single
        source file containing your delegating implementation of <code class="literal">main</code>
        and linking against a library containing the rest of the application. This
        will give you a starting point for writing unit tests for anything in your
        application.
      </p>
<div class="footnotes">
<br><hr style="width:100; text-align:left;margin-left: 0">
<div id="ftn.test.guide.testing__main_.f0" class="footnote"><p><a href="#test.guide.testing__main_.f0" class="para"><sup class="para">[4] </sup></a>
          We could abuse the C++ preprocessor or use object file symbol modification.
        </p></div>
</div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2013 Richard Thomson<p>
        Distributed under the Boost Software License, Version 1.0. (See accompanying
        file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
      </p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="mocking_collaborators.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../guide.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="testing_protected_or_private_members.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>


================================================
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide/testing_file_i_o.html
================================================
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Testing File I/O</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.Test 1.22.0">
<link rel="up" href="../guide.html" title="User's Guide">
<link rel="prev" href="acceptance_tests.html" title="Acceptance Tests and Unit Tests">
<link rel="next" href="testing__main_.html" title="Testing main">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="acceptance_tests.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../guide.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="testing__main_.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="test.guide.testing_file_i_o"></a><a class="link" href="testing_file_i_o.html" title="Testing File I/O">Testing File I/O</a>
</h3></div></div></div>
<p>
        A common problem encountered in unit testing is interaction with the file
        system: scanning directories, creating files, opening files, reading files,
        writing files, creating symbolic links and so-on. Interacting directly with
        the file system when executing unit tests can lead to a failure of tests
        to be <a class="link" href="test_case_design.html#robust_test">robust</a> or <a class="link" href="test_case_design.html#repeatable_test">repeatable</a>.
        We also want our unit tests to be fast; an execution time of 100 milliseconds
        is considered a slow unit test. Interacting directly with the file system
        can make our unit tests take too long to execute.
      </p>
<p>
        The simplest approach is to wrap file system operations in an interface and
        perform all operations through the interface. Consider the following example
        of a function that returns a vector of filenames ending in ".txt"
        in a given directory:
      </p>
<p>
</p>
<pre class="programlisting"><span class="keyword">extern</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span> <span class="identifier">text_files</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">directory</span><span class="special">);</span>
</pre>
<p>
      </p>
<p>
        How can we unit test <code class="literal">text_files</code> without relying on the
        actual contents of the file system? We can decouple <code class="literal">text_files</code>
        from the file system by introducing an interface:
      </p>
<p>
</p>
<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">directory_scanner</span><span class="special">;</span>

<span class="keyword">extern</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span> <span class="identifier">text_files</span><span class="special">(</span>
    <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">directory</span><span class="special">,</span>
    <span class="identifier">directory_scanner</span><span class="special">&amp;</span> <span class="identifier">scanner</span><span class="special">);</span>
</pre>
<p>
      </p>
<p>
        We've used a forward declaration of <code class="literal">directory_scanner</code>
        where <code class="literal">text_files</code> is declared. The interface looks like
        this:
      </p>
<p>
</p>
<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">directory_scanner</span>
<span class="special">{</span>
<span class="keyword">public</span><span class="special">:</span>
    <span class="keyword">virtual</span> <span class="special">~</span><span class="identifier">directory_scanner</span><span class="special">()</span> <span class="special">{}</span>

    <span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">begin</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="identifier">directory</span><span class="special">)</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span>

    <span class="keyword">virtual</span> <span class="keyword">bool</span> <span class="identifier">has_next</span><span class="special">()</span> <span class="keyword">const</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span>

    <span class="keyword">virtual</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">next</span><span class="special">()</span> <span class="keyword">const</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span>
<span class="special">};</span>
</pre>
<p>
      </p>
<p>
        The interface <code class="literal">directory_scanner</code> is used to isolate the
        free function <code class="literal">text_files</code> from directly interacting with
        the file system. In the unit tests, we use an implementation of <code class="literal">directory_scanner</code>
        that senses how <code class="literal">text_files</code> uses the interface and allows
        us to control the data made available to <code class="literal">text_files</code>. The
        tests can use a hand-crafted fake implementation or an implementation from
        a mock library. The fake might look something like this:
      </p>
<p>
</p>
<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">fake_directory_scanner</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">directory_scanner</span>
<span class="special">{</span>
<span class="keyword">public</span><span class="special">:</span>
    <span class="identifier">fake_directory_scanner</span><span class="special">()</span>
        <span class="special">:</span> <span class="identifier">begin_called</span><span class="special">(</span><span class="keyword">false</span><span class="special">),</span>
        <span class="identifier">has_next_called</span><span class="special">(</span><span class="keyword">false</span><span class="special">),</span>
        <span class="identifier">next_called</span><span class="special">(</span><span class="keyword">false</span><span class="special">),</span>
        <span class="identifier">next_call_count</span><span class="special">(</span><span class="number">0U</span><span class="special">)</span>
    <span class="special">{}</span>

    <span class="keyword">virtual</span> <span class="special">~</span><span class="identifier">fake_directory_scanner</span><span class="special">()</span> <span class="special">{}</span>

    <span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">begin</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="identifier">directory</span><span class="special">)</span>
    <span class="special">{</span>
        <span class="identifier">begin_called</span> <span class="special">=</span> <span class="keyword">true</span><span class="special">;</span>
        <span class="identifier">begin_last_directory</span> <span class="special">=</span> <span class="identifier">directory</span><span class="special">;</span>
    <span class="special">}</span>
    <span class="keyword">bool</span> <span class="identifier">begin_called</span><span class="special">;</span>
    <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">begin_last_directory</span><span class="special">;</span>

    <span class="keyword">virtual</span> <span class="keyword">bool</span> <span class="identifier">has_next</span><span class="special">()</span> <span class="keyword">const</span>
    <span class="special">{</span>
        <span class="identifier">has_next_called</span> <span class="special">=</span> <span class="keyword">true</span><span class="special">;</span>
        <span class="keyword">return</span> <span class="identifier">next_call_count</span> <span class="special">&lt;=</span> <span class="identifier">next_fake_results</span><span class="special">.</span><span class="identifier">size</span><span class="special">();</span>
    <span class="special">}</span>
    <span class="keyword">mutable</span> <span class="keyword">bool</span> <span class="identifier">has_next_called</span><span class="special">;</span>
    <span class="keyword">bool</span> <span class="identifier">has_next_fake_result</span><span class="special">;</span>

    <span class="keyword">virtual</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">next</span><span class="special">()</span> <span class="keyword">const</span>
    <span class="special">{</span>
        <span class="identifier">next_called</span> <span class="special">=</span> <span class="keyword">true</span><span class="special">;</span>
        <span class="special">++</span><span class="identifier">next_call_count</span><span class="special">;</span>
        <span class="keyword">return</span> <span class="identifier">has_next</span><span class="special">()</span> <span class="special">?</span> <span class="identifier">next_fake_results</span><span class="special">[</span><span class="identifier">next_call_count</span> <span class="special">-</span> <span class="number">1U</span><span class="special">]</span> <span class="special">:</span> <span class="string">""</span><span class="special">;</span>
    <span class="special">}</span>
    <span class="keyword">mutable</span> <span class="keyword">bool</span> <span class="identifier">next_called</span><span class="special">;</span>
    <span class="keyword">mutable</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">next_call_count</span><span class="special">;</span>
    <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span> <span class="identifier">next_fake_results</span><span class="special">;</span>
<span class="special">};</span>
</pre>
<p>
      </p>
<p>
        The tests for <code class="literal">text_files</code> use the <code class="literal">fake_directory_scanner</code>
        to specify the configuration of the file system for the different test cases:
      </p>
<p>
</p>
<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">text_files_fixture</span>
<span class="special">{</span>
    <span class="identifier">fake_directory_scanner</span> <span class="identifier">scanner</span><span class="special">;</span>
<span class="special">};</span>

<span class="identifier">BOOST_FIXTURE_TEST_SUITE</span><span class="special">(</span><span class="identifier">test_text_files</span><span class="special">,</span> <span class="identifier">text_files_fixture</span><span class="special">);</span>

<span class="identifier">BOOST_AUTO_TEST_CASE</span><span class="special">(</span><span class="identifier">returns_empty_for_empty_directory</span><span class="special">)</span>
<span class="special">{</span>
    <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span> <span class="identifier">empty</span><span class="special">;</span>

    <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span> <span class="identifier">files</span> <span class="special">=</span> <span class="identifier">text_files</span><span class="special">(</span><span class="string">"foo"</span><span class="special">,</span> <span class="identifier">scanner</span><span class="special">);</span>

    <span class="identifier">BOOST_REQUIRE_EQUAL_COLLECTIONS</span><span class="special">(</span><span class="identifier">empty</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">empty</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span> <span class="identifier">files</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">files</span><span class="special">.</span><span class="identifier">end</span><span class="special">());</span>
<span class="special">}</span>

<span class="identifier">BOOST_AUTO_TEST_CASE</span><span class="special">(</span><span class="identifier">returns_empty_for_no_text_files</span><span class="special">)</span>
<span class="special">{</span>
    <span class="identifier">scanner</span><span class="special">.</span><span class="identifier">next_fake_results</span><span class="special">.</span><span class="identifier">push_back</span><span class="special">(</span><span class="string">"foo.foo"</span><span class="special">);</span>
    <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span> <span class="identifier">empty</span><span class="special">;</span>

    <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span> <span class="identifier">files</span> <span class="special">=</span> <span class="identifier">text_files</span><span class="special">(</span><span class="string">"foo"</span><span class="special">,</span> <span class="identifier">scanner</span><span class="special">);</span>

    <span class="identifier">BOOST_REQUIRE_EQUAL_COLLECTIONS</span><span class="special">(</span><span class="identifier">empty</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">empty</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span> <span class="identifier">files</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">files</span><span class="special">.</span><span class="identifier">end</span><span class="special">());</span>
<span class="special">}</span>

<span class="identifier">BOOST_AUTO_TEST_CASE</span><span class="special">(</span><span class="identifier">returns_file_for_text_file</span><span class="special">)</span>
<span class="special">{</span>
    <span class="identifier">scanner</span><span class="special">.</span><span class="identifier">next_fake_results</span><span class="special">.</span><span class="identifier">push_back</span><span class="special">(</span><span class="string">"foo.txt"</span><span class="special">);</span>
    <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span> <span class="identifier">expected</span><span class="special">;</span>
    <span class="identifier">expected</span><span class="special">.</span><span class="identifier">push_back</span><span class="special">(</span><span class="string">"foo.txt"</span><span class="special">);</span>

    <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span> <span class="identifier">files</span> <span class="special">=</span> <span class="identifier">text_files</span><span class="special">(</span><span class="string">"foo"</span><span class="special">,</span> <span class="identifier">scanner</span><span class="special">);</span>

    <span class="identifier">BOOST_REQUIRE_EQUAL_COLLECTIONS</span><span class="special">(</span><span class="identifier">expected</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">expected</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span> <span class="identifier">files</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">files</span><span class="special">.</span><span class="identifier">end</span><span class="special">());</span>
<span class="special">}</span>

<span class="identifier">BOOST_AUTO_TEST_CASE</span><span class="special">(</span><span class="identifier">returns_only_text_file_for_mixed_files</span><span class="special">)</span>
<span class="special">{</span>
    <span class="identifier">scanner</span><span class="special">.</span><span class="identifier">next_fake_results</span><span class="special">.</span><span class="identifier">push_back</span><span class="special">(</span><span class="string">"foo.txt"</span><span class="special">);</span>
    <span class="identifier">scanner</span><span class="special">.</span><span class="identifier">next_fake_results</span><span class="special">.</span><span class="identifier">push_back</span><span class="special">(</span><span class="string">"foo.foo"</span><span class="special">);</span>
    <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span> <span class="identifier">expected</span><span class="special">;</span>
    <span class="identifier">expected</span><span class="special">.</span><span class="identifier">push_back</span><span class="special">(</span><span class="string">"foo.txt"</span><span class="special">);</span>

    <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span> <span class="identifier">files</span> <span class="special">=</span> <span class="identifier">text_files</span><span class="special">(</span><span class="string">"foo"</span><span class="special">,</span> <span class="identifier">scanner</span><span class="special">);</span>

    <span class="identifier">BOOST_REQUIRE_EQUAL_COLLECTIONS</span><span class="special">(</span><span class="identifier">expected</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">expected</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span> <span class="identifier">files</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">files</span><span class="special">.</span><span class="identifier">end</span><span class="special">());</span>
<span class="special">}</span>

<span class="identifier">BOOST_AUTO_TEST_SUITE_END</span><span class="special">();</span>
</pre>
<p>
      </p>
<p>
        In production code, we use an implementation of <code class="literal">directory_scanner</code>
        that interacts directly with the file system using Boost.FileSystem.
      </p>
<p>
</p>
<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">filesystem_directory_scanner</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">directory_scanner</span>
<span class="special">{</span>
<span class="keyword">public</span><span class="special">:</span>
    <span class="identifier">filesystem_directory_scanner</span><span class="special">()</span> <span class="special">{}</span>
    <span class="keyword">virtual</span> <span class="special">~</span><span class="identifier">filesystem_directory_scanner</span><span class="special">()</span> <span class="special">{}</span>

    <span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">begin</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="identifier">directory</span><span class="special">)</span>
    <span class="special">{</span>
        <span class="identifier">current</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">filesystem</span><span class="special">::</span><span class="identifier">directory_iterator</span><span class="special">(</span><span class="identifier">directory</span><span class="special">);</span>
    <span class="special">}</span>

    <span class="keyword">virtual</span> <span class="keyword">bool</span> <span class="identifier">has_next</span><span class="specia
Download .txt
gitextract_igkvdt0q/

├── .gitignore
├── README.md
└── files/
    ├── ConceptClang.pptx
    ├── CppNow2014Ranges.odp
    ├── PracticalTypeErasureSlides.odp
    ├── bounded_integer.odp
    ├── cxx11-library-design.pptx
    ├── functional-data-structures.key
    ├── open-pattern-matching.pptx
    ├── optimization_boost_asio.key
    ├── ownership_of_memory.odp
    ├── test_driven/
    │   ├── Boost.Test Documentation Rewrite/
    │   │   ├── doc/
    │   │   │   └── src/
    │   │   │       └── boostbook.css
    │   │   ├── index.html
    │   │   └── libs/
    │   │       └── test/
    │   │           └── doc/
    │   │               ├── Jamfile.v2
    │   │               ├── html/
    │   │               │   ├── index.html
    │   │               │   ├── test/
    │   │               │   │   ├── guide/
    │   │               │   │   │   ├── acceptance_tests.html
    │   │               │   │   │   ├── compilation/
    │   │               │   │   │   │   ├── _main_.html
    │   │               │   │   │   │   ├── header_only.html
    │   │               │   │   │   │   ├── minimal_header.html
    │   │               │   │   │   │   ├── shared_library.html
    │   │               │   │   │   │   └── static_library.html
    │   │               │   │   │   ├── compilation.html
    │   │               │   │   │   ├── exception_safety_test.html
    │   │               │   │   │   ├── manually_registering_test_cases_and_suites.html
    │   │               │   │   │   ├── mocking_collaborators.html
    │   │               │   │   │   ├── test_case_design.html
    │   │               │   │   │   ├── testing__main_.html
    │   │               │   │   │   ├── testing_file_i_o.html
    │   │               │   │   │   ├── testing_file_io.html
    │   │               │   │   │   └── testing_protected_or_private_members.html
    │   │               │   │   ├── guide.html
    │   │               │   │   ├── how_to_read_this_documentation.html
    │   │               │   │   ├── motivation.html
    │   │               │   │   ├── reference/
    │   │               │   │   │   ├── assertion/
    │   │               │   │   │   │   ├── _boost____level___bitwise_equal_.html
    │   │               │   │   │   │   ├── _boost____level___close_.html
    │   │               │   │   │   │   ├── _boost____level___close_fraction_.html
    │   │               │   │   │   │   ├── _boost____level___equal_collections_.html
    │   │               │   │   │   │   ├── _boost____level___exception_.html
    │   │               │   │   │   │   ├── _boost____level___ge_.html
    │   │               │   │   │   │   ├── _boost____level___gt_.html
    │   │               │   │   │   │   ├── _boost____level___le_.html
    │   │               │   │   │   │   ├── _boost____level___lt_.html
    │   │               │   │   │   │   ├── _boost____level___message_.html
    │   │               │   │   │   │   ├── _boost____level___ne_.html
    │   │               │   │   │   │   ├── _boost____level___no_throw_.html
    │   │               │   │   │   │   ├── _boost____level___predicate_.html
    │   │               │   │   │   │   ├── _boost____level___small_.html
    │   │               │   │   │   │   ├── _boost_test_dont_print_log_value_.html
    │   │               │   │   │   │   ├── _boost_test_error_.html
    │   │               │   │   │   │   ├── _boost_test_is_defined_.html
    │   │               │   │   │   │   ├── boost_fail.html
    │   │               │   │   │   │   ├── boost_level_equal.html
    │   │               │   │   │   │   ├── boost_level_exception.html
    │   │               │   │   │   │   ├── boost_level_message.html
    │   │               │   │   │   │   ├── boost_level_no_throw.html
    │   │               │   │   │   │   ├── boost_level_throw.html
    │   │               │   │   │   │   ├── boost_test_dont_print_log_value.html
    │   │               │   │   │   │   └── levels.html
    │   │               │   │   │   ├── assertion.html
    │   │               │   │   │   ├── configuration_macros.html
    │   │               │   │   │   ├── headers.html
    │   │               │   │   │   ├── runner/
    │   │               │   │   │   │   ├── argument/
    │   │               │   │   │   │   │   ├── ___break_exec_path_.html
    │   │               │   │   │   │   │   ├── ___build_info_.html
    │   │               │   │   │   │   │   ├── ___catch_system_errors_.html
    │   │               │   │   │   │   │   ├── ___color_output_.html
    │   │               │   │   │   │   │   ├── ___detect_fp_exceptions_.html
    │   │               │   │   │   │   │   ├── ___detect_memory_leaks_.html
    │   │               │   │   │   │   │   ├── ___log_level_.html
    │   │               │   │   │   │   │   ├── ___log_sink_.html
    │   │               │   │   │   │   │   ├── ___output_format_.html
    │   │               │   │   │   │   │   ├── ___random_.html
    │   │               │   │   │   │   │   ├── ___report_level_.html
    │   │               │   │   │   │   │   ├── ___report_sink_.html
    │   │               │   │   │   │   │   ├── ___result_code_.html
    │   │               │   │   │   │   │   ├── ___save_pattern_.html
    │   │               │   │   │   │   │   ├── ___show_progress_.html
    │   │               │   │   │   │   │   ├── ___use_alt_stack_.html
    │   │               │   │   │   │   │   ├── auto_start_dbg.html
    │   │               │   │   │   │   │   ├── list_content.html
    │   │               │   │   │   │   │   ├── log_format.html
    │   │               │   │   │   │   │   ├── log_level.html
    │   │               │   │   │   │   │   ├── log_sink.html
    │   │               │   │   │   │   │   ├── output_format.html
    │   │               │   │   │   │   │   ├── report_format.html
    │   │               │   │   │   │   │   ├── report_level.html
    │   │               │   │   │   │   │   ├── report_sink.html
    │   │               │   │   │   │   │   └── run_test.html
    │   │               │   │   │   │   ├── argument.html
    │   │               │   │   │   │   ├── output/
    │   │               │   │   │   │   │   ├── _boost_test_checkpoint_.html
    │   │               │   │   │   │   │   ├── _boost_test_passpoint_.html
    │   │               │   │   │   │   │   ├── boost_test_checkpoint.html
    │   │               │   │   │   │   │   ├── boost_test_message.html
    │   │               │   │   │   │   │   ├── log.html
    │   │               │   │   │   │   │   ├── report.html
    │   │               │   │   │   │   │   ├── test_log.html
    │   │               │   │   │   │   │   └── test_report.html
    │   │               │   │   │   │   └── output.html
    │   │               │   │   │   ├── runner.html
    │   │               │   │   │   ├── test_case/
    │   │               │   │   │   │   ├── boost_auto_test_case.html
    │   │               │   │   │   │   ├── boost_auto_test_case_expected_failures.html
    │   │               │   │   │   │   ├── boost_auto_test_case_template.html
    │   │               │   │   │   │   ├── boost_fixture_test_case.html
    │   │               │   │   │   │   ├── boost_global_fixture.html
    │   │               │   │   │   │   ├── boost_param_class_test_case.html
    │   │               │   │   │   │   ├── boost_param_test_case.html
    │   │               │   │   │   │   ├── boost_test_case.html
    │   │               │   │   │   │   ├── boost_test_case_template.html
    │   │               │   │   │   │   └── boost_test_case_template_function.html
    │   │               │   │   │   ├── test_case.html
    │   │               │   │   │   ├── test_classes/
    │   │               │   │   │   │   ├── assertion/
    │   │               │   │   │   │   │   ├── _boost____level___bitwise_equal_.html
    │   │               │   │   │   │   │   ├── _boost____level___close_.html
    │   │               │   │   │   │   │   ├── _boost____level___close_fraction_.html
    │   │               │   │   │   │   │   ├── _boost____level___equal_collections_.html
    │   │               │   │   │   │   │   ├── _boost____level___exception_.html
    │   │               │   │   │   │   │   ├── _boost____level___ge_.html
    │   │               │   │   │   │   │   ├── _boost____level___gt_.html
    │   │               │   │   │   │   │   ├── _boost____level___le_.html
    │   │               │   │   │   │   │   ├── _boost____level___lt_.html
    │   │               │   │   │   │   │   ├── _boost____level___message_.html
    │   │               │   │   │   │   │   ├── _boost____level___ne_.html
    │   │               │   │   │   │   │   ├── _boost____level___no_throw_.html
    │   │               │   │   │   │   │   ├── _boost____level___predicate_.html
    │   │               │   │   │   │   │   ├── _boost____level___small_.html
    │   │               │   │   │   │   │   ├── _boost_test_dont_print_log_value_.html
    │   │               │   │   │   │   │   ├── _boost_test_error_.html
    │   │               │   │   │   │   │   ├── _boost_test_is_defined_.html
    │   │               │   │   │   │   │   ├── boost_fail.html
    │   │               │   │   │   │   │   ├── boost_level_equal.html
    │   │               │   │   │   │   │   ├── boost_level_throw.html
    │   │               │   │   │   │   │   └── levels.html
    │   │               │   │   │   │   ├── assertion.html
    │   │               │   │   │   │   ├── headers.html
    │   │               │   │   │   │   ├── init_unit_test_func.html
    │   │               │   │   │   │   ├── master_test_suite_t.html
    │   │               │   │   │   │   ├── predicate_result/
    │   │               │   │   │   │   │   ├── init_unit_test_func.html
    │   │               │   │   │   │   │   ├── master_test_suite_t.html
    │   │               │   │   │   │   │   ├── test_case.html
    │   │               │   │   │   │   │   ├── test_observer.html
    │   │               │   │   │   │   │   ├── test_suite.html
    │   │               │   │   │   │   │   ├── test_unit.html
    │   │               │   │   │   │   │   ├── unit_test_log_formatter.html
    │   │               │   │   │   │   │   ├── unit_test_log_t.html
    │   │               │   │   │   │   │   └── unit_test_main.html
    │   │               │   │   │   │   ├── predicate_result.html
    │   │               │   │   │   │   ├── runner/
    │   │               │   │   │   │   │   ├── argument.html
    │   │               │   │   │   │   │   └── output.html
    │   │               │   │   │   │   ├── runner.html
    │   │               │   │   │   │   ├── test_case.html
    │   │               │   │   │   │   ├── test_observer.html
    │   │               │   │   │   │   ├── test_suite.html
    │   │               │   │   │   │   ├── test_unit.html
    │   │               │   │   │   │   ├── unit_test_log_formatter.html
    │   │               │   │   │   │   ├── unit_test_log_t.html
    │   │               │   │   │   │   └── unit_test_main.html
    │   │               │   │   │   ├── test_classes.html
    │   │               │   │   │   ├── test_suite/
    │   │               │   │   │   │   ├── boost_auto_test_suite.html
    │   │               │   │   │   │   ├── boost_auto_test_suite_end.html
    │   │               │   │   │   │   ├── boost_fixture_test_suite.html
    │   │               │   │   │   │   ├── boost_test_module.html
    │   │               │   │   │   │   └── boost_test_suite.html
    │   │               │   │   │   └── test_suite.html
    │   │               │   │   ├── reference.html
    │   │               │   │   ├── tutorials/
    │   │               │   │   │   ├── hello_test.html
    │   │               │   │   │   ├── running_selected_tests.html
    │   │               │   │   │   ├── testing_with_exceptions.html
    │   │               │   │   │   └── testing_with_fixtures.html
    │   │               │   │   └── tutorials.html
    │   │               │   └── test_HTML.manifest
    │   │               ├── src/
    │   │               │   ├── Jamfile.v2
    │   │               │   ├── UTF.log.xsd
    │   │               │   ├── UTF.report.xsd
    │   │               │   ├── examples/
    │   │               │   │   ├── Jamfile.v2
    │   │               │   │   ├── another_global_fixture.cpp
    │   │               │   │   ├── assertion_failures.cpp
    │   │               │   │   ├── assertions.cpp
    │   │               │   │   ├── auto_test_case_expected_failures.cpp
    │   │               │   │   ├── auto_test_case_template.cpp
    │   │               │   │   ├── compilation/
    │   │               │   │   │   ├── Jamfile.v2
    │   │               │   │   │   ├── dynamic/
    │   │               │   │   │   │   ├── main.cpp
    │   │               │   │   │   │   └── test_hello.cpp
    │   │               │   │   │   ├── dynamic_main/
    │   │               │   │   │   │   ├── main.cpp
    │   │               │   │   │   │   └── test_hello.cpp
    │   │               │   │   │   ├── minimal/
    │   │               │   │   │   │   └── test_hello.cpp
    │   │               │   │   │   ├── static/
    │   │               │   │   │   │   ├── main.cpp
    │   │               │   │   │   │   └── test_hello.cpp
    │   │               │   │   │   └── static_main/
    │   │               │   │   │       ├── main.cpp
    │   │               │   │   │       └── test_hello.cpp
    │   │               │   │   ├── file_system.cpp
    │   │               │   │   ├── global_fixture.cpp
    │   │               │   │   ├── manual_registration.cpp
    │   │               │   │   ├── param_class_test_case.cpp
    │   │               │   │   ├── param_test_case.cpp
    │   │               │   │   ├── test_case.cpp
    │   │               │   │   ├── test_case_template.cpp
    │   │               │   │   └── turtle_mock.cpp
    │   │               │   ├── ref-assertion.qbk
    │   │               │   ├── ref-assertion.qbk.bak
    │   │               │   ├── ref-compilation.qbk
    │   │               │   ├── ref-runner-argument.qbk
    │   │               │   ├── ref-runner-argument.qbk.bak
    │   │               │   ├── ref-runner-output.qbk
    │   │               │   ├── ref-runner.qbk
    │   │               │   ├── ref-test-case.qbk
    │   │               │   ├── ref-test-case.qbk.bak
    │   │               │   ├── ref-test-classes.qbk
    │   │               │   ├── ref-test-suite.qbk
    │   │               │   ├── reference.qbk
    │   │               │   ├── system_under_test/
    │   │               │   │   ├── Jamfile.v2
    │   │               │   │   ├── hello/
    │   │               │   │   │   ├── Jamfile.v2
    │   │               │   │   │   ├── hello.cpp
    │   │               │   │   │   └── hello.hpp
    │   │               │   │   └── scanner/
    │   │               │   │       ├── Jamfile.v2
    │   │               │   │       ├── directory_scanner.hpp
    │   │               │   │       ├── filesystem_directory_scanner.hpp
    │   │               │   │       ├── scanner.cpp
    │   │               │   │       └── scanner.hpp
    │   │               │   ├── test.qbk
    │   │               │   ├── tutorials/
    │   │               │   │   ├── Jamfile.v2
    │   │               │   │   ├── hello_test/
    │   │               │   │   │   ├── 1/
    │   │               │   │   │   │   ├── Jamfile.v2
    │   │               │   │   │   │   ├── hello_test~1.output
    │   │               │   │   │   │   ├── sut/
    │   │               │   │   │   │   │   ├── hello.cpp
    │   │               │   │   │   │   │   └── hello.hpp
    │   │               │   │   │   │   └── test/
    │   │               │   │   │   │       └── test_hello.cpp
    │   │               │   │   │   ├── 2/
    │   │               │   │   │   │   ├── Jamfile.v2
    │   │               │   │   │   │   ├── hello_test~2.output
    │   │               │   │   │   │   ├── sut/
    │   │               │   │   │   │   │   ├── hello.cpp
    │   │               │   │   │   │   │   └── hello.hpp
    │   │               │   │   │   │   └── test/
    │   │               │   │   │   │       └── test_hello.cpp
    │   │               │   │   │   ├── 3/
    │   │               │   │   │   │   ├── Jamfile.v2
    │   │               │   │   │   │   ├── hello_test~3.output
    │   │               │   │   │   │   ├── sut/
    │   │               │   │   │   │   │   ├── hello.cpp
    │   │               │   │   │   │   │   └── hello.hpp
    │   │               │   │   │   │   └── test/
    │   │               │   │   │   │       └── test_hello.cpp
    │   │               │   │   │   ├── Jamfile.v2
    │   │               │   │   │   ├── hello_test.output
    │   │               │   │   │   ├── sut/
    │   │               │   │   │   │   ├── hello.cpp
    │   │               │   │   │   │   └── hello.hpp
    │   │               │   │   │   └── test/
    │   │               │   │   │       └── test_hello.cpp
    │   │               │   │   ├── running_selected_tests/
    │   │               │   │   │   ├── 1/
    │   │               │   │   │   │   ├── Jamfile.v2
    │   │               │   │   │   │   ├── report_level_detailed.output
    │   │               │   │   │   │   ├── sut/
    │   │               │   │   │   │   │   ├── hello.cpp
    │   │               │   │   │   │   │   └── hello.hpp
    │   │               │   │   │   │   ├── test/
    │   │               │   │   │   │   │   └── test_hello.cpp
    │   │               │   │   │   │   └── test_hello~running_selected_tests~1.output
    │   │               │   │   │   ├── 2/
    │   │               │   │   │   │   ├── Jamfile.v2
    │   │               │   │   │   │   ├── report_level_detailed.output
    │   │               │   │   │   │   ├── run_test_hello_inserts_text.output
    │   │               │   │   │   │   ├── run_test_hello_star_inserts_text.output
    │   │               │   │   │   │   ├── sut/
    │   │               │   │   │   │   │   ├── hello.cpp
    │   │               │   │   │   │   │   └── hello.hpp
    │   │               │   │   │   │   ├── test/
    │   │               │   │   │   │   │   └── test_hello.cpp
    │   │               │   │   │   │   └── test_hello~running_selected_tests~2.output
    │   │               │   │   │   ├── Jamfile.v2
    │   │               │   │   │   ├── report_level_detailed.output
    │   │               │   │   │   ├── sut/
    │   │               │   │   │   │   ├── hello.cpp
    │   │               │   │   │   │   └── hello.hpp
    │   │               │   │   │   └── test/
    │   │               │   │   │       └── test_hello.cpp
    │   │               │   │   ├── testing_with_exceptions/
    │   │               │   │   │   ├── 1/
    │   │               │   │   │   │   ├── Jamfile.v2
    │   │               │   │   │   │   ├── sut/
    │   │               │   │   │   │   │   ├── hello.cpp
    │   │               │   │   │   │   │   └── hello.hpp
    │   │               │   │   │   │   ├── test/
    │   │               │   │   │   │   │   └── test_hello.cpp
    │   │               │   │   │   │   └── test_hello~testing_with_exceptions~1.output
    │   │               │   │   │   ├── 2/
    │   │               │   │   │   │   ├── Jamfile.v2
    │   │               │   │   │   │   ├── sut/
    │   │               │   │   │   │   │   ├── hello.cpp
    │   │               │   │   │   │   │   └── hello.hpp
    │   │               │   │   │   │   ├── test/
    │   │               │   │   │   │   │   └── test_hello.cpp
    │   │               │   │   │   │   └── test_hello~testing_with_exceptions~2.output
    │   │               │   │   │   ├── Jamfile.v2
    │   │               │   │   │   ├── sut/
    │   │               │   │   │   │   ├── hello.cpp
    │   │               │   │   │   │   └── hello.hpp
    │   │               │   │   │   ├── test/
    │   │               │   │   │   │   └── test_hello.cpp
    │   │               │   │   │   └── test_hello~testing_with_exceptions.output
    │   │               │   │   └── testing_with_fixtures/
    │   │               │   │       ├── 1/
    │   │               │   │       │   ├── Jamfile.v2
    │   │               │   │       │   ├── sut/
    │   │               │   │       │   │   ├── hello.cpp
    │   │               │   │       │   │   └── hello.hpp
    │   │               │   │       │   └── test/
    │   │               │   │       │       └── test_hello.cpp
    │   │               │   │       ├── Jamfile.v2
    │   │               │   │       ├── sut/
    │   │               │   │       │   ├── hello.cpp
    │   │               │   │       │   └── hello.hpp
    │   │               │   │       └── test/
    │   │               │   │           └── test_hello.cpp
    │   │               │   ├── tutorials.qbk
    │   │               │   ├── user-compilation.qbk
    │   │               │   └── user-guide.qbk
    │   │               └── todo.txt
    │   ├── ReadMe.txt
    │   └── snapshots/
    │       ├── 00/
    │       │   ├── CMakeLists.txt
    │       │   ├── LocalPaths.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   └── factors.h
    │       │   └── test/
    │       │       └── test_factors.cpp
    │       ├── 01/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   └── factors.h
    │       │   └── test/
    │       │       └── test_factors.cpp
    │       ├── 02/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   └── factors.h
    │       │   └── test/
    │       │       └── test_factors.cpp
    │       ├── 03/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   └── factors.h
    │       │   └── test/
    │       │       └── test_factors.cpp
    │       ├── 04/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   └── factors.h
    │       │   └── test/
    │       │       └── test_factors.cpp
    │       ├── 05/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   └── factors.h
    │       │   └── test/
    │       │       └── test_factors.cpp
    │       ├── 06/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   └── factors.h
    │       │   └── test/
    │       │       └── test_factors.cpp
    │       ├── 07/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   └── factors.h
    │       │   └── test/
    │       │       └── test_factors.cpp
    │       ├── 08/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   └── factors.h
    │       │   └── test/
    │       │       └── test_factors.cpp
    │       ├── 09/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   └── factors.h
    │       │   └── test/
    │       │       └── test_factors.cpp
    │       ├── 10/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   └── factors.h
    │       │   └── test/
    │       │       └── test_factors.cpp
    │       ├── 11/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   └── factors.h
    │       │   └── test/
    │       │       └── test_factors.cpp
    │       ├── 12/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   └── factors.h
    │       │   └── test/
    │       │       └── test_factors.cpp
    │       ├── 13/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   └── factors.h
    │       │   └── test/
    │       │       └── test_factors.cpp
    │       ├── 14/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   └── factors.h
    │       │   └── test/
    │       │       └── test_factors.cpp
    │       ├── 15/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   └── factors.h
    │       │   └── test/
    │       │       └── test_factors.cpp
    │       ├── 16/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   └── factors.h
    │       │   └── test/
    │       │       └── test_factors.cpp
    │       ├── 17/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   └── factors.h
    │       │   └── test/
    │       │       └── test_factors.cpp
    │       ├── 18/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   └── factors.h
    │       │   └── test/
    │       │       └── test_factors.cpp
    │       ├── 19/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   └── factors.h
    │       │   └── test/
    │       │       └── test_factors.cpp
    │       ├── 20/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   └── factors.h
    │       │   └── test/
    │       │       └── test_factors.cpp
    │       ├── 21/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   └── factors.h
    │       │   └── test/
    │       │       └── test_factors.cpp
    │       ├── 22/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   └── factors.h
    │       │   └── test/
    │       │       └── test_factors.cpp
    │       ├── 23/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   └── factors.h
    │       │   └── test/
    │       │       └── test_factors.cpp
    │       ├── 24/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   └── factors.h
    │       │   └── test/
    │       │       └── test_factors.cpp
    │       ├── 25/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   └── factors.h
    │       │   └── test/
    │       │       ├── test_factors.cpp
    │       │       └── test_mediator.cpp
    │       ├── 26/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   ├── factors.h
    │       │   │   └── mediator.h
    │       │   └── test/
    │       │       ├── test_factors.cpp
    │       │       └── test_mediator.cpp
    │       ├── 27/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   ├── factors.h
    │       │   │   └── mediator.h
    │       │   └── test/
    │       │       ├── test_factors.cpp
    │       │       └── test_mediator.cpp
    │       ├── 28/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   ├── factors.h
    │       │   │   └── mediator.h
    │       │   └── test/
    │       │       ├── test_factors.cpp
    │       │       └── test_mediator.cpp
    │       ├── 29/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   ├── factors.h
    │       │   │   └── mediator.h
    │       │   └── test/
    │       │       ├── test_factors.cpp
    │       │       └── test_mediator.cpp
    │       ├── 30/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   ├── factors.h
    │       │   │   └── mediator.h
    │       │   └── test/
    │       │       ├── test_factors.cpp
    │       │       └── test_mediator.cpp
    │       ├── 31/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   ├── factors.h
    │       │   │   └── mediator.h
    │       │   └── test/
    │       │       ├── test_factors.cpp
    │       │       └── test_mediator.cpp
    │       ├── 32/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   ├── factors.h
    │       │   │   └── mediator.h
    │       │   └── test/
    │       │       ├── test_factors.cpp
    │       │       └── test_mediator.cpp
    │       ├── 33/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   ├── factors.h
    │       │   │   └── mediator.h
    │       │   └── test/
    │       │       ├── test_factors.cpp
    │       │       └── test_mediator.cpp
    │       ├── 34/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   ├── factors.h
    │       │   │   └── mediator.h
    │       │   └── test/
    │       │       ├── test_factors.cpp
    │       │       └── test_mediator.cpp
    │       ├── 35/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   ├── factors.h
    │       │   │   └── mediator.h
    │       │   └── test/
    │       │       ├── test_factors.cpp
    │       │       └── test_mediator.cpp
    │       ├── 36/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   ├── factors.h
    │       │   │   └── mediator.h
    │       │   └── test/
    │       │       ├── test_factors.cpp
    │       │       └── test_mediator.cpp
    │       ├── 37/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   ├── factors.h
    │       │   │   └── mediator.h
    │       │   └── test/
    │       │       ├── test_factors.cpp
    │       │       └── test_mediator.cpp
    │       ├── 38/
    │       │   ├── CMakeLists.txt
    │       │   ├── factors/
    │       │   │   ├── factors.cpp
    │       │   │   ├── factors.h
    │       │   │   └── mediator.h
    │       │   └── test/
    │       │       ├── test_factors.cpp
    │       │       └── test_mediator.cpp
    │       └── 39/
    │           ├── CMakeLists.txt
    │           ├── factors/
    │           │   ├── factors.cpp
    │           │   ├── factors.h
    │           │   └── mediator.h
    │           └── test/
    │               ├── test_factors.cpp
    │               └── test_mediator.cpp
    └── unicode-cpp.pptx
Download .txt
SYMBOL INDEX (518 symbols across 146 files)

FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/another_global_fixture.cpp
  type global3 (line 5) | struct global3
    method global3 (line 7) | global3()
  function BOOST_AUTO_TEST_CASE (line 19) | BOOST_AUTO_TEST_CASE(three)
  type global4 (line 26) | struct global4
    method global4 (line 28) | global4()
  function BOOST_AUTO_TEST_CASE (line 40) | BOOST_AUTO_TEST_CASE(four)

FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/assertion_failures.cpp
  function BOOST_AUTO_TEST_CASE (line 7) | BOOST_AUTO_TEST_CASE(example_fail)
  function BOOST_AUTO_TEST_CASE (line 14) | BOOST_AUTO_TEST_CASE(example_passpoint)

FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/assertions.cpp
  type bit_flags (line 15) | enum bit_flags
  function BOOST_AUTO_TEST_CASE (line 22) | BOOST_AUTO_TEST_CASE(example_bitwise_equal)
  function BOOST_AUTO_TEST_CASE (line 31) | BOOST_AUTO_TEST_CASE(example_close)
  function BOOST_AUTO_TEST_CASE (line 39) | BOOST_AUTO_TEST_CASE(example_close_fraction)
  function BOOST_AUTO_TEST_CASE (line 47) | BOOST_AUTO_TEST_CASE(example_equal)
  type symbol (line 65) | struct symbol
  function BOOST_AUTO_TEST_CASE (line 84) | BOOST_AUTO_TEST_CASE(example_equal_custom_compare)
  function generate_list (line 96) | static std::list<int> generate_list()
  function BOOST_AUTO_TEST_CASE (line 106) | BOOST_AUTO_TEST_CASE(example_equal_collections)
  function BOOST_AUTO_TEST_CASE (line 120) | BOOST_AUTO_TEST_CASE(example_equal_collections_pod)
  class error_number_exception (line 133) | class error_number_exception
    method error_number_exception (line 136) | error_number_exception(int num)
    method error_number (line 140) | int error_number() const { return num_; }
  function has_error_number_1 (line 146) | static bool has_error_number_1(error_number_exception const& ex)
  function BOOST_AUTO_TEST_CASE (line 151) | BOOST_AUTO_TEST_CASE(example_exception)
  function BOOST_AUTO_TEST_CASE (line 159) | BOOST_AUTO_TEST_CASE(example_ge)
  function BOOST_AUTO_TEST_CASE (line 180) | BOOST_AUTO_TEST_CASE(example_gt)
  function BOOST_AUTO_TEST_CASE (line 197) | BOOST_AUTO_TEST_CASE(example_le)
  function BOOST_AUTO_TEST_CASE (line 218) | BOOST_AUTO_TEST_CASE(example_lt)
  function global_int_is_positive (line 238) | static bool global_int_is_positive()
  function global_int_equal (line 244) | static boost::test_tools::predicate_result global_int_equal(int expected)
  function BOOST_AUTO_TEST_CASE (line 256) | BOOST_AUTO_TEST_CASE(example_message)
  function BOOST_AUTO_TEST_CASE (line 267) | BOOST_AUTO_TEST_CASE(example_ne)
  function BOOST_AUTO_TEST_CASE (line 284) | BOOST_AUTO_TEST_CASE(example_no_throw)
  function custom_string_compare (line 291) | static bool custom_string_compare(char const* const expected, char const...
  function BOOST_AUTO_TEST_CASE (line 296) | BOOST_AUTO_TEST_CASE(example_predicate)
  function BOOST_AUTO_TEST_CASE (line 305) | BOOST_AUTO_TEST_CASE(example_small)
  function always_throws (line 314) | static void always_throws()
  function BOOST_AUTO_TEST_CASE (line 319) | BOOST_AUTO_TEST_CASE(example_throw)
  type custom (line 326) | struct custom
  function BOOST_AUTO_TEST_CASE (line 338) | BOOST_AUTO_TEST_CASE(example_test_dont_print_log_value)
  function BOOST_AUTO_TEST_CASE (line 347) | BOOST_AUTO_TEST_CASE(example_checkpoint)
  function BOOST_AUTO_TEST_CASE (line 357) | BOOST_AUTO_TEST_CASE(example_test_message)

FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/auto_test_case_expected_failures.cpp
  function BOOST_AUTO_TEST_CASE (line 7) | BOOST_AUTO_TEST_CASE(inserts_text_check_expected)
  function BOOST_AUTO_TEST_CASE (line 18) | BOOST_AUTO_TEST_CASE(inserts_text_check_exceeded)
  function BOOST_AUTO_TEST_CASE (line 31) | BOOST_AUTO_TEST_CASE(inserts_text_require_expected)

FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/auto_test_case_template.cpp
  function BOOST_AUTO_TEST_CASE_TEMPLATE (line 14) | BOOST_AUTO_TEST_CASE_TEMPLATE(not_is_signed_for_unsigned_types, T, unsig...
  function BOOST_AUTO_TEST_CASE_TEMPLATE (line 24) | BOOST_AUTO_TEST_CASE_TEMPLATE(is_signed_for_signed_types, T, signed_types)

FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/compilation/dynamic/test_hello.cpp
  type hello_world_fixture (line 7) | struct hello_world_fixture
  function BOOST_AUTO_TEST_CASE (line 14) | BOOST_AUTO_TEST_CASE(inserts_text)
  function BOOST_AUTO_TEST_CASE (line 21) | BOOST_AUTO_TEST_CASE(stream_with_badbit_throws_runtime_error)

FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/compilation/dynamic_main/main.cpp
  function init_function (line 5) | bool init_function()
  function main (line 12) | int main(int argc, char* argv[])

FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/compilation/dynamic_main/test_hello.cpp
  type hello_world_fixture (line 8) | struct hello_world_fixture
  function BOOST_AUTO_TEST_CASE (line 15) | BOOST_AUTO_TEST_CASE(inserts_text)
  function BOOST_AUTO_TEST_CASE (line 22) | BOOST_AUTO_TEST_CASE(stream_with_badbit_throws_runtime_error)

FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/compilation/minimal/test_hello.cpp
  function inserts_text (line 6) | static void inserts_text()
  function stream_with_badbit_throws_runtime_error (line 15) | static void stream_with_badbit_throws_runtime_error()
  function test_main (line 37) | int test_main(int /*argc*/, char* /*argv*/[])

FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/compilation/static/test_hello.cpp
  type hello_world_fixture (line 6) | struct hello_world_fixture
  function BOOST_AUTO_TEST_CASE (line 13) | BOOST_AUTO_TEST_CASE(inserts_text)
  function BOOST_AUTO_TEST_CASE (line 20) | BOOST_AUTO_TEST_CASE(stream_with_badbit_throws_runtime_error)

FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/compilation/static_main/main.cpp
  function main (line 11) | int main(int argc, char *argv[])

FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/compilation/static_main/test_hello.cpp
  type hello_world_fixture (line 7) | struct hello_world_fixture
  function BOOST_AUTO_TEST_CASE (line 14) | BOOST_AUTO_TEST_CASE(inserts_text)
  function BOOST_AUTO_TEST_CASE (line 21) | BOOST_AUTO_TEST_CASE(stream_with_badbit_throws_runtime_error)

FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/file_system.cpp
  class fake_directory_scanner (line 7) | class fake_directory_scanner : public directory_scanner
    method fake_directory_scanner (line 10) | fake_directory_scanner()
    method begin (line 19) | virtual void begin(std::string const &directory)
    method has_next (line 27) | virtual bool has_next() const
    method next (line 35) | virtual std::string next() const
  type text_files_fixture (line 53) | struct text_files_fixture
    method expect_enumerate_non_text_file (line 55) | void expect_enumerate_non_text_file()
    method expect_enumerate_text_file (line 60) | void expect_enumerate_text_file(std::string const& file_name = ARBITRA...
  function BOOST_AUTO_TEST_CASE (line 73) | BOOST_AUTO_TEST_CASE(returns_empty_for_empty_directory)
  function BOOST_AUTO_TEST_CASE (line 80) | BOOST_AUTO_TEST_CASE(returns_empty_for_no_text_files)
  function BOOST_AUTO_TEST_CASE (line 89) | BOOST_AUTO_TEST_CASE(returns_file_for_text_file)
  function BOOST_AUTO_TEST_CASE (line 98) | BOOST_AUTO_TEST_CASE(returns_only_text_file_for_mixed_files)
  function BOOST_AUTO_TEST_CASE (line 108) | BOOST_AUTO_TEST_CASE(returns_all_text_files)

FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/global_fixture.cpp
  type global_fixture (line 7) | struct global_fixture
    method global_fixture (line 9) | global_fixture()
  type suite_fixture (line 22) | struct suite_fixture
    method suite_fixture (line 24) | suite_fixture()
  function BOOST_AUTO_TEST_CASE (line 36) | BOOST_AUTO_TEST_CASE(one)
  type global2 (line 43) | struct global2
    method global2 (line 45) | global2()
  function BOOST_AUTO_TEST_CASE (line 57) | BOOST_AUTO_TEST_CASE(two)

FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/manual_registration.cpp
  function inserts_text (line 8) | static void inserts_text()
  function register_function (line 17) | static void register_function(test_suite& suite)
  class hello_fixture (line 24) | class hello_fixture
    method stream_with_badbit_throws_runtime_error (line 27) | void stream_with_badbit_throws_runtime_error()
  function register_method_static_instance (line 41) | static void register_method_static_instance(test_suite& suite)
  function stream_with_badbit_throws_runtime_error (line 50) | static void stream_with_badbit_throws_runtime_error()
  function register_method_function_instance (line 55) | static void register_method_function_instance(test_suite& suite)
  function test_suite (line 62) | static test_suite*
  function main (line 74) | int main(int argc, char* argv[])

FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/param_class_test_case.cpp
  class hello_world_tester (line 13) | class hello_world_tester
    method hello_world_tester (line 16) | hello_world_tester()
    method inserts_text (line 24) | void inserts_text(std::string const& text)
    method does_not_insert_text (line 33) | void does_not_insert_text(std::string const& text)
  function test_suite (line 48) | static test_suite*
  function main (line 61) | int main(int argc, char* argv[])

FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/param_test_case.cpp
  function does_not_insert_text (line 10) | static void does_not_insert_text(std::string const& text)
  function test_suite (line 21) | static test_suite*
  function main (line 33) | int main(int argc, char* argv[])

FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/test_case.cpp
  function inserts_text (line 9) | static void inserts_text()
  function test_suite (line 18) | static test_suite*
  function main (line 25) | int main(int argc, char* argv[])

FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/test_case_template.cpp
  function BOOST_TEST_CASE_TEMPLATE_FUNCTION (line 11) | BOOST_TEST_CASE_TEMPLATE_FUNCTION(not_is_signed_for_unsigned_types, T)
  function BOOST_TEST_CASE_TEMPLATE_FUNCTION (line 22) | BOOST_TEST_CASE_TEMPLATE_FUNCTION(is_signed_for_signed_types, T)
  function test_suite (line 29) | static test_suite*
  function main (line 38) | int main(int argc, char* argv[])

FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/turtle_mock.cpp
  function MOCK_BASE_CLASS (line 9) | MOCK_BASE_CLASS(mock_directory_scanner, directory_scanner)
  type text_files_fixture (line 23) | struct text_files_fixture
    method text_files_fixture (line 25) | text_files_fixture()
    method expect_enumerate_non_text_file (line 30) | void expect_enumerate_non_text_file()
    method expect_enumerate_text_file (line 36) | void expect_enumerate_text_file(std::string const& file_name = ARBITRA...
    method expect_enumerate_end (line 43) | void expect_enumerate_end()
  function BOOST_AUTO_TEST_CASE (line 55) | BOOST_AUTO_TEST_CASE(returns_empty_for_empty_directory)
  function BOOST_AUTO_TEST_CASE (line 64) | BOOST_AUTO_TEST_CASE(returns_empty_for_no_text_files)
  function BOOST_AUTO_TEST_CASE (line 74) | BOOST_AUTO_TEST_CASE(returns_file_for_text_file)
  function BOOST_AUTO_TEST_CASE (line 84) | BOOST_AUTO_TEST_CASE(returns_only_text_file_for_mixed_files)
  function BOOST_AUTO_TEST_CASE (line 95) | BOOST_AUTO_TEST_CASE(returns_all_text_files)

FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/system_under_test/hello/hello.cpp
  function hello_world (line 3) | void hello_world(std::ostream& stream)

FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/system_under_test/scanner/directory_scanner.hpp
  class directory_scanner (line 7) | class directory_scanner

FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/system_under_test/scanner/filesystem_directory_scanner.hpp
  class filesystem_directory_scanner (line 8) | class filesystem_directory_scanner : public directory_scanner
    method filesystem_directory_scanner (line 11) | filesystem_directory_scanner() {}
    method begin (line 14) | virtual void begin(std::string const &directory)
    method has_next (line 19) | virtual bool has_next() const
    method next (line 24) | virtual std::string next() const

FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/system_under_test/scanner/scanner.cpp
  function text_files (line 5) | extern std::vector<std::string>
  function text_files (line 25) | extern std::vector<std::string>

FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/system_under_test/scanner/scanner.hpp
  class directory_scanner (line 12) | class directory_scanner

FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/tutorials/hello_test/1/sut/hello.cpp
  function hello_world (line 4) | void hello_world(std::ostream& stream)

FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/tutorials/hello_test/1/test/test_hello.cpp
  function BOOST_AUTO_TEST_CASE (line 7) | BOOST_AUTO_TEST_CASE(hello_world_inserts_text)

FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/tutorials/hello_test/2/sut/hello.cpp
  function hello_world (line 4) | void hello_world(std::ostream& stream)

FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/tutorials/hello_test/2/test/test_hello.cpp
  function BOOST_AUTO_TEST_CASE (line 7) | BOOST_AUTO_TEST_CASE(hello_world_inserts_text)

FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/tutorials/hello_test/3/sut/hello.cpp
  function hello_world (line 4) | void hello_world(std::ostream& stream)

FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/tutorials/hello_test/3/test/test_hello.cpp
  function BOOST_AUTO_TEST_CASE (line 7) | BOOST_AUTO_TEST_CASE(hello_world_inserts_text)

FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/tutorials/hello_test/sut/hello.cpp
  function hello_world (line 4) | void hello_world(std::ostream& stream)

FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/tutorials/hello_test/test/test_hello.cpp
  function BOOST_AUTO_TEST_CASE (line 7) | BOOST_AUTO_TEST_CASE(hello_world_inserts_text)

FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/tutorials/running_selected_tests/1/sut/hello.cpp
  function hello_world (line 3) | void hello_world(std::ostream& stream)

FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/tutorials/running_selected_tests/1/test/test_hello.cpp
  type hello_world_fixture (line 8) | struct hello_world_fixture
  function HELLO_WORLD_TEST_CASE (line 16) | HELLO_WORLD_TEST_CASE(inserts_text)
  function HELLO_WORLD_TEST_CASE (line 23) | HELLO_WORLD_TEST_CASE(stream_with_badbit_throws_runtime_error)

FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/tutorials/running_selected_tests/2/sut/hello.cpp
  function hello_world (line 3) | void hello_world(std::ostream& stream)

FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/tutorials/running_selected_tests/2/test/test_hello.cpp
  type hello_world_fixture (line 8) | struct hello_world_fixture
  function HELLO_WORLD_TEST_CASE (line 18) | HELLO_WORLD_TEST_CASE(inserts_text)
  function HELLO_WORLD_TEST_CASE (line 25) | HELLO_WORLD_TEST_CASE(stream_with_badbit_throws_runtime_error)

FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/tutorials/running_selected_tests/sut/hello.cpp
  function hello_world (line 3) | void hello_world(std::ostream& stream)

FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/tutorials/running_selected_tests/test/test_hello.cpp
  type hello_world_fixture (line 8) | struct hello_world_fixture
  function BOOST_AUTO_TEST_CASE (line 15) | BOOST_AUTO_TEST_CASE(inserts_text)
  function BOOST_AUTO_TEST_CASE (line 22) | BOOST_AUTO_TEST_CASE(stream_with_badbit_throws_runtime_error)

FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/tutorials/testing_with_exceptions/1/sut/hello.cpp
  function hello_world (line 4) | void hello_world(std::ostream& stream)

FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/tutorials/testing_with_exceptions/1/test/test_hello.cpp
  function BOOST_AUTO_TEST_CASE (line 7) | BOOST_AUTO_TEST_CASE(hello_world_inserts_text)
  function BOOST_AUTO_TEST_CASE (line 17) | BOOST_AUTO_TEST_CASE(hello_world_stream_with_badbit_throws_runtime_error)

FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/tutorials/testing_with_exceptions/2/sut/hello.cpp
  function hello_world (line 4) | void hello_world(std::ostream& stream)

FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/tutorials/testing_with_exceptions/2/test/test_hello.cpp
  function BOOST_AUTO_TEST_CASE (line 7) | BOOST_AUTO_TEST_CASE(hello_world_inserts_text)
  function BOOST_AUTO_TEST_CASE (line 17) | BOOST_AUTO_TEST_CASE(hello_world_stream_with_badbit_throws_runtime_error)

FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/tutorials/testing_with_exceptions/sut/hello.cpp
  function hello_world (line 4) | void hello_world(std::ostream& stream)

FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/tutorials/testing_with_exceptions/test/test_hello.cpp
  function BOOST_AUTO_TEST_CASE (line 7) | BOOST_AUTO_TEST_CASE(hello_world_inserts_text)
  function BOOST_AUTO_TEST_CASE (line 17) | BOOST_AUTO_TEST_CASE(hello_world_stream_with_badbit_throws_runtime_error)

FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/tutorials/testing_with_fixtures/1/sut/hello.cpp
  function hello_world (line 3) | void hello_world(std::ostream& stream)

FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/tutorials/testing_with_fixtures/1/test/test_hello.cpp
  type hello_world_fixture (line 8) | struct hello_world_fixture
    method hello_world_fixture (line 10) | hello_world_fixture()
  function BOOST_FIXTURE_TEST_CASE (line 19) | BOOST_FIXTURE_TEST_CASE(hello_world_inserts_text, hello_world_fixture)
  function BOOST_FIXTURE_TEST_CASE (line 26) | BOOST_FIXTURE_TEST_CASE(hello_world_stream_with_badbit_throws_runtime_er...

FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/tutorials/testing_with_fixtures/sut/hello.cpp
  function hello_world (line 3) | void hello_world(std::ostream& stream)

FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/tutorials/testing_with_fixtures/test/test_hello.cpp
  type hello_world_fixture (line 8) | struct hello_world_fixture
  function HELLO_WORLD_TEST_CASE (line 16) | HELLO_WORLD_TEST_CASE(inserts_text)
  function HELLO_WORLD_TEST_CASE (line 23) | HELLO_WORLD_TEST_CASE(stream_with_badbit_throws_runtime_error)

FILE: files/test_driven/snapshots/03/test/test_factors.cpp
  function BOOST_AUTO_TEST_CASE (line 7) | BOOST_AUTO_TEST_CASE(one_yields_empty)

FILE: files/test_driven/snapshots/04/test/test_factors.cpp
  function BOOST_AUTO_TEST_CASE (line 7) | BOOST_AUTO_TEST_CASE(one_yields_empty)

FILE: files/test_driven/snapshots/05/factors/factors.cpp
  function prime_factors (line 4) | extern std::vector<int> prime_factors(int n)

FILE: files/test_driven/snapshots/05/test/test_factors.cpp
  function BOOST_AUTO_TEST_CASE (line 7) | BOOST_AUTO_TEST_CASE(one_yields_empty)

FILE: files/test_driven/snapshots/06/factors/factors.cpp
  function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)

FILE: files/test_driven/snapshots/06/test/test_factors.cpp
  function BOOST_AUTO_TEST_CASE (line 7) | BOOST_AUTO_TEST_CASE(one_yields_empty)

FILE: files/test_driven/snapshots/07/factors/factors.cpp
  function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)

FILE: files/test_driven/snapshots/07/test/test_factors.cpp
  function BOOST_AUTO_TEST_CASE (line 7) | BOOST_AUTO_TEST_CASE(one_yields_empty)
  function BOOST_AUTO_TEST_CASE (line 18) | BOOST_AUTO_TEST_CASE(two_yields_2)

FILE: files/test_driven/snapshots/08/factors/factors.cpp
  function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)

FILE: files/test_driven/snapshots/08/test/test_factors.cpp
  function BOOST_AUTO_TEST_CASE (line 7) | BOOST_AUTO_TEST_CASE(one_yields_empty)
  function BOOST_AUTO_TEST_CASE (line 18) | BOOST_AUTO_TEST_CASE(two_yields_2)

FILE: files/test_driven/snapshots/09/factors/factors.cpp
  function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)

FILE: files/test_driven/snapshots/09/test/test_factors.cpp
  type fixture (line 7) | struct fixture {
  function BOOST_AUTO_TEST_CASE (line 12) | BOOST_AUTO_TEST_CASE(one_yields_empty)
  function BOOST_AUTO_TEST_CASE (line 23) | BOOST_AUTO_TEST_CASE(two_yields_2)

FILE: files/test_driven/snapshots/10/factors/factors.cpp
  function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)

FILE: files/test_driven/snapshots/10/test/test_factors.cpp
  type fixture (line 7) | struct fixture {
    method prime_factors (line 10) | void prime_factors(int n) {
    method verify_expected_factors (line 13) | void verify_expected_factors() {
  function BOOST_AUTO_TEST_CASE (line 20) | BOOST_AUTO_TEST_CASE(one_yields_empty)
  function BOOST_AUTO_TEST_CASE (line 29) | BOOST_AUTO_TEST_CASE(two_yields_2)

FILE: files/test_driven/snapshots/11/factors/factors.cpp
  function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)

FILE: files/test_driven/snapshots/11/test/test_factors.cpp
  type fixture (line 7) | struct fixture {
    method prime_factors (line 10) | void prime_factors(int n) {
    method verify_expected_factors (line 13) | void verify_expected_factors() {
  function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
  function BOOST_AUTO_TEST_CASE (line 27) | BOOST_AUTO_TEST_CASE(two_yields_2)

FILE: files/test_driven/snapshots/12/factors/factors.cpp
  function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)

FILE: files/test_driven/snapshots/12/test/test_factors.cpp
  type fixture (line 7) | struct fixture {
    method prime_factors (line 10) | void prime_factors(int n) {
    method verify_expected_factors (line 13) | void verify_expected_factors() {
  function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 27) | BOOST_FIXTURE_TEST_CASE(two_yields_2, fixture)

FILE: files/test_driven/snapshots/13/factors/factors.cpp
  function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)

FILE: files/test_driven/snapshots/13/test/test_factors.cpp
  type fixture (line 7) | struct fixture {
    method prime_factors (line 10) | void prime_factors(int n) {
    method verify_expected_factors (line 13) | void verify_expected_factors() {
  function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 27) | BOOST_FIXTURE_TEST_CASE(two_yields_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 36) | BOOST_FIXTURE_TEST_CASE(three_yields_3, fixture)

FILE: files/test_driven/snapshots/14/factors/factors.cpp
  function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)

FILE: files/test_driven/snapshots/14/test/test_factors.cpp
  type fixture (line 7) | struct fixture {
    method prime_factors (line 10) | void prime_factors(int n) {
    method verify_expected_factors (line 13) | void verify_expected_factors() {
  function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 27) | BOOST_FIXTURE_TEST_CASE(two_yields_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 36) | BOOST_FIXTURE_TEST_CASE(three_yields_3, fixture)

FILE: files/test_driven/snapshots/15/factors/factors.cpp
  function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)

FILE: files/test_driven/snapshots/15/test/test_factors.cpp
  type fixture (line 7) | struct fixture {
    method prime_factors (line 10) | void prime_factors(int n) {
    method verify_expected_factors (line 13) | void verify_expected_factors() {
  function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 27) | BOOST_FIXTURE_TEST_CASE(two_yields_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 36) | BOOST_FIXTURE_TEST_CASE(three_yields_3, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 45) | BOOST_FIXTURE_TEST_CASE(four_yields_2_2, fixture)

FILE: files/test_driven/snapshots/16/factors/factors.cpp
  function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)

FILE: files/test_driven/snapshots/16/test/test_factors.cpp
  type fixture (line 7) | struct fixture {
    method prime_factors (line 10) | void prime_factors(int n) {
    method verify_expected_factors (line 13) | void verify_expected_factors() {
  function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 27) | BOOST_FIXTURE_TEST_CASE(two_yields_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 36) | BOOST_FIXTURE_TEST_CASE(three_yields_3, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 45) | BOOST_FIXTURE_TEST_CASE(four_yields_2_2, fixture)

FILE: files/test_driven/snapshots/17/factors/factors.cpp
  function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)

FILE: files/test_driven/snapshots/17/test/test_factors.cpp
  type fixture (line 7) | struct fixture {
    method prime_factors (line 10) | void prime_factors(int n) {
    method verify_expected_factors (line 13) | void verify_expected_factors() {
  function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 27) | BOOST_FIXTURE_TEST_CASE(two_yields_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 36) | BOOST_FIXTURE_TEST_CASE(three_yields_3, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 45) | BOOST_FIXTURE_TEST_CASE(four_yields_2_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 55) | BOOST_FIXTURE_TEST_CASE(six_yields_2_3, fixture)

FILE: files/test_driven/snapshots/18/factors/factors.cpp
  function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)

FILE: files/test_driven/snapshots/18/test/test_factors.cpp
  type fixture (line 7) | struct fixture {
    method prime_factors (line 10) | void prime_factors(int n) {
    method verify_expected_factors (line 13) | void verify_expected_factors() {
  function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 27) | BOOST_FIXTURE_TEST_CASE(two_yields_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 36) | BOOST_FIXTURE_TEST_CASE(three_yields_3, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 45) | BOOST_FIXTURE_TEST_CASE(four_yields_2_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 55) | BOOST_FIXTURE_TEST_CASE(six_yields_2_3, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 65) | BOOST_FIXTURE_TEST_CASE(eight_yields_2_2_2, fixture)

FILE: files/test_driven/snapshots/19/factors/factors.cpp
  function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)

FILE: files/test_driven/snapshots/19/test/test_factors.cpp
  type fixture (line 7) | struct fixture {
    method prime_factors (line 10) | void prime_factors(int n) {
    method verify_expected_factors (line 13) | void verify_expected_factors() {
  function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 27) | BOOST_FIXTURE_TEST_CASE(two_yields_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 36) | BOOST_FIXTURE_TEST_CASE(three_yields_3, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 45) | BOOST_FIXTURE_TEST_CASE(four_yields_2_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 55) | BOOST_FIXTURE_TEST_CASE(six_yields_2_3, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 65) | BOOST_FIXTURE_TEST_CASE(eight_yields_2_2_2, fixture)

FILE: files/test_driven/snapshots/20/factors/factors.cpp
  function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)

FILE: files/test_driven/snapshots/20/test/test_factors.cpp
  type fixture (line 7) | struct fixture {
    method prime_factors (line 10) | void prime_factors(int n) {
  function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 25) | BOOST_FIXTURE_TEST_CASE(two_yields_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 32) | BOOST_FIXTURE_TEST_CASE(three_yields_3, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 39) | BOOST_FIXTURE_TEST_CASE(four_yields_2_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 47) | BOOST_FIXTURE_TEST_CASE(six_yields_2_3, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 55) | BOOST_FIXTURE_TEST_CASE(eight_yields_2_2_2, fixture)

FILE: files/test_driven/snapshots/21/factors/factors.cpp
  function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)

FILE: files/test_driven/snapshots/21/test/test_factors.cpp
  type fixture (line 7) | struct fixture {
    method prime_factors (line 10) | void prime_factors(int n) {
  function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 25) | BOOST_FIXTURE_TEST_CASE(two_yields_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 32) | BOOST_FIXTURE_TEST_CASE(three_yields_3, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 39) | BOOST_FIXTURE_TEST_CASE(four_yields_2_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 47) | BOOST_FIXTURE_TEST_CASE(six_yields_2_3, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 55) | BOOST_FIXTURE_TEST_CASE(eight_yields_2_2_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 64) | BOOST_FIXTURE_TEST_CASE(nine_yields_3_3, fixture)

FILE: files/test_driven/snapshots/22/factors/factors.cpp
  function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)

FILE: files/test_driven/snapshots/22/test/test_factors.cpp
  type fixture (line 7) | struct fixture {
    method prime_factors (line 10) | void prime_factors(int n) {
  function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 25) | BOOST_FIXTURE_TEST_CASE(two_yields_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 32) | BOOST_FIXTURE_TEST_CASE(three_yields_3, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 39) | BOOST_FIXTURE_TEST_CASE(four_yields_2_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 47) | BOOST_FIXTURE_TEST_CASE(six_yields_2_3, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 55) | BOOST_FIXTURE_TEST_CASE(eight_yields_2_2_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 64) | BOOST_FIXTURE_TEST_CASE(nine_yields_3_3, fixture)

FILE: files/test_driven/snapshots/23/factors/factors.cpp
  function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)

FILE: files/test_driven/snapshots/23/test/test_factors.cpp
  type fixture (line 7) | struct fixture {
    method prime_factors (line 10) | void prime_factors(int n) {
  function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 25) | BOOST_FIXTURE_TEST_CASE(two_yields_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 32) | BOOST_FIXTURE_TEST_CASE(three_yields_3, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 39) | BOOST_FIXTURE_TEST_CASE(four_yields_2_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 47) | BOOST_FIXTURE_TEST_CASE(six_yields_2_3, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 55) | BOOST_FIXTURE_TEST_CASE(eight_yields_2_2_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 64) | BOOST_FIXTURE_TEST_CASE(nine_yields_3_3, fixture)

FILE: files/test_driven/snapshots/24/factors/factors.cpp
  function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)

FILE: files/test_driven/snapshots/24/test/test_factors.cpp
  type fixture (line 7) | struct fixture {
    method prime_factors (line 10) | void prime_factors(int n) {
  function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 25) | BOOST_FIXTURE_TEST_CASE(two_yields_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 32) | BOOST_FIXTURE_TEST_CASE(three_yields_3, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 39) | BOOST_FIXTURE_TEST_CASE(four_yields_2_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 47) | BOOST_FIXTURE_TEST_CASE(six_yields_2_3, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 55) | BOOST_FIXTURE_TEST_CASE(eight_yields_2_2_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 64) | BOOST_FIXTURE_TEST_CASE(nine_yields_3_3, fixture)

FILE: files/test_driven/snapshots/25/factors/factors.cpp
  function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)

FILE: files/test_driven/snapshots/25/test/test_factors.cpp
  type fixture (line 7) | struct fixture {
    method prime_factors (line 10) | void prime_factors(int n) {
  function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 25) | BOOST_FIXTURE_TEST_CASE(two_yields_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 32) | BOOST_FIXTURE_TEST_CASE(three_yields_3, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 39) | BOOST_FIXTURE_TEST_CASE(four_yields_2_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 47) | BOOST_FIXTURE_TEST_CASE(six_yields_2_3, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 55) | BOOST_FIXTURE_TEST_CASE(eight_yields_2_2_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 64) | BOOST_FIXTURE_TEST_CASE(nine_yields_3_3, fixture)

FILE: files/test_driven/snapshots/26/factors/factors.cpp
  function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)

FILE: files/test_driven/snapshots/26/test/test_factors.cpp
  type fixture (line 7) | struct fixture {
    method prime_factors (line 10) | void prime_factors(int n) {
  function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 25) | BOOST_FIXTURE_TEST_CASE(two_yields_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 32) | BOOST_FIXTURE_TEST_CASE(three_yields_3, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 39) | BOOST_FIXTURE_TEST_CASE(four_yields_2_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 47) | BOOST_FIXTURE_TEST_CASE(six_yields_2_3, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 55) | BOOST_FIXTURE_TEST_CASE(eight_yields_2_2_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 64) | BOOST_FIXTURE_TEST_CASE(nine_yields_3_3, fixture)

FILE: files/test_driven/snapshots/27/factors/factors.cpp
  function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)

FILE: files/test_driven/snapshots/27/test/test_factors.cpp
  type fixture (line 7) | struct fixture {
    method prime_factors (line 10) | void prime_factors(int n) {
  function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 25) | BOOST_FIXTURE_TEST_CASE(two_yields_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 32) | BOOST_FIXTURE_TEST_CASE(three_yields_3, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 39) | BOOST_FIXTURE_TEST_CASE(four_yields_2_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 47) | BOOST_FIXTURE_TEST_CASE(six_yields_2_3, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 55) | BOOST_FIXTURE_TEST_CASE(eight_yields_2_2_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 64) | BOOST_FIXTURE_TEST_CASE(nine_yields_3_3, fixture)

FILE: files/test_driven/snapshots/27/test/test_mediator.cpp
  function BOOST_AUTO_TEST_CASE (line 5) | BOOST_AUTO_TEST_CASE(ok_button_initially_disabled)

FILE: files/test_driven/snapshots/28/factors/factors.cpp
  function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)

FILE: files/test_driven/snapshots/28/factors/mediator.h
  function class (line 4) | class prime_factors_dialog
  function class (line 10) | class prime_factors_mediator

FILE: files/test_driven/snapshots/28/test/test_factors.cpp
  type fixture (line 7) | struct fixture {
    method prime_factors (line 10) | void prime_factors(int n) {
  function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 25) | BOOST_FIXTURE_TEST_CASE(two_yields_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 32) | BOOST_FIXTURE_TEST_CASE(three_yields_3, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 39) | BOOST_FIXTURE_TEST_CASE(four_yields_2_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 47) | BOOST_FIXTURE_TEST_CASE(six_yields_2_3, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 55) | BOOST_FIXTURE_TEST_CASE(eight_yields_2_2_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 64) | BOOST_FIXTURE_TEST_CASE(nine_yields_3_3, fixture)

FILE: files/test_driven/snapshots/28/test/test_mediator.cpp
  function BOOST_AUTO_TEST_CASE (line 5) | BOOST_AUTO_TEST_CASE(ok_button_initially_disabled)

FILE: files/test_driven/snapshots/29/factors/factors.cpp
  function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)

FILE: files/test_driven/snapshots/29/factors/mediator.h
  function class (line 4) | class prime_factors_dialog
  function class (line 11) | class prime_factors_mediator

FILE: files/test_driven/snapshots/29/test/test_factors.cpp
  type fixture (line 7) | struct fixture {
    method prime_factors (line 10) | void prime_factors(int n) {
  function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 25) | BOOST_FIXTURE_TEST_CASE(two_yields_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 32) | BOOST_FIXTURE_TEST_CASE(three_yields_3, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 39) | BOOST_FIXTURE_TEST_CASE(four_yields_2_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 47) | BOOST_FIXTURE_TEST_CASE(six_yields_2_3, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 55) | BOOST_FIXTURE_TEST_CASE(eight_yields_2_2_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 64) | BOOST_FIXTURE_TEST_CASE(nine_yields_3_3, fixture)

FILE: files/test_driven/snapshots/29/test/test_mediator.cpp
  function BOOST_AUTO_TEST_CASE (line 5) | BOOST_AUTO_TEST_CASE(ok_button_initially_disabled)

FILE: files/test_driven/snapshots/30/factors/factors.cpp
  function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)

FILE: files/test_driven/snapshots/30/factors/mediator.h
  function class (line 4) | class prime_factors_dialog
  function class (line 11) | class prime_factors_mediator

FILE: files/test_driven/snapshots/30/test/test_factors.cpp
  type fixture (line 7) | struct fixture {
    method prime_factors (line 10) | void prime_factors(int n) {
  function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 25) | BOOST_FIXTURE_TEST_CASE(two_yields_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 32) | BOOST_FIXTURE_TEST_CASE(three_yields_3, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 39) | BOOST_FIXTURE_TEST_CASE(four_yields_2_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 47) | BOOST_FIXTURE_TEST_CASE(six_yields_2_3, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 55) | BOOST_FIXTURE_TEST_CASE(eight_yields_2_2_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 64) | BOOST_FIXTURE_TEST_CASE(nine_yields_3_3, fixture)

FILE: files/test_driven/snapshots/30/test/test_mediator.cpp
  function BOOST_AUTO_TEST_CASE (line 6) | BOOST_AUTO_TEST_CASE(ok_button_initially_disabled)

FILE: files/test_driven/snapshots/31/factors/factors.cpp
  function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)

FILE: files/test_driven/snapshots/31/factors/mediator.h
  function class (line 4) | class prime_factors_dialog
  function class (line 11) | class prime_factors_mediator

FILE: files/test_driven/snapshots/31/test/test_factors.cpp
  type fixture (line 7) | struct fixture {
    method prime_factors (line 10) | void prime_factors(int n) {
  function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 25) | BOOST_FIXTURE_TEST_CASE(two_yields_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 32) | BOOST_FIXTURE_TEST_CASE(three_yields_3, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 39) | BOOST_FIXTURE_TEST_CASE(four_yields_2_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 47) | BOOST_FIXTURE_TEST_CASE(six_yields_2_3, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 55) | BOOST_FIXTURE_TEST_CASE(eight_yields_2_2_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 64) | BOOST_FIXTURE_TEST_CASE(nine_yields_3_3, fixture)

FILE: files/test_driven/snapshots/31/test/test_mediator.cpp
  function BOOST_AUTO_TEST_CASE (line 6) | BOOST_AUTO_TEST_CASE(ok_button_initially_disabled)

FILE: files/test_driven/snapshots/32/factors/factors.cpp
  function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)

FILE: files/test_driven/snapshots/32/factors/mediator.h
  function class (line 4) | class prime_factors_dialog
  function class (line 11) | class prime_factors_mediator

FILE: files/test_driven/snapshots/32/test/test_factors.cpp
  type fixture (line 7) | struct fixture {
    method prime_factors (line 10) | void prime_factors(int n) {
  function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 25) | BOOST_FIXTURE_TEST_CASE(two_yields_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 32) | BOOST_FIXTURE_TEST_CASE(three_yields_3, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 39) | BOOST_FIXTURE_TEST_CASE(four_yields_2_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 47) | BOOST_FIXTURE_TEST_CASE(six_yields_2_3, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 55) | BOOST_FIXTURE_TEST_CASE(eight_yields_2_2_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 64) | BOOST_FIXTURE_TEST_CASE(nine_yields_3_3, fixture)

FILE: files/test_driven/snapshots/32/test/test_mediator.cpp
  function MOCK_BASE_CLASS (line 6) | MOCK_BASE_CLASS(mock_dialog, prime_factors_dialog)
  function BOOST_AUTO_TEST_CASE (line 11) | BOOST_AUTO_TEST_CASE(ok_button_initially_disabled)

FILE: files/test_driven/snapshots/33/factors/factors.cpp
  function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)

FILE: files/test_driven/snapshots/33/factors/mediator.h
  function class (line 4) | class prime_factors_dialog
  function class (line 11) | class prime_factors_mediator

FILE: files/test_driven/snapshots/33/test/test_factors.cpp
  type fixture (line 7) | struct fixture {
    method prime_factors (line 10) | void prime_factors(int n) {
  function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 25) | BOOST_FIXTURE_TEST_CASE(two_yields_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 32) | BOOST_FIXTURE_TEST_CASE(three_yields_3, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 39) | BOOST_FIXTURE_TEST_CASE(four_yields_2_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 47) | BOOST_FIXTURE_TEST_CASE(six_yields_2_3, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 55) | BOOST_FIXTURE_TEST_CASE(eight_yields_2_2_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 64) | BOOST_FIXTURE_TEST_CASE(nine_yields_3_3, fixture)

FILE: files/test_driven/snapshots/33/test/test_mediator.cpp
  function MOCK_BASE_CLASS (line 6) | MOCK_BASE_CLASS(mock_dialog, prime_factors_dialog)
  function BOOST_AUTO_TEST_CASE (line 11) | BOOST_AUTO_TEST_CASE(ok_button_initially_disabled)

FILE: files/test_driven/snapshots/34/factors/factors.cpp
  function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)

FILE: files/test_driven/snapshots/34/factors/mediator.h
  function class (line 4) | class prime_factors_dialog
  function class (line 11) | class prime_factors_mediator

FILE: files/test_driven/snapshots/34/test/test_factors.cpp
  type fixture (line 7) | struct fixture {
    method prime_factors (line 10) | void prime_factors(int n) {
  function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 25) | BOOST_FIXTURE_TEST_CASE(two_yields_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 32) | BOOST_FIXTURE_TEST_CASE(three_yields_3, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 39) | BOOST_FIXTURE_TEST_CASE(four_yields_2_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 47) | BOOST_FIXTURE_TEST_CASE(six_yields_2_3, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 55) | BOOST_FIXTURE_TEST_CASE(eight_yields_2_2_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 64) | BOOST_FIXTURE_TEST_CASE(nine_yields_3_3, fixture)

FILE: files/test_driven/snapshots/34/test/test_mediator.cpp
  function MOCK_BASE_CLASS (line 6) | MOCK_BASE_CLASS(mock_dialog, prime_factors_dialog)
  function BOOST_AUTO_TEST_CASE (line 12) | BOOST_AUTO_TEST_CASE(ok_button_initially_disabled)
  function BOOST_AUTO_TEST_CASE (line 20) | BOOST_AUTO_TEST_CASE(ok_button_enabled_with_valid_integer)

FILE: files/test_driven/snapshots/35/factors/factors.cpp
  function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)

FILE: files/test_driven/snapshots/35/factors/mediator.h
  function class (line 6) | class prime_factors_dialog
  function class (line 14) | class prime_factors_mediator

FILE: files/test_driven/snapshots/35/test/test_factors.cpp
  type fixture (line 7) | struct fixture {
    method prime_factors (line 10) | void prime_factors(int n) {
  function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 25) | BOOST_FIXTURE_TEST_CASE(two_yields_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 32) | BOOST_FIXTURE_TEST_CASE(three_yields_3, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 39) | BOOST_FIXTURE_TEST_CASE(four_yields_2_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 47) | BOOST_FIXTURE_TEST_CASE(six_yields_2_3, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 55) | BOOST_FIXTURE_TEST_CASE(eight_yields_2_2_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 64) | BOOST_FIXTURE_TEST_CASE(nine_yields_3_3, fixture)

FILE: files/test_driven/snapshots/35/test/test_mediator.cpp
  function MOCK_BASE_CLASS (line 6) | MOCK_BASE_CLASS(mock_dialog, prime_factors_dialog)
  function BOOST_AUTO_TEST_CASE (line 12) | BOOST_AUTO_TEST_CASE(ok_button_initially_disabled)
  function BOOST_AUTO_TEST_CASE (line 20) | BOOST_AUTO_TEST_CASE(ok_button_enabled_with_valid_integer)

FILE: files/test_driven/snapshots/36/factors/factors.cpp
  function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)

FILE: files/test_driven/snapshots/36/factors/mediator.h
  function class (line 6) | class prime_factors_dialog
  function class (line 14) | class prime_factors_mediator

FILE: files/test_driven/snapshots/36/test/test_factors.cpp
  type fixture (line 7) | struct fixture {
    method prime_factors (line 10) | void prime_factors(int n) {
  function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 25) | BOOST_FIXTURE_TEST_CASE(two_yields_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 32) | BOOST_FIXTURE_TEST_CASE(three_yields_3, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 39) | BOOST_FIXTURE_TEST_CASE(four_yields_2_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 47) | BOOST_FIXTURE_TEST_CASE(six_yields_2_3, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 55) | BOOST_FIXTURE_TEST_CASE(eight_yields_2_2_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 64) | BOOST_FIXTURE_TEST_CASE(nine_yields_3_3, fixture)

FILE: files/test_driven/snapshots/36/test/test_mediator.cpp
  function MOCK_BASE_CLASS (line 6) | MOCK_BASE_CLASS(mock_dialog, prime_factors_dialog)
  function BOOST_AUTO_TEST_CASE (line 12) | BOOST_AUTO_TEST_CASE(ok_button_initially_disabled)
  function BOOST_AUTO_TEST_CASE (line 20) | BOOST_AUTO_TEST_CASE(ok_button_enabled_with_valid_integer)
  function BOOST_AUTO_TEST_CASE (line 31) | BOOST_AUTO_TEST_CASE(empty_text_disables_button)

FILE: files/test_driven/snapshots/37/factors/factors.cpp
  function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)

FILE: files/test_driven/snapshots/37/factors/mediator.h
  function class (line 6) | class prime_factors_dialog
  function class (line 14) | class prime_factors_mediator

FILE: files/test_driven/snapshots/37/test/test_factors.cpp
  type fixture (line 7) | struct fixture {
    method prime_factors (line 10) | void prime_factors(int n) {
  function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 25) | BOOST_FIXTURE_TEST_CASE(two_yields_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 32) | BOOST_FIXTURE_TEST_CASE(three_yields_3, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 39) | BOOST_FIXTURE_TEST_CASE(four_yields_2_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 47) | BOOST_FIXTURE_TEST_CASE(six_yields_2_3, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 55) | BOOST_FIXTURE_TEST_CASE(eight_yields_2_2_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 64) | BOOST_FIXTURE_TEST_CASE(nine_yields_3_3, fixture)

FILE: files/test_driven/snapshots/37/test/test_mediator.cpp
  function MOCK_BASE_CLASS (line 6) | MOCK_BASE_CLASS(mock_dialog, prime_factors_dialog)
  function BOOST_AUTO_TEST_CASE (line 12) | BOOST_AUTO_TEST_CASE(ok_button_initially_disabled)
  function BOOST_AUTO_TEST_CASE (line 20) | BOOST_AUTO_TEST_CASE(ok_button_enabled_with_valid_integer)
  function BOOST_AUTO_TEST_CASE (line 31) | BOOST_AUTO_TEST_CASE(empty_text_disables_button)

FILE: files/test_driven/snapshots/38/factors/factors.cpp
  function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)

FILE: files/test_driven/snapshots/38/factors/mediator.h
  function class (line 6) | class prime_factors_dialog
  function class (line 14) | class prime_factors_mediator

FILE: files/test_driven/snapshots/38/test/test_factors.cpp
  type fixture (line 7) | struct fixture {
    method prime_factors (line 10) | void prime_factors(int n) {
  function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 25) | BOOST_FIXTURE_TEST_CASE(two_yields_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 32) | BOOST_FIXTURE_TEST_CASE(three_yields_3, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 39) | BOOST_FIXTURE_TEST_CASE(four_yields_2_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 47) | BOOST_FIXTURE_TEST_CASE(six_yields_2_3, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 55) | BOOST_FIXTURE_TEST_CASE(eight_yields_2_2_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 64) | BOOST_FIXTURE_TEST_CASE(nine_yields_3_3, fixture)

FILE: files/test_driven/snapshots/38/test/test_mediator.cpp
  function MOCK_BASE_CLASS (line 6) | MOCK_BASE_CLASS(mock_dialog, prime_factors_dialog)
  function BOOST_AUTO_TEST_CASE (line 12) | BOOST_AUTO_TEST_CASE(ok_button_initially_disabled)
  function BOOST_AUTO_TEST_CASE (line 20) | BOOST_AUTO_TEST_CASE(ok_button_enabled_with_valid_integer)
  function BOOST_AUTO_TEST_CASE (line 31) | BOOST_AUTO_TEST_CASE(empty_text_disables_button)
  function BOOST_AUTO_TEST_CASE (line 41) | BOOST_AUTO_TEST_CASE(not_a_number_disables_button)

FILE: files/test_driven/snapshots/39/factors/factors.cpp
  function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)

FILE: files/test_driven/snapshots/39/factors/mediator.h
  function class (line 7) | class prime_factors_dialog
  function class (line 15) | class prime_factors_mediator

FILE: files/test_driven/snapshots/39/test/test_factors.cpp
  type fixture (line 7) | struct fixture {
    method prime_factors (line 10) | void prime_factors(int n) {
  function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 25) | BOOST_FIXTURE_TEST_CASE(two_yields_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 32) | BOOST_FIXTURE_TEST_CASE(three_yields_3, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 39) | BOOST_FIXTURE_TEST_CASE(four_yields_2_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 47) | BOOST_FIXTURE_TEST_CASE(six_yields_2_3, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 55) | BOOST_FIXTURE_TEST_CASE(eight_yields_2_2_2, fixture)
  function BOOST_FIXTURE_TEST_CASE (line 64) | BOOST_FIXTURE_TEST_CASE(nine_yields_3_3, fixture)

FILE: files/test_driven/snapshots/39/test/test_mediator.cpp
  function MOCK_BASE_CLASS (line 6) | MOCK_BASE_CLASS(mock_dialog, prime_factors_dialog)
  function BOOST_AUTO_TEST_CASE (line 12) | BOOST_AUTO_TEST_CASE(ok_button_initially_disabled)
  function BOOST_AUTO_TEST_CASE (line 20) | BOOST_AUTO_TEST_CASE(ok_button_enabled_with_valid_integer)
  function BOOST_AUTO_TEST_CASE (line 31) | BOOST_AUTO_TEST_CASE(empty_text_disables_button)
  function BOOST_AUTO_TEST_CASE (line 41) | BOOST_AUTO_TEST_CASE(not_a_number_disables_button)
Condensed preview — 476 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (1,678K chars).
[
  {
    "path": ".gitignore",
    "chars": 22,
    "preview": "unlinked/\n*~\n.DS_Store"
  },
  {
    "path": "README.md",
    "chars": 9326,
    "preview": "# C++Now 2014 Presentations\n\n* [Library in a Week Repo](https://github.com/JeffGarland/liaw2014.git)\n\nBelow are links to"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/doc/src/boostbook.css",
    "chars": 14127,
    "preview": "/*=============================================================================\n    Copyright (c) 2004 Joel de Guzman\n  "
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/index.html",
    "chars": 148,
    "preview": "<html>\n<head>\n<title>Boost.Test</title>\n</head>\n<body>\n<p>Browse the <a\nhref=\"libs/test/doc/html/index.html\">documentati"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/Jamfile.v2",
    "chars": 623,
    "preview": "# Jamfile.v2\n#\n# Copyright (c) 2013\n# Richard Thomson\n#\n# Distributed Under the Boost Software License, Version 1.0. (Se"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/index.html",
    "chars": 17093,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Chapter&#160;1.&#160;Boost.T"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide/acceptance_tests.html",
    "chars": 4815,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Acceptance Tests and Unit Te"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide/compilation/_main_.html",
    "chars": 4524,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>main</title>\n<link rel=\"styl"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide/compilation/header_only.html",
    "chars": 8358,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Header Only</title>\n<link re"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide/compilation/minimal_header.html",
    "chars": 8605,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Minimal Header</title>\n<link"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide/compilation/shared_library.html",
    "chars": 13319,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Shared Library</title>\n<link"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide/compilation/static_library.html",
    "chars": 12337,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Static Library</title>\n<link"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide/compilation.html",
    "chars": 5648,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Compilation and Usage Varian"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide/exception_safety_test.html",
    "chars": 3123,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Exception Safety Tests</titl"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide/manually_registering_test_cases_and_suites.html",
    "chars": 14002,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Manually Registering Test Ca"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide/mocking_collaborators.html",
    "chars": 23315,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Mocking Collaborators</title"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide/test_case_design.html",
    "chars": 26020,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Test Case Design and Mainten"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide/testing__main_.html",
    "chars": 6769,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Testing main</title>\n<link r"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide/testing_file_i_o.html",
    "chars": 32287,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Testing File I/O</title>\n<li"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide/testing_file_io.html",
    "chars": 35234,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Testing File I/O</title>\n<li"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide/testing_protected_or_private_members.html",
    "chars": 7951,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Testing Protected or Private"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide.html",
    "chars": 4460,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>User's Guide</title>\n<link r"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/how_to_read_this_documentation.html",
    "chars": 3975,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>How To Read This Documentati"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/motivation.html",
    "chars": 3417,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Motivation</title>\n<link rel"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/assertion/_boost____level___bitwise_equal_.html",
    "chars": 5185,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_BITWISE_EQUAL</t"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/assertion/_boost____level___close_.html",
    "chars": 4946,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_CLOSE</title>\n<l"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/assertion/_boost____level___close_fraction_.html",
    "chars": 4974,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_CLOSE_FRACTION</"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/assertion/_boost____level___equal_collections_.html",
    "chars": 11357,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_EQUAL_COLLECTION"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/assertion/_boost____level___exception_.html",
    "chars": 6547,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_EXCEPTION</title"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/assertion/_boost____level___ge_.html",
    "chars": 8480,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_GE</title>\n<link"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/assertion/_boost____level___gt_.html",
    "chars": 7678,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_GT</title>\n<link"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/assertion/_boost____level___le_.html",
    "chars": 8517,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_LE</title>\n<link"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/assertion/_boost____level___lt_.html",
    "chars": 7683,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_LT</title>\n<link"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/assertion/_boost____level___message_.html",
    "chars": 7678,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_MESSAGE</title>\n"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/assertion/_boost____level___ne_.html",
    "chars": 7679,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_NE</title>\n<link"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/assertion/_boost____level___no_throw_.html",
    "chars": 3984,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_NO_THROW</title>"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/assertion/_boost____level___predicate_.html",
    "chars": 6435,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_PREDICATE</title"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/assertion/_boost____level___small_.html",
    "chars": 4584,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_SMALL</title>\n<l"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/assertion/_boost_test_dont_print_log_value_.html",
    "chars": 6385,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_TEST_DONT_PRINT_LOG_VA"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/assertion/_boost_test_error_.html",
    "chars": 3301,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_TEST_ERROR</title>\n<li"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/assertion/_boost_test_is_defined_.html",
    "chars": 3322,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_TEST_IS_DEFINED</title"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/assertion/boost_fail.html",
    "chars": 5052,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_FAIL</title>\n<link rel"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/assertion/boost_level_equal.html",
    "chars": 11957,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_EQUAL</title>\n<l"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/assertion/boost_level_exception.html",
    "chars": 7199,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_EXCEPTION</title"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/assertion/boost_level_message.html",
    "chars": 7969,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_MESSAGE</title>\n"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/assertion/boost_level_no_throw.html",
    "chars": 4269,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_NO_THROW</title>"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/assertion/boost_level_throw.html",
    "chars": 5021,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_THROW</title>\n<l"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/assertion/boost_test_dont_print_log_value.html",
    "chars": 6373,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_TEST_DONT_PRINT_LOG_VA"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/assertion/levels.html",
    "chars": 5448,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Assertion Levels</title>\n<li"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/assertion.html",
    "chars": 8627,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Test Assertions</title>\n<lin"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/configuration_macros.html",
    "chars": 6298,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Configuration Macros</title>"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/headers.html",
    "chars": 28932,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Header Files</title>\n<link r"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/argument/___break_exec_path_.html",
    "chars": 4518,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>--break_exec_path</title>\n<l"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/argument/___build_info_.html",
    "chars": 4435,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>--build_info</title>\n<link r"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/argument/___catch_system_errors_.html",
    "chars": 4338,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>--catch_system_errors</title"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/argument/___color_output_.html",
    "chars": 4479,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>--color_output</title>\n<link"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/argument/___detect_fp_exceptions_.html",
    "chars": 4489,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>--detect_fp_exceptions</titl"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/argument/___detect_memory_leaks_.html",
    "chars": 5139,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>--detect_memory_leaks</title"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/argument/___log_level_.html",
    "chars": 6994,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>--log_level</title>\n<link re"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/argument/___log_sink_.html",
    "chars": 4794,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>--log_sink</title>\n<link rel"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/argument/___output_format_.html",
    "chars": 4672,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>--output_format</title>\n<lin"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/argument/___random_.html",
    "chars": 4771,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>--random</title>\n<link rel=\""
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/argument/___report_level_.html",
    "chars": 4897,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>--report_level</title>\n<link"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/argument/___report_sink_.html",
    "chars": 4801,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>--report_sink</title>\n<link "
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/argument/___result_code_.html",
    "chars": 5632,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>--result_code</title>\n<link "
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/argument/___save_pattern_.html",
    "chars": 4687,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>--save_pattern</title>\n<link"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/argument/___show_progress_.html",
    "chars": 4434,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>--show_progress</title>\n<lin"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/argument/___use_alt_stack_.html",
    "chars": 4312,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>--use_alt_stack</title>\n<lin"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/argument/auto_start_dbg.html",
    "chars": 4463,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>--auto_start_dbg</title>\n<li"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/argument/list_content.html",
    "chars": 4405,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>--list_content</title>\n<link"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/argument/log_format.html",
    "chars": 4380,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>--log_format</title>\n<link r"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/argument/log_level.html",
    "chars": 6967,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>--log_level</title>\n<link re"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/argument/log_sink.html",
    "chars": 4755,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>--log_sink</title>\n<link rel"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/argument/output_format.html",
    "chars": 4651,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>--output_format</title>\n<lin"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/argument/report_format.html",
    "chars": 4320,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>--report_format</title>\n<lin"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/argument/report_level.html",
    "chars": 5010,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>--report_level</title>\n<link"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/argument/report_sink.html",
    "chars": 4792,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>--report_sink</title>\n<link "
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/argument/run_test.html",
    "chars": 7665,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>--run_test</title>\n<link rel"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/argument.html",
    "chars": 11012,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Command Line Arguments</titl"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/output/_boost_test_checkpoint_.html",
    "chars": 5020,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_TEST_CHECKPOINT</title"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/output/_boost_test_passpoint_.html",
    "chars": 3681,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_TEST_PASSPOINT</title>"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/output/boost_test_checkpoint.html",
    "chars": 5009,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_TEST_CHECKPOINT</title"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/output/boost_test_message.html",
    "chars": 4894,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_TEST_MESSAGE</title>\n<"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/output/log.html",
    "chars": 4130,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Test Log</title>\n<link rel=\""
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/output/report.html",
    "chars": 4255,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Test Report</title>\n<link re"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/output/test_log.html",
    "chars": 2919,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Test Log</title>\n<link rel=\""
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/output/test_report.html",
    "chars": 2974,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Test Report</title>\n<link re"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/output.html",
    "chars": 3524,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Test Output</title>\n<link re"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner.html",
    "chars": 6072,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Test Runner</title>\n<link re"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_case/boost_auto_test_case.html",
    "chars": 5768,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_AUTO_TEST_CASE</title>"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_case/boost_auto_test_case_expected_failures.html",
    "chars": 9038,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_AUTO_TEST_CASE_EXPECTE"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_case/boost_auto_test_case_template.html",
    "chars": 7240,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_AUTO_TEST_CASE_TEMPLAT"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_case/boost_fixture_test_case.html",
    "chars": 5622,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_FIXTURE_TEST_CASE</tit"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_case/boost_global_fixture.html",
    "chars": 6546,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_GLOBAL_FIXTURE</title>"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_case/boost_param_class_test_case.html",
    "chars": 15359,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_PARAM_CLASS_TEST_CASE<"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_case/boost_param_test_case.html",
    "chars": 9907,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_PARAM_TEST_CASE</title"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_case/boost_test_case.html",
    "chars": 8342,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_TEST_CASE</title>\n<lin"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_case/boost_test_case_template.html",
    "chars": 7185,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_TEST_CASE_TEMPLATE</ti"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_case/boost_test_case_template_function.html",
    "chars": 6022,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_TEST_CASE_TEMPLATE_FUN"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_case.html",
    "chars": 10673,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Test Cases</title>\n<link rel"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/assertion/_boost____level___bitwise_equal_.html",
    "chars": 4915,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_BITWISE_EQUAL</t"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/assertion/_boost____level___close_.html",
    "chars": 4790,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_CLOSE</title>\n<l"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/assertion/_boost____level___close_fraction_.html",
    "chars": 4782,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_CLOSE_FRACTION</"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/assertion/_boost____level___equal_collections_.html",
    "chars": 7873,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_EQUAL_COLLECTION"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/assertion/_boost____level___exception_.html",
    "chars": 6629,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_EXCEPTION</title"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/assertion/_boost____level___ge_.html",
    "chars": 8011,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_GE</title>\n<link"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/assertion/_boost____level___gt_.html",
    "chars": 7148,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_GT</title>\n<link"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/assertion/_boost____level___le_.html",
    "chars": 7983,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_LE</title>\n<link"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/assertion/_boost____level___lt_.html",
    "chars": 7174,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_LT</title>\n<link"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/assertion/_boost____level___message_.html",
    "chars": 7654,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_MESSAGE</title>\n"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/assertion/_boost____level___ne_.html",
    "chars": 5017,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_NE</title>\n<link"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/assertion/_boost____level___no_throw_.html",
    "chars": 3557,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_NO_THROW</title>"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/assertion/_boost____level___predicate_.html",
    "chars": 3704,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_PREDICATE</title"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/assertion/_boost____level___small_.html",
    "chars": 3191,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_SMALL</title>\n<l"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/assertion/_boost_test_dont_print_log_value_.html",
    "chars": 3615,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_TEST_DONT_PRINT_LOG_VA"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/assertion/_boost_test_error_.html",
    "chars": 3370,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_TEST_ERROR</title>\n<li"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/assertion/_boost_test_is_defined_.html",
    "chars": 3389,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_TEST_IS_DEFINED</title"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/assertion/boost_fail.html",
    "chars": 3399,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_TEST_FAIL</title>\n<lin"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/assertion/boost_level_equal.html",
    "chars": 11363,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_EQUAL</title>\n<l"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/assertion/boost_level_throw.html",
    "chars": 3619,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_THROW</title>\n<l"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/assertion/levels.html",
    "chars": 5669,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Assertion Levels</title>\n<li"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/assertion.html",
    "chars": 8746,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Test Assertions</title>\n<lin"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/headers.html",
    "chars": 28933,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Header Files</title>\n<link r"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/init_unit_test_func.html",
    "chars": 4471,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>init_unit_test_func</title>\n"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/master_test_suite_t.html",
    "chars": 5646,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>master_test_suite_t</title>\n"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/predicate_result/init_unit_test_func.html",
    "chars": 4571,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>init_unit_test_func</title>\n"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/predicate_result/master_test_suite_t.html",
    "chars": 5750,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>master_test_suite_t</title>\n"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/predicate_result/test_case.html",
    "chars": 5132,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>test_case</title>\n<link rel="
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/predicate_result/test_observer.html",
    "chars": 7054,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>test_observer</title>\n<link "
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/predicate_result/test_suite.html",
    "chars": 6593,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>test_suite</title>\n<link rel"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/predicate_result/test_unit.html",
    "chars": 8542,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>test_unit</title>\n<link rel="
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/predicate_result/unit_test_log_formatter.html",
    "chars": 11947,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>unit_test_log_formatter</tit"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/predicate_result/unit_test_log_t.html",
    "chars": 11257,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>unit_test_log_t</title>\n<lin"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/predicate_result/unit_test_main.html",
    "chars": 4704,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>unit_test_main</title>\n<link"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/predicate_result.html",
    "chars": 9062,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>predicate_result</title>\n<li"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/runner/argument.html",
    "chars": 58362,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Command Line Arguments</titl"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/runner/output.html",
    "chars": 7105,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Test Output</title>\n<link re"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/runner.html",
    "chars": 3276,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Test Runner</title>\n<link re"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/test_case.html",
    "chars": 5034,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>test_case</title>\n<link rel="
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/test_observer.html",
    "chars": 6956,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>test_observer</title>\n<link "
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/test_suite.html",
    "chars": 6497,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>test_suite</title>\n<link rel"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/test_unit.html",
    "chars": 8433,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>test_unit</title>\n<link rel="
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/unit_test_log_formatter.html",
    "chars": 11851,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>unit_test_log_formatter</tit"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/unit_test_log_t.html",
    "chars": 11159,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>unit_test_log_t</title>\n<lin"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/unit_test_main.html",
    "chars": 4593,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>unit_test_main</title>\n<link"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes.html",
    "chars": 6199,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Test Classes</title>\n<link r"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_suite/boost_auto_test_suite.html",
    "chars": 5657,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_AUTO_TEST_SUITE</title"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_suite/boost_auto_test_suite_end.html",
    "chars": 5480,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_AUTO_TEST_SUITE_END</t"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_suite/boost_fixture_test_suite.html",
    "chars": 5402,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_FIXTURE_TEST_SUITE</ti"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_suite/boost_test_module.html",
    "chars": 4953,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_TEST_MODULE</title>\n<l"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_suite/boost_test_suite.html",
    "chars": 6457,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_TEST_SUITE</title>\n<li"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_suite.html",
    "chars": 4112,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Test Suites</title>\n<link re"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference.html",
    "chars": 14691,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Reference</title>\n<link rel="
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/tutorials/hello_test.html",
    "chars": 17866,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Hello, Test!</title>\n<link r"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/tutorials/running_selected_tests.html",
    "chars": 18270,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Running Selected Tests</titl"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/tutorials/testing_with_exceptions.html",
    "chars": 13070,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Testing with Exceptions</tit"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/tutorials/testing_with_fixtures.html",
    "chars": 13959,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Testing with Fixtures</title"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/tutorials.html",
    "chars": 4165,
    "preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Tutorials</title>\n<link rel="
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test_HTML.manifest",
    "chars": 4499,
    "preview": "index.html\ntest/motivation.html\ntest/how_to_read_this_documentation.html\ntest/tutorials.html\ntest/tutorials/hello_test.h"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/Jamfile.v2",
    "chars": 363,
    "preview": "# Jamfile.v2\n#\n# Copyright (c) 2013\n# Richard Thomson\n#\n# Distributed Under the Boost Software License, Version 1.0. (Se"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/UTF.log.xsd",
    "chars": 5516,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<xs:schema xmlns:xs=\"http://www.w3.org/2001/XMLSchema\">\n\t<xs:attributeGroup name="
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/UTF.report.xsd",
    "chars": 3057,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!-- edited with XMLSpy v2007 (http://www.altova.com) by rogeeff (boost) -->\n<xs:"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/Jamfile.v2",
    "chars": 2016,
    "preview": "# Jamfile.v2\n#\n# Copyright (c) 2013\n# Richard Thomson\n#\n# Distributed Under the Boost Software License, Version 1.0. (Se"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/another_global_fixture.cpp",
    "chars": 652,
    "preview": "#include <boost/test/unit_test.hpp>\r\n\r\n#include <iostream>\r\n\r\nstruct global3\r\n{\r\n    global3()\r\n    {\r\n        std::cout"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/assertion_failures.cpp",
    "chars": 324,
    "preview": "#define BOOST_TEST_MAIN\n#include <boost/test/unit_test.hpp>\n\n#include <stdexcept>\n\n//[example_fail\nBOOST_AUTO_TEST_CASE("
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/assertions.cpp",
    "chars": 7500,
    "preview": "//[example_test_module\n#define BOOST_TEST_MAIN\n#define BOOST_TEST_MODULE \"Assertions\"\n#include <boost/test/unit_test.hpp"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/auto_test_case_expected_failures.cpp",
    "chars": 992,
    "preview": "#define BOOST_TEST_MAIN\r\n#include <boost/test/unit_test.hpp>\r\n#include \"hello.hpp\"\r\n#include <sstream>\r\n\r\nBOOST_AUTO_TES"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/auto_test_case_template.cpp",
    "chars": 716,
    "preview": "#define BOOST_TEST_MODULE auto_test_case_template\r\n#define BOOST_TEST_MAIN\r\n#include <boost/test/unit_test.hpp>\r\n\r\n//[au"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/compilation/Jamfile.v2",
    "chars": 1448,
    "preview": "# Jamfile.v2\n#\n# Copyright (c) 2013\n# Richard Thomson\n#\n# Distributed Under the Boost Software License, Version 1.0. (Se"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/compilation/dynamic/main.cpp",
    "chars": 88,
    "preview": "#define BOOST_TEST_DYN_LINK\n#define BOOST_TEST_MAIN\n#include <boost/test/unit_test.hpp>\n"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/compilation/dynamic/test_hello.cpp",
    "chars": 568,
    "preview": "#define BOOST_TEST_DYN_LINK\n#include <boost/test/unit_test.hpp>\n#include \"hello.hpp\"\n#include <ios>\n#include <sstream>\n\n"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/compilation/dynamic_main/main.cpp",
    "chars": 357,
    "preview": "#define BOOST_TEST_DYN_LINK\n#define BOOST_TEST_NO_MAIN\n#include <boost/test/unit_test.hpp>\n\nbool init_function()\n{\n    /"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/compilation/dynamic_main/test_hello.cpp",
    "chars": 595,
    "preview": "#define BOOST_TEST_DYN_LINK\n#define BOOST_TEST_NO_MAIN\n#include <boost/test/unit_test.hpp>\n#include \"hello.hpp\"\n#include"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/compilation/minimal/test_hello.cpp",
    "chars": 734,
    "preview": "#include <boost/test/minimal.hpp>\n#include \"hello.hpp\"\n#include <ios>\n#include <sstream>\n\nstatic void inserts_text()\n{\n "
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/compilation/static/main.cpp",
    "chars": 60,
    "preview": "#define BOOST_TEST_MAIN\n#include <boost/test/unit_test.hpp>\n"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/compilation/static/test_hello.cpp",
    "chars": 540,
    "preview": "#include <boost/test/unit_test.hpp>\n#include \"hello.hpp\"\n#include <ios>\n#include <sstream>\n\nstruct hello_world_fixture\n{"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/compilation/static_main/main.cpp",
    "chars": 354,
    "preview": "#define BOOST_TEST_NO_MAIN\n#include <boost/test/unit_test.hpp>\n\nboost::unit_test::test_suite *init_function(int argc, ch"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/compilation/static_main/test_hello.cpp",
    "chars": 567,
    "preview": "#define BOOST_TEST_NO_MAIN\n#include <boost/test/unit_test.hpp>\n#include \"hello.hpp\"\n#include <ios>\n#include <sstream>\n\ns"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/file_system.cpp",
    "chars": 3558,
    "preview": "#define BOOST_TEST_MAIN\r\n#include <boost/test/unit_test.hpp>\r\n#include \"directory_scanner.hpp\"\r\n#include \"scanner.hpp\"\r\n"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/global_fixture.cpp",
    "chars": 987,
    "preview": "#define BOOST_TEST_MAIN\r\n#include <boost/test/unit_test.hpp>\r\n\r\n#include <iostream>\r\n\r\n//[global_fixture\r\nstruct global_"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/manual_registration.cpp",
    "chars": 1683,
    "preview": "#define BOOST_TEST_NO_MAIN\n#include <boost/test/included/unit_test.hpp>\n#include \"hello.hpp\"\n\nusing namespace boost::uni"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/param_class_test_case.cpp",
    "chars": 1567,
    "preview": "#define BOOST_TEST_NO_MAIN\n#include <boost/test/included/unit_test.hpp>\n#include <boost/test/parameterized_test.hpp>\n#in"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/param_test_case.cpp",
    "chars": 795,
    "preview": "#define BOOST_TEST_NO_MAIN\n#include <boost/test/included/unit_test.hpp>\n#include <boost/test/parameterized_test.hpp>\n#in"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/test_case.cpp",
    "chars": 527,
    "preview": "//[test_case\n#define BOOST_TEST_NO_MAIN\n#include <boost/test/included/unit_test.hpp>\n#include \"hello.hpp\"\n#include <sstr"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/test_case_template.cpp",
    "chars": 1043,
    "preview": "#define BOOST_TEST_NO_MAIN\n#include <boost/test/included/unit_test.hpp>\n#include <sstream>\n\nusing namespace boost::unit_"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/turtle_mock.cpp",
    "chars": 3255,
    "preview": "#define BOOST_TEST_MAIN\r\n#include <boost/test/unit_test.hpp>\r\n#include \"scanner.hpp\"\r\n\r\n//[mock_directory_scanner\r\n#incl"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/ref-assertion.qbk",
    "chars": 10416,
    "preview": "[/==============================================================================\n    Copyright (C) 2013 Richard Thomson\n"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/ref-assertion.qbk.bak",
    "chars": 10416,
    "preview": "[/==============================================================================\n    Copyright (C) 2013 Richard Thomson\n"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/ref-compilation.qbk",
    "chars": 1919,
    "preview": "[/==============================================================================\n    Copyright (C) 2013 Richard Thomson\n"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/ref-runner-argument.qbk",
    "chars": 11447,
    "preview": "[/==============================================================================\n    Copyright (C) 2013 Richard Thomson\n"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/ref-runner-argument.qbk.bak",
    "chars": 11447,
    "preview": "[/==============================================================================\n    Copyright (C) 2013 Richard Thomson\n"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/ref-runner-output.qbk",
    "chars": 3030,
    "preview": "[/==============================================================================\n    Copyright (C) 2013 Richard Thomson\n"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/ref-runner.qbk",
    "chars": 477,
    "preview": "[/==============================================================================\n    Copyright (C) 2013 Richard Thomson\n"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/ref-test-case.qbk",
    "chars": 12583,
    "preview": "[/==============================================================================\n    Copyright (C) 2013 Richard Thomson\n"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/ref-test-case.qbk.bak",
    "chars": 12584,
    "preview": "[/==============================================================================\n    Copyright (C) 2013 Richard Thomson\n"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/ref-test-classes.qbk",
    "chars": 5110,
    "preview": "[/==============================================================================\n    Copyright (C) 2013 Richard Thomson\n"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/ref-test-suite.qbk",
    "chars": 4412,
    "preview": "[/==============================================================================\n    Copyright (C) 2013 Richard Thomson\n"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/reference.qbk",
    "chars": 677,
    "preview": "[/==============================================================================\n    Copyright (C) 2013 Richard Thomson\n"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/system_under_test/Jamfile.v2",
    "chars": 327,
    "preview": "# Jamfile.v2\n#\n# Copyright (c) 2013\n# Richard Thomson\n#\n# Distributed Under the Boost Software License, Version 1.0. (Se"
  },
  {
    "path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/system_under_test/hello/Jamfile.v2",
    "chars": 249,
    "preview": "# Jamfile.v2\n#\n# Copyright (c) 2013\n# Richard Thomson\n#\n# Distributed Under the Boost Software License, Version 1.0. (Se"
  }
]

// ... and 276 more files (download for full content)

About this extraction

This page contains the full source code of the boostcon/cppnow_presentations_2014 GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 476 files (46.9 MB), approximately 414.1k tokens, and a symbol index with 518 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!