diff --git a/test/test_indexing_const.cpp b/test/test_indexing_const.cpp new file mode 100755 index 00000000..e069a131 --- /dev/null +++ b/test/test_indexing_const.cpp @@ -0,0 +1,63 @@ +// -*- mode:c++ -*- +// +// Module test_indexing_const_ext.cpp +// +// Copyright (c) 2003 Raoul M. Gough +// +// 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) +// +// History +// ======= +// 2003/10/16 rmg File creation +// +// $Id$ +// + +#include "int_wrapper.hpp" +#include +#include // for begin(), end() +#include +#include +#include +#include +#include + +// More messiness from not having a separate int_wrapper.cpp file +bool int_wrapper::our_trace_flag = true; +unsigned int_wrapper::our_object_counter = 0; + +std::vector get_vector () +{ + static int_wrapper array[] = { + int_wrapper(8), int_wrapper(6), int_wrapper(4), int_wrapper(2) + , int_wrapper(1), int_wrapper(3), int_wrapper(5) + , int_wrapper(7), int_wrapper(0) }; + + return std::vector + (boost::python::indexing::begin(array) + , boost::python::indexing::end(array)); +} + +BOOST_PYTHON_MODULE(test_indexing_const_ext) +{ + boost::python::implicitly_convertible (); + + boost::python::def ("setTrace", &int_wrapper::setTrace); + + boost::python::class_ + ("int_wrapper", boost::python::init()) + .def ("increment", &int_wrapper::increment) + .def ("__repr__", &int_wrapper::repr) + .def ("__cmp__", compare) + ; + + typedef std::vector Container1; + + boost::python::class_("Vector_const") + .def (boost::python::indexing::container_suite()) + ; + + boost::python::def ("get_vector", get_vector); +} diff --git a/test/test_indexing_const.py b/test/test_indexing_const.py new file mode 100644 index 00000000..ef7f14e8 --- /dev/null +++ b/test/test_indexing_const.py @@ -0,0 +1,45 @@ +#!/usr/bin/python +# -*- mode:python -*- +# +# Python module test_const.py +# +# Copyright (c) 2003 Raoul M. Gough +# +# 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) +# +# History +# ======= +# 2003/10/16 rmg File creation +# +# $Id$ +# + +'''>>> from test_indexing_const_ext import * +>>> setTrace(False) +>>> v = get_vector() +>>> print [x for x in v] +[8, 6, 4, 2, 1, 3, 5, 7, 0] +>>> print v.index (3) +5 +>>> print v.count (0) +1 +>>> print v.count (9) +0 +''' + +def run(args = None): + import sys + import doctest + + if args is not None: + sys.argv = args + return doctest.testmod(sys.modules.get(__name__)) + +if __name__ == '__main__': + print 'running...' + import sys + status = run()[0] + if (status == 0): print "Done." + sys.exit(status)