# Boost.Assign library
#
#  Copyright Thorsten Ottosen 2003-2005. Use, modification and
#  distribution is 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)
#
# For more information, see http://www.boost.org/libs/assign/
#

rule assign-test ( name )
{
    return [
        run $(name).cpp /boost/test//boost_unit_test_framework/<link>static ]
        ;
}

test-suite assign :
    [ assign-test basic ]
    [ assign-test std ]
    [ assign-test list_of ]
    [ assign-test ptr_list_of ]
    [ assign-test static_list_of ]
    [ assign-test tuple_list_of ]
    [ assign-test list_inserter ]
    [ assign-test ptr_list_inserter ]
    [ assign-test ptr_map_inserter ]
    [ assign-test list_of_workaround ]
    [ assign-test email_example ]
    [ assign-test my_vector_example ]
    [ assign-test multi_index_container ]      
    ;


