blob: fe23e1131dae49b09b318737484be65ba87e5450 [file] [log] [blame]
Wenzel Jakob57082212015-09-04 23:42:12 +02001#!/usr/bin/env python
2from __future__ import print_function
Wenzel Jakob38bd7112015-07-05 20:05:44 +02003import sys
4sys.path.append('.')
5
Wenzel Jakobb2c2c792016-01-17 22:36:40 +01006from example import MyObject1
7from example import MyObject2
8from example import MyObject3
9
Wenzel Jakob38bd7112015-07-05 20:05:44 +020010from example import make_object_1
11from example import make_object_2
Wenzel Jakobb2c2c792016-01-17 22:36:40 +010012from example import make_myobject1_1
13from example import make_myobject1_2
Wenzel Jakob6e213c92015-11-24 23:05:58 +010014from example import make_myobject2_1
15from example import make_myobject2_2
Wenzel Jakobb2c2c792016-01-17 22:36:40 +010016from example import make_myobject3_1
17from example import make_myobject3_2
18
Wenzel Jakob38bd7112015-07-05 20:05:44 +020019from example import print_object_1
20from example import print_object_2
21from example import print_object_3
22from example import print_object_4
Wenzel Jakobb2c2c792016-01-17 22:36:40 +010023
24from example import print_myobject1_1
25from example import print_myobject1_2
26from example import print_myobject1_3
27from example import print_myobject1_4
28
Wenzel Jakob6e213c92015-11-24 23:05:58 +010029from example import print_myobject2_1
30from example import print_myobject2_2
31from example import print_myobject2_3
32from example import print_myobject2_4
Wenzel Jakob38bd7112015-07-05 20:05:44 +020033
Wenzel Jakobb2c2c792016-01-17 22:36:40 +010034from example import print_myobject3_1
35from example import print_myobject3_2
36from example import print_myobject3_3
37from example import print_myobject3_4
38
39for o in [make_object_1(), make_object_2(), MyObject1(3)]:
Wenzel Jakob38bd7112015-07-05 20:05:44 +020040 print("Reference count = %i" % o.getRefCount())
41 print_object_1(o)
42 print_object_2(o)
43 print_object_3(o)
44 print_object_4(o)
45
Wenzel Jakobb2c2c792016-01-17 22:36:40 +010046for o in [make_myobject1_1(), make_myobject1_2(), MyObject1(6), 7]:
Wenzel Jakob38bd7112015-07-05 20:05:44 +020047 print(o)
48 if not isinstance(o, int):
49 print_object_1(o)
50 print_object_2(o)
51 print_object_3(o)
52 print_object_4(o)
Wenzel Jakobb2c2c792016-01-17 22:36:40 +010053 print_myobject1_1(o)
54 print_myobject1_2(o)
55 print_myobject1_3(o)
56 print_myobject1_4(o)
Wenzel Jakob6e213c92015-11-24 23:05:58 +010057
Wenzel Jakobb2c2c792016-01-17 22:36:40 +010058for o in [MyObject2(8), make_myobject2_1(), make_myobject2_2()]:
Wenzel Jakob6e213c92015-11-24 23:05:58 +010059 print(o)
60 print_myobject2_1(o)
61 print_myobject2_2(o)
62 print_myobject2_3(o)
63 print_myobject2_4(o)
Wenzel Jakobb2c2c792016-01-17 22:36:40 +010064
65for o in [MyObject3(9), make_myobject3_1(), make_myobject3_2()]:
66 print(o)
67 print_myobject3_1(o)
68 print_myobject3_2(o)
69 print_myobject3_3(o)
70 print_myobject3_4(o)
Jason Rhinelander3f589372016-08-07 13:05:26 -040071
72from example import ConstructorStats, cstats_ref, Object
73
74cstats = [ConstructorStats.get(Object), ConstructorStats.get(MyObject1),
75 ConstructorStats.get(MyObject2), ConstructorStats.get(MyObject3),
76 cstats_ref()]
77print("Instances not destroyed:", [x.alive() for x in cstats])
78o = None
79print("Instances not destroyed:", [x.alive() for x in cstats])
80print("Object value constructions:", [x.values() for x in cstats])
81print("Default constructions:", [x.default_constructions for x in cstats])
82print("Copy constructions:", [x.copy_constructions for x in cstats])
83#print("Move constructions:", [x.move_constructions >= 0 for x in cstats]) # Doesn't invoke any
84print("Copy assignments:", [x.copy_assignments for x in cstats])
85print("Move assignments:", [x.move_assignments for x in cstats])