1# Copyright David Abrahams 2004. Distributed under the Boost 2# Software License, Version 1.0. (See accompanying 3# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 4''' 5>>> from operators_ext import * 6 7 Check __nonzero__ support 8 9>>> assert X(2) 10>>> assert not X(0) 11 12 ---- 13 14>>> x = X(42) 15>>> x.value() 1642 17>>> y = x - X(5) 18>>> y.value() 1937 20>>> y = x - 4 21>>> y.value() 2238 23>>> y = 3 - x 24>>> y.value() 25-39 26>>> (-y).value() 2739 28 29>>> (x + y).value() 303 31 32>>> abs(y).value() 3339 34 35>>> x < 10 360 37>>> x < 43 381 39 40>>> 10 < x 411 42>>> 43 < x 430 44 45>>> x < y 460 47>>> y < x 481 49 50 ------ 51>>> x > 10 521 53>>> x > 43 540 55 56>>> 10 > x 570 58>>> 43 > x 591 60 61>>> x > y 621 63>>> y > x 640 65 66>>> y = x - 5 67>>> x -= y 68>>> x.value() 695 70>>> str(x) 71'5' 72 73>>> z = Z(10) 74>>> int(z) 7510 76>>> float(z) 7710.0 78>>> complex(z) 79(10+0j) 80 81>>> pow(2,x) 8232 83>>> pow(x,2).value() 8425 85>>> pow(X(2),x).value() 8632 87''' 88 89def run(args = None): 90 import sys 91 import doctest 92 93 if args is not None: 94 sys.argv = args 95 return doctest.testmod(sys.modules.get(__name__)) 96 97if __name__ == '__main__': 98 print("running...") 99 import sys 100 status = run()[0] 101 if (status == 0): print("Done.") 102 sys.exit(status) 103