diff --git a/CMakeLists.txt b/CMakeLists.txt index 806b689ee..d51d4bef7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -26,7 +26,6 @@ target_link_libraries(boost_algorithm Boost::mpl Boost::range Boost::regex - Boost::static_assert Boost::throw_exception Boost::tuple Boost::type_traits diff --git a/Jamfile b/Jamfile deleted file mode 100644 index a2dbf99e6..000000000 --- a/Jamfile +++ /dev/null @@ -1,11 +0,0 @@ -# Boost.Algorithm Library Jamfile -# -# Copyright (c) 2018 James E. King III -# -# Use, modification, and distribution are subject to 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) - -# please order by name to ease maintenance -build-project example ; -build-project test ; diff --git a/README.md b/README.md index d0d5752fa..80fb526c6 100644 --- a/README.md +++ b/README.md @@ -13,8 +13,8 @@ Distributed under the [Boost Software License, Version 1.0](http://www.boost.org Branch | Travis | Appveyor | Coverity Scan | codecov.io | Deps | Docs | Tests | :-------------: | ------ | -------- | ------------- | ---------- | ---- | ---- | ----- | -[`master`](https://github.com/boostorg/algorithm/tree/master) | [![Build Status](https://travis-ci.org/boostorg/algorithm.svg?branch=master)](https://travis-ci.org/boostorg/algorithm) | [![Build status](https://ci.appveyor.com/api/projects/status/FIXME/branch/master?svg=true)](https://ci.appveyor.com/project/USER/PROJECT/branch/master) | [![Coverity Scan Build Status](https://scan.coverity.com/projects/99999/badge.svg)](https://scan.coverity.com/projects/boostorg-algorithm) | [![codecov](https://codecov.io/gh/boostorg/algorithm/branch/master/graph/badge.svg)](https://codecov.io/gh/boostorg/algorithm/branch/master)| [![Deps](https://img.shields.io/badge/deps-master-brightgreen.svg)](https://pdimov.github.io/boostdep-report/master/algorithm.html) | [![Documentation](https://img.shields.io/badge/docs-master-brightgreen.svg)](http://www.boost.org/doc/libs/master/doc/html/algorithm.html) | [![Enter the Matrix](https://img.shields.io/badge/matrix-master-brightgreen.svg)](http://www.boost.org/development/tests/master/developer/algorithm.html) -[`develop`](https://github.com/boostorg/algorithm/tree/develop) | [![Build Status](https://travis-ci.org/boostorg/algorithm.svg?branch=develop)](https://travis-ci.org/boostorg/algorithm) | [![Build status](https://ci.appveyor.com/api/projects/status/FIXME/branch/develop?svg=true)](https://ci.appveyor.com/project/USER/PROJECT/branch/develop) | [![Coverity Scan Build Status](https://scan.coverity.com/projects/99999/badge.svg)](https://scan.coverity.com/projects/boostorg-algorithm) | [![codecov](https://codecov.io/gh/boostorg/algorithm/branch/develop/graph/badge.svg)](https://codecov.io/gh/boostorg/algorithm/branch/develop) | [![Deps](https://img.shields.io/badge/deps-develop-brightgreen.svg)](https://pdimov.github.io/boostdep-report/develop/algorithm.html) | [![Documentation](https://img.shields.io/badge/docs-develop-brightgreen.svg)](http://www.boost.org/doc/libs/develop/doc/html/algorithm.html) | [![Enter the Matrix](https://img.shields.io/badge/matrix-develop-brightgreen.svg)](http://www.boost.org/development/tests/develop/developer/algorithm.html) +[`master`](https://github.com/boostorg/algorithm/tree/master) | [![Build Status](https://travis-ci.org/boostorg/algorithm.svg?branch=master)](https://travis-ci.org/boostorg/algorithm) | [![Build status](https://ci.appveyor.com/api/projects/status/FIXME/branch/master?svg=true)](https://ci.appveyor.com/project/USER/PROJECT/branch/master) | [![Coverity Scan Build Status](https://scan.coverity.com/projects/99999/badge.svg)](https://scan.coverity.com/projects/boostorg-algorithm) | [![codecov](https://codecov.io/gh/boostorg/algorithm/branch/master/graph/badge.svg)](https://codecov.io/gh/boostorg/algorithm/branch/master)| [![Deps](https://img.shields.io/badge/deps-master-brightgreen.svg)](https://pdimov.github.io/boostdep-report/master/algorithm.html) | [![Documentation](https://img.shields.io/badge/docs-master-brightgreen.svg)](http://www.boost.org/doc/libs/master/doc/html/algorithm.html) | [![Enter the Matrix](https://img.shields.io/badge/matrix-master-brightgreen.svg)](https://regression.boost.io/master/developer/algorithm.html) +[`develop`](https://github.com/boostorg/algorithm/tree/develop) | [![Build Status](https://travis-ci.org/boostorg/algorithm.svg?branch=develop)](https://travis-ci.org/boostorg/algorithm) | [![Build status](https://ci.appveyor.com/api/projects/status/FIXME/branch/develop?svg=true)](https://ci.appveyor.com/project/USER/PROJECT/branch/develop) | [![Coverity Scan Build Status](https://scan.coverity.com/projects/99999/badge.svg)](https://scan.coverity.com/projects/boostorg-algorithm) | [![codecov](https://codecov.io/gh/boostorg/algorithm/branch/develop/graph/badge.svg)](https://codecov.io/gh/boostorg/algorithm/branch/develop) | [![Deps](https://img.shields.io/badge/deps-develop-brightgreen.svg)](https://pdimov.github.io/boostdep-report/develop/algorithm.html) | [![Documentation](https://img.shields.io/badge/docs-develop-brightgreen.svg)](http://www.boost.org/doc/libs/develop/doc/html/algorithm.html) | [![Enter the Matrix](https://img.shields.io/badge/matrix-develop-brightgreen.svg)](https://regression.boost.io/develop/developer/algorithm.html) ### Directories diff --git a/build.jam b/build.jam new file mode 100644 index 000000000..33b732316 --- /dev/null +++ b/build.jam @@ -0,0 +1,41 @@ +# Copyright René Ferdinand Rivera Morell 2023-2024 +# 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) + +require-b2 5.2 ; + +constant boost_dependencies : + /boost/array//boost_array + /boost/assert//boost_assert + /boost/bind//boost_bind + /boost/concept_check//boost_concept_check + /boost/config//boost_config + /boost/core//boost_core + /boost/exception//boost_exception + /boost/function//boost_function + /boost/iterator//boost_iterator + /boost/mpl//boost_mpl + /boost/range//boost_range + /boost/regex//boost_regex + /boost/throw_exception//boost_throw_exception + /boost/tuple//boost_tuple + /boost/type_traits//boost_type_traits + /boost/unordered//boost_unordered ; + +project /boost/algorithm + : common-requirements + include + ; + +explicit + [ alias boost_algorithm : : : : $(boost_dependencies) ] + [ alias all : boost_algorithm test + example + minmax/example minmax/test + string/example string/test + ] + ; + +call-if : boost-library algorithm + ; diff --git a/doc/Jamfile.v2 b/doc/Jamfile.v2 index bc67f7def..4d3319af0 100644 --- a/doc/Jamfile.v2 +++ b/doc/Jamfile.v2 @@ -16,18 +16,18 @@ using quickbook ; using doxygen ; using boostbook ; -doxygen autodoc - : - [ glob ../../../boost/algorithm/*.hpp - ../../../boost/algorithm/searching/*.hpp - ../../../boost/algorithm/cxx11/*.hpp - ../../../boost/algorithm/cxx14/*.hpp - ../../../boost/algorithm/cxx17/*.hpp +doxygen autodoc + : + [ glob ../include/boost/algorithm/*.hpp + ../include/boost/algorithm/searching/*.hpp + ../include/boost/algorithm/cxx11/*.hpp + ../include/boost/algorithm/cxx14/*.hpp + ../include/boost/algorithm/cxx17/*.hpp ] - : + : "PREDEFINED=\"BOOST_ALGORITHM_DOXYGEN=1\"" WARNINGS=YES # Default NO, but useful to see warnings, especially in a logfile. - ; + ; xml algorithm : algorithm.qbk ; @@ -36,7 +36,7 @@ boostbook standalone : algorithm : - autodoc + autodoc boost.root=../../../.. "boost.doxygen.reftitle=Boost.Algorithms C++ Reference" chapter.autolabel=0 diff --git a/example/Jamfile.v2 b/example/Jamfile.v2 index 64a405559..ce3eca301 100644 --- a/example/Jamfile.v2 +++ b/example/Jamfile.v2 @@ -8,9 +8,9 @@ # See http://www.boost.org for updates, documentation, and revision history. -project /boost/algorithm/example +project : requirements - ../../../ + /boost/algorithm//boost_algorithm speed msvc:_SCL_SECURE_NO_WARNINGS msvc:NOMINMAX diff --git a/include/boost/algorithm/cxx11/is_permutation.hpp b/include/boost/algorithm/cxx11/is_permutation.hpp index 693f54a49..fb4083a15 100644 --- a/include/boost/algorithm/cxx11/is_permutation.hpp +++ b/include/boost/algorithm/cxx11/is_permutation.hpp @@ -100,7 +100,7 @@ namespace detail { } /// \endcond -/// \fn is_permutation ( ForwardIterator1 first, ForwardIterator1 last, ForwardIterator2 first2, BinaryPredicate p ) +/// \fn is_permutation ( ForwardIterator1 first1, ForwardIterator1 last1, ForwardIterator2 first2, BinaryPredicate p ) /// \brief Tests to see if the sequence [first,last) is a permutation of the sequence starting at first2 /// /// \param first1 The start of the input sequence @@ -127,11 +127,11 @@ bool is_permutation ( ForwardIterator1 first1, ForwardIterator1 last1, return true; } -/// \fn is_permutation ( ForwardIterator1 first, ForwardIterator1 last, ForwardIterator2 first2 ) +/// \fn is_permutation ( ForwardIterator1 first1, ForwardIterator1 last1, ForwardIterator2 first2 ) /// \brief Tests to see if the sequence [first,last) is a permutation of the sequence starting at first2 /// /// \param first1 The start of the input sequence -/// \param last2 One past the end of the input sequence +/// \param last1 One past the end of the input sequence /// \param first2 The start of the second sequence /// \note This function is part of the C++2011 standard library. template< class ForwardIterator1, class ForwardIterator2 > diff --git a/include/boost/algorithm/searching/boyer_moore.hpp b/include/boost/algorithm/searching/boyer_moore.hpp index 80a5a4474..e3c00105c 100644 --- a/include/boost/algorithm/searching/boyer_moore.hpp +++ b/include/boost/algorithm/searching/boyer_moore.hpp @@ -10,6 +10,7 @@ #ifndef BOOST_ALGORITHM_BOYER_MOORE_SEARCH_HPP #define BOOST_ALGORITHM_BOYER_MOORE_SEARCH_HPP +#include // for std::reverse_copy #include // for std::iterator_traits #include diff --git a/include/boost/algorithm/string/classification.hpp b/include/boost/algorithm/string/classification.hpp index ca43602d4..83cdca529 100644 --- a/include/boost/algorithm/string/classification.hpp +++ b/include/boost/algorithm/string/classification.hpp @@ -85,6 +85,22 @@ namespace boost { return detail::is_classifiedF(std::ctype_base::alpha, Loc); } +#ifndef BOOST_NO_CXX11 + //! is_blank predicate + /*! + Construct the \c is_classified predicate for the \c ctype_base::blank category. + + \param Loc A locale used for classification + \return An instance of the \c is_classified predicate + \since c++11 + */ + inline detail::is_classifiedF + is_blank(const std::locale& Loc=std::locale()) + { + return detail::is_classifiedF(std::ctype_base::blank, Loc); + } +#endif + //! is_cntrl predicate /*! Construct the \c is_classified predicate for the \c ctype_base::cntrl category. @@ -294,6 +310,9 @@ namespace boost { // pull names to the boost namespace using algorithm::is_classified; using algorithm::is_space; +#ifndef BOOST_NO_CXX11 + using algorithm::is_blank; +#endif using algorithm::is_alnum; using algorithm::is_alpha; using algorithm::is_cntrl; diff --git a/include/boost/algorithm/string/formatter.hpp b/include/boost/algorithm/string/formatter.hpp index 0e08ae7b3..ce590c778 100644 --- a/include/boost/algorithm/string/formatter.hpp +++ b/include/boost/algorithm/string/formatter.hpp @@ -75,7 +75,7 @@ namespace boost { Constructs an \c empty_formatter. Empty formatter always returns an empty sequence. - \param Input container used to select a correct value_type for the + \param - container used to select a correct value_type for the resulting empty_container<>. \return An instance of the \c empty_formatter object. */ diff --git a/include/boost/algorithm/string/trim_all.hpp b/include/boost/algorithm/string/trim_all.hpp index a616f7f33..94f2522bc 100644 --- a/include/boost/algorithm/string/trim_all.hpp +++ b/include/boost/algorithm/string/trim_all.hpp @@ -108,7 +108,6 @@ namespace boost { \param Input An input sequence \param Loc A locale used for 'space' classification - \return A trimmed copy of the input */ template inline void trim_all(SequenceT& Input, const std::locale& Loc =std::locale()) @@ -191,7 +190,6 @@ namespace boost { \param Input An input sequence \param Fill A string used to fill the inner spaces \param Loc A locale used for 'space' classification - \return A trimmed copy of the input */ template inline void trim_fill(SequenceT& Input, const RangeT& Fill, const std::locale& Loc =std::locale()) diff --git a/minmax/example/Jamfile b/minmax/example/Jamfile index d8650e042..9aa7e6982 100644 --- a/minmax/example/Jamfile +++ b/minmax/example/Jamfile @@ -7,6 +7,11 @@ # http://www.boost.org/LICENSE_1_0.txt) # +project + : requirements + /boost/algorithm//boost_algorithm + /boost/timer//boost_timer ; + exe minmax_ex : minmax_ex.cpp ; exe minmax_timer : minmax_timer.cpp ; diff --git a/minmax/example/minmax_timer.cpp b/minmax/example/minmax_timer.cpp index 0ab51a8a4..41aecfcce 100644 --- a/minmax/example/minmax_timer.cpp +++ b/minmax/example/minmax_timer.cpp @@ -15,8 +15,10 @@ // What's the proper BOOST_ flag for vs #include -#include #include +#include +#include +#include template void tie(std::pair p, T1& min, T2& max) @@ -56,17 +58,19 @@ inline int opt_boost_minmax_count(int n) { int repeats = 10; #define TIMER( n, cmd , cmdname ) \ - t.restart(); \ - for (int i=0; i void test_minmax_element(CIterator first, CIterator last, int n, char* name) { typedef typename std::iterator_traits::value_type vtype; - boost::timer t; + boost::timer::cpu_timer t; std::cout << " ON " << name << " WITH OPERATOR<()\n"; TIMER( n, std::min_element(first, last), @@ -99,15 +103,11 @@ void test_minmax_element(CIterator first, CIterator last, int n, char* name) "boost::last_min_last_max_element" << name << " "); #define pred std::bind2nd( std::greater(), vtype(10) ) - TIMER( n, boost::min_element_if(first, last, pred), - "boost::min_element_if" << name << ""); - TIMER( n, boost::max_element_if(first, last, pred), - "boost::max_element_if" << name << ""); - TIMER( n, std::min_element(boost::make_filter_iterator(first, last, pred), - boost::make_filter_iterator(last, last, pred)), + TIMER( n, std::min_element(boost::make_filter_iterator(pred, first, last), + boost::make_filter_iterator(pred, last, last)), "std::min_element_with_filter_iterator" << name << ""); - TIMER( n, std::max_element(boost::make_filter_iterator(first, last, pred), - boost::make_filter_iterator(last, last, pred)), + TIMER( n, std::max_element(boost::make_filter_iterator(pred, first, last), + boost::make_filter_iterator(pred, last, last)), "std::max_element_if_with_filter_iterator" << name << ""); #undef pred @@ -199,10 +199,9 @@ void test(int n) test_range(first, last, n); } -int -main(char argc, char** argv) +int main(int argc, char** argv) { - int n = 100; + int n = 1000; if (argc > 1) n = atoi(argv[1]); if (argc > 2) repeats = atoi(argv[2]); diff --git a/minmax/test/Jamfile.v2 b/minmax/test/Jamfile.v2 index 384b35929..de74e2c64 100644 --- a/minmax/test/Jamfile.v2 +++ b/minmax/test/Jamfile.v2 @@ -9,17 +9,19 @@ import testing ; +project : requirements /boost/algorithm//boost_algorithm ; + alias unit_test_framework : # sources - /boost//unit_test_framework - ; + /boost/test//boost_unit_test_framework + ; { test-suite algorithm/minmax : [ run minmax_element_test.cpp unit_test_framework : : : : minmax_element ] [ run minmax_test.cpp unit_test_framework - : : : : minmax ] + : : : : minmax ] ; } diff --git a/string/doc/Jamfile.v2 b/string/doc/Jamfile.v2 index 9ddebb8b6..58fc21430 100644 --- a/string/doc/Jamfile.v2 +++ b/string/doc/Jamfile.v2 @@ -10,40 +10,40 @@ import toolset ; toolset.using doxygen ; -boostbook string_algo : string_algo.xml autodoc +boostbook string_algo : string_algo.xml autodoc : boost.root=../../../../.. pdf:boost.url.prefix=http://www.boost.org/doc/libs/release/doc/html ; doxygen autodoc - : - [ glob ../../../../boost/algorithm/string.hpp ] - [ glob ../../../../boost/algorithm/string_regex.hpp ] - - [ glob ../../../../boost/algorithm/string/classification.hpp ] - [ glob ../../../../boost/algorithm/string/iterator_range.hpp ] - [ glob ../../../../boost/algorithm/string/sequence_traits.hpp ] - [ glob ../../../../boost/algorithm/string/std_containers_traits.hpp ] - [ glob ../../../../boost/algorithm/string/concept.hpp ] - [ glob ../../../../boost/algorithm/string/compare.hpp ] - [ glob ../../../../boost/algorithm/string/constants.hpp ] - [ glob ../../../../boost/algorithm/string/case_conv.hpp ] - [ glob ../../../../boost/algorithm/string/find.hpp ] - [ glob ../../../../boost/algorithm/string/finder.hpp ] - [ glob ../../../../boost/algorithm/string/find_iterator.hpp ] - [ glob ../../../../boost/algorithm/string/trim.hpp ] - [ glob ../../../../boost/algorithm/string/predicate.hpp ] - [ glob ../../../../boost/algorithm/string/split.hpp ] - [ glob ../../../../boost/algorithm/string/iter_find.hpp ] - [ glob ../../../../boost/algorithm/string/erase.hpp ] - [ glob ../../../../boost/algorithm/string/join.hpp ] - [ glob ../../../../boost/algorithm/string/replace.hpp ] - [ glob ../../../../boost/algorithm/string/find_format.hpp ] - [ glob ../../../../boost/algorithm/string/formatter.hpp ] - [ glob ../../../../boost/algorithm/string/regex.hpp ] - [ glob ../../../../boost/algorithm/string/regex_find_format.hpp ] - [ glob ../../../../boost/algorithm/string/trim_all.hpp ] + : + [ glob ../../include/boost/algorithm/string.hpp ] + [ glob ../../include/boost/algorithm/string_regex.hpp ] + + [ glob ../../include/boost/algorithm/string/classification.hpp ] + [ glob ../../include/boost/algorithm/string/iterator_range.hpp ] + [ glob ../../include/boost/algorithm/string/sequence_traits.hpp ] + [ glob ../../include/boost/algorithm/string/std_containers_traits.hpp ] + [ glob ../../include/boost/algorithm/string/concept.hpp ] + [ glob ../../include/boost/algorithm/string/compare.hpp ] + [ glob ../../include/boost/algorithm/string/constants.hpp ] + [ glob ../../include/boost/algorithm/string/case_conv.hpp ] + [ glob ../../include/boost/algorithm/string/find.hpp ] + [ glob ../../include/boost/algorithm/string/finder.hpp ] + [ glob ../../include/boost/algorithm/string/find_iterator.hpp ] + [ glob ../../include/boost/algorithm/string/trim.hpp ] + [ glob ../../include/boost/algorithm/string/predicate.hpp ] + [ glob ../../include/boost/algorithm/string/split.hpp ] + [ glob ../../include/boost/algorithm/string/iter_find.hpp ] + [ glob ../../include/boost/algorithm/string/erase.hpp ] + [ glob ../../include/boost/algorithm/string/join.hpp ] + [ glob ../../include/boost/algorithm/string/replace.hpp ] + [ glob ../../include/boost/algorithm/string/find_format.hpp ] + [ glob ../../include/boost/algorithm/string/formatter.hpp ] + [ glob ../../include/boost/algorithm/string/regex.hpp ] + [ glob ../../include/boost/algorithm/string/regex_find_format.hpp ] + [ glob ../../include/boost/algorithm/string/trim_all.hpp ] : HIDE_UNDOC_MEMBERS=YES EXTRACT_PRIVATE=NO @@ -53,7 +53,7 @@ doxygen autodoc SEARCH_INCLUDES=YES PREDEFINED="BOOST_STRING_TYPENAME=typename \"BOOST_STATIC_CONSTANT(type,var)=static const type var;\"" ; - + diff --git a/string/doc/quickref.xml b/string/doc/quickref.xml index fe267e718..39a224b70 100644 --- a/string/doc/quickref.xml +++ b/string/doc/quickref.xml @@ -667,6 +667,13 @@ is_space() + + is_blank + Recognize blanks + + is_blank() + + is_alnum Recognize alphanumeric characters diff --git a/string/example/Jamfile b/string/example/Jamfile index 74c923f8b..4cbe09d3d 100644 --- a/string/example/Jamfile +++ b/string/example/Jamfile @@ -7,6 +7,7 @@ # # See http://www.boost.org for updates, documentation, and revision history. +project : requirements /boost/algorithm//boost_algorithm ; exe conv_example : conv_example.cpp ; exe predicate_example : predicate_example.cpp ; diff --git a/string/test/Jamfile.v2 b/string/test/Jamfile.v2 index 7f60df703..8c9508504 100644 --- a/string/test/Jamfile.v2 +++ b/string/test/Jamfile.v2 @@ -9,31 +9,33 @@ import testing ; +project : requirements /boost/algorithm//boost_algorithm ; + alias unit_test_framework : # sources - /boost//unit_test_framework - ; + /boost/test//boost_unit_test_framework + ; test-suite algorithm/string - : [ run + : [ run trim_test.cpp unit_test_framework : : : : trim ] - [ run + [ run conv_test.cpp unit_test_framework : : : : conv ] - [ run + [ run predicate_test.cpp unit_test_framework : : : : predicate ] - [ run + [ run find_test.cpp unit_test_framework : : : @@ -51,23 +53,23 @@ test-suite algorithm/string : : join ] - [ run + [ run replace_test.cpp unit_test_framework : : : : replace ] - [ run + [ run regex_test.cpp unit_test_framework ../../../regex/build//boost_regex : : - : + : : regex ] - [ run + [ run find_format_test.cpp unit_test_framework : : - : + : : find_format ] ; diff --git a/string/test/predicate_test.cpp b/string/test/predicate_test.cpp index ba1564e53..2e1ebd7a6 100644 --- a/string/test/predicate_test.cpp +++ b/string/test/predicate_test.cpp @@ -138,7 +138,12 @@ void classification_test() TEST_CLASS( is_any_of( string("abc") ), "aaabbcc", "aaxb" ); TEST_CLASS( is_any_of( "abc" ), "aaabbcc", "aaxb" ); TEST_CLASS( is_from_range( 'a', 'c' ), "aaabbcc", "aaxb" ); - + +#ifndef BOOST_NO_CXX11 + TEST_CLASS( is_blank(), " \t", "\t \n\r" ); + TEST_CLASS( !is_blank(), "abc\n\v\f\r", "a x\t" ); +#endif + TEST_CLASS( !is_classified(std::ctype_base::space), "...", "..\n\r\t " ); TEST_CLASS( ( !is_any_of("abc") && is_from_range('a','e') ) || is_space(), "d e", "abcde" ); diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index aef6bdb38..0c0f93360 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -9,9 +9,11 @@ import testing ; +project : requirements /boost/algorithm//boost_algorithm ; + alias unit_test_framework : # sources - /boost//unit_test_framework + /boost/test//boost_unit_test_framework ; @@ -85,7 +87,7 @@ alias unit_test_framework # Is_partitioned_until tests [ run is_partitioned_until_test.cpp unit_test_framework : : : : is_partitioned_until_test ] - + # Apply_permutation tests [ run apply_permutation_test.cpp unit_test_framework : : : : apply_permutation_test ] # Find tests