summaryrefslogtreecommitdiffstats
path: root/src/boost/libs/python/test/operators.py
blob: 5b369803c6fa12597499bdb49351152193c791a2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
# 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)