• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 keywords import *
6>>> f = Foo()
7>>> f.a(), f.b(), f.n()
8(0, 0.0, '')
9>>> f = Foo(1)
10>>> f.a(), f.b(), f.n()
11(1, 0.0, '')
12>>> f = Foo(1,1.0)
13>>> f.a(), f.b(), f.n()
14(1, 1.0, '')
15>>> f = Foo(1,1.0,"1")
16>>> f.a(), f.b(), f.n()
17(1, 1.0, '1')
18>>> f = Foo(a=1)
19>>> f.a(), f.b(), f.n()
20(1, 0.0, '')
21>>> f = Foo(b=1)
22>>> f.a(), f.b(), f.n()
23(0, 1.0, '')
24>>> f = Foo(n="1")
25>>> f.a(), f.b(), f.n()
26(0, 0.0, '1')
27>>> f = Foo(1,n="1")
28>>> f.a(), f.b(), f.n()
29(1, 0.0, '1')
30>>> f.set()
31>>> f.a(), f.b(), f.n()
32(0, 0.0, '')
33>>> f.set(1)
34>>> f.a(), f.b(), f.n()
35(1, 0.0, '')
36>>> f.set(1,1.0)
37>>> f.a(), f.b(), f.n()
38(1, 1.0, '')
39>>> f.set(1,1.0,"1")
40>>> f.a(), f.b(), f.n()
41(1, 1.0, '1')
42>>> f.set(a=1)
43>>> f.a(), f.b(), f.n()
44(1, 0.0, '')
45>>> f.set(b=1)
46>>> f.a(), f.b(), f.n()
47(0, 1.0, '')
48>>> f.set(n="1")
49>>> f.a(), f.b(), f.n()
50(0, 0.0, '1')
51>>> f.set(1,n="1")
52>>> f.a(), f.b(), f.n()
53(1, 0.0, '1')
54>>> f.set2(b=2.0,n="2",a=2)
55>>> f.a(), f.b(), f.n()
56(2, 2.0, '2')
57
58# lets see how badly we've broken the 'regular' functions
59>>> f = Bar()
60>>> f.a(), f.b(), f.n()
61(0, 0.0, '')
62>>> f = Bar(1)
63>>> f.a(), f.b(), f.n()
64(1, 0.0, '')
65>>> f = Bar(1,1.0)
66>>> f.a(), f.b(), f.n()
67(1, 1.0, '')
68>>> f = Bar(1,1.0,"1")
69>>> f.a(), f.b(), f.n()
70(1, 1.0, '1')
71>>> f.set()
72>>> f.a(), f.b(), f.n()
73(0, 0.0, '')
74>>> f.set(1)
75>>> f.a(), f.b(), f.n()
76(1, 0.0, '')
77>>> f.set(1,1.0)
78>>> f.a(), f.b(), f.n()
79(1, 1.0, '')
80>>> f.set(1,1.0,"1")
81>>> f.a(), f.b(), f.n()
82(1, 1.0, '1')
83>>> f.set2.__doc__.splitlines()[1]
84'set2( (Bar)arg1 [, (int)arg2 [, (float)arg3 [, (str)arg4]]]) -> None :'
85>>> f.set2.__doc__.splitlines()[2]
86"    set2's docstring"
87'''
88
89
90
91
92def run(args = None):
93    import sys
94    import doctest
95
96    if args is not None:
97        sys.argv = args
98    return doctest.testmod(sys.modules.get(__name__))
99
100if __name__ == '__main__':
101    print("running...")
102    import sys
103    status = run()[0]
104    if (status == 0): print("Done.")
105    sys.exit(status)
106
107