mirror of
https://github.com/boostorg/python.git
synced 2026-01-21 05:02:17 +00:00
57 lines
1.5 KiB
Python
57 lines
1.5 KiB
Python
#!/usr/bin/python
|
|
# -*- mode:python -*-
|
|
#
|
|
# Python module test_vector_ref.py
|
|
#
|
|
# Test the vector container with return_internal_reference
|
|
# policies. This is a dangerous container - see the container suite
|
|
# documentation on using policies for details.
|
|
#
|
|
# 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/ 1 rmg File creation
|
|
#
|
|
# $Id$
|
|
#
|
|
|
|
'''>>> from testlinear import *
|
|
>>> setTrace(False)
|
|
>>> v = Vector_ref()
|
|
>>> v.append (3)
|
|
>>> ref = v[0]
|
|
>>> print ref, v[0]
|
|
3 3
|
|
>>> v[0].increment() # Mutate object in container
|
|
>>> print ref, v[0] # Check reference refers to same object
|
|
4 4
|
|
>>> for x in v:
|
|
... x.increment() # Check iterator provides by-ref access
|
|
...
|
|
>>> print ref, v[0] # Check mutation happened in container element
|
|
5 5
|
|
>>> # DO NOT try insert and delete, since the element reference
|
|
>>> # would be invalidated by those operations.
|
|
>>> del ref # Avoid dangling reference during subsequent tests
|
|
'''
|
|
|
|
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__':
|
|
from test_vector_common import common_doctest_string
|
|
__doc__ += common_doctest_string
|
|
print 'running...'
|
|
import sys
|
|
sys.exit(run()[0])
|