9 if (not os
.path
.exists(dir)):
15 return "lib_" + str(i
)
17 def CreateHeader(name
):
18 filename
= name
+ ".h"
19 handle
= file(filename
, "w" )
22 handle
.write ('#ifndef ' + guard
+ '\n');
23 handle
.write ('#define ' + guard
+ '\n\n');
25 handle
.write ('class ' + name
+ ' {\n');
26 handle
.write ('public:\n');
27 handle
.write (' ' + name
+ '();\n');
28 handle
.write (' ~' + name
+ '();\n');
29 handle
.write ('};\n\n');
31 handle
.write ('#endif\n');
34 def CreateCPP(name
, lib_number
, classes_per_lib
, internal_includes
, external_includes
):
35 filename
= name
+ ".cpp"
36 handle
= file(filename
, "w" )
39 handle
.write ('#include "' + header
+ '"\n');
41 includes
= random
.sample(xrange(classes_per_lib
), internal_includes
)
43 handle
.write ('#include "class_' + str(i
) + '.h"\n')
46 includes
= random
.sample(xrange(classes_per_lib
), external_includes
)
47 lib_list
= xrange(lib_number
)
49 libname
= 'lib_' + str(random
.choice(lib_list
))
50 handle
.write ('#include <' + libname
+ '/' + 'class_' + str(i
) + '.h>\n')
53 handle
.write (name
+ '::' + name
+ '() {}\n');
54 handle
.write (name
+ '::~' + name
+ '() {}\n');
56 def CreateLibrary(lib_number
, classes
, internal_includes
, external_includes
):
57 SetDir(lib_name(lib_number
))
58 for i
in xrange(classes
):
59 classname
= "class_" + str(i
)
60 CreateHeader(classname
)
61 CreateCPP(classname
, lib_number
, classes
, internal_includes
, external_includes
)
65 def CreateSetOfLibraries(libs
, classes
, internal_includes
, external_includes
, myfunction
):
67 for i
in xrange(libs
):
68 CreateLibrary(i
, classes
, internal_includes
, external_includes
)
69 myfunction(i
, classes
)