103 lines
1.1 KiB
Python
103 lines
1.1 KiB
Python
# Copyright David Abrahams 2004. 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)
|
|
'''
|
|
>>> from operators_ext import *
|
|
|
|
Check __nonzero__ support
|
|
|
|
>>> assert X(2)
|
|
>>> assert not X(0)
|
|
|
|
----
|
|
|
|
>>> x = X(42)
|
|
>>> x.value()
|
|
42
|
|
>>> y = x - X(5)
|
|
>>> y.value()
|
|
37
|
|
>>> y = x - 4
|
|
>>> y.value()
|
|
38
|
|
>>> y = 3 - x
|
|
>>> y.value()
|
|
-39
|
|
>>> (-y).value()
|
|
39
|
|
|
|
>>> (x + y).value()
|
|
3
|
|
|
|
>>> abs(y).value()
|
|
39
|
|
|
|
>>> x < 10
|
|
0
|
|
>>> x < 43
|
|
1
|
|
|
|
>>> 10 < x
|
|
1
|
|
>>> 43 < x
|
|
0
|
|
|
|
>>> x < y
|
|
0
|
|
>>> y < x
|
|
1
|
|
|
|
------
|
|
>>> x > 10
|
|
1
|
|
>>> x > 43
|
|
0
|
|
|
|
>>> 10 > x
|
|
0
|
|
>>> 43 > x
|
|
1
|
|
|
|
>>> x > y
|
|
1
|
|
>>> y > x
|
|
0
|
|
|
|
>>> y = x - 5
|
|
>>> x -= y
|
|
>>> x.value()
|
|
5
|
|
>>> str(x)
|
|
'5'
|
|
|
|
>>> z = Z(10)
|
|
>>> int(z)
|
|
10
|
|
>>> float(z)
|
|
10.0
|
|
>>> complex(z)
|
|
(10+0j)
|
|
|
|
>>> pow(2,x)
|
|
32
|
|
>>> pow(x,2).value()
|
|
25
|
|
>>> pow(X(2),x).value()
|
|
32
|
|
'''
|
|
|
|
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)
|