Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/test_enumerator.py
diff options
context:
space:
mode:
Diffstat (limited to 'test_enumerator.py')
-rw-r--r--test_enumerator.py89
1 files changed, 54 insertions, 35 deletions
diff --git a/test_enumerator.py b/test_enumerator.py
index a74c1de..ff1f39e 100644
--- a/test_enumerator.py
+++ b/test_enumerator.py
@@ -1,5 +1,5 @@
# coding: UTF-8
-# Copyright 2009 Thomas Jourdan
+# Copyright 2009, 2010 Thomas Jourdan
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -14,71 +14,90 @@
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-import ep_merger_combine
+import traceback
+import sys
import cairo
import ka_debug
import ka_factory
import model_random
import ka_extensionpoint
+import ep_merger_combine
import model_protozoon
import model_constraintpool
class VariantEnumerator(object):
+
+ def __init__(self):
+ self.exception_counter = 0
def explain_permutation(self):
model_random.set_flurry(9)
cpool = model_constraintpool.ConstraintPool.get_pool()
+ for layer_key in ka_factory.get_factory('layer').keys():
+ for modifier_key in ka_factory.get_factory('modifier').keys():
+ cpool.clear_all()
+ cpool.set('*', 'colorconstraint', ['colorconstraint_none', ])
+ cpool.set('*', 'layernumberofconstraint', [1, 3])
+ cpool.set('*', 'layertypeconstraint',
+ ['letterpress', 'markovchain'])
+ cpool.set('*', 'layertypeconstraint', layer_key)
+ cpool.set('*', 'modifiertypeconstraint', modifier_key)
+ cpool.set('*', 'operatorconstraint', [cairo.OPERATOR_OVER])
+ self._explain_protozon(layer_key, modifier_key)
+
for operator_key in ep_merger_combine.CombineMerger.OPERATORS:
for merger_key in ka_factory.get_factory('merger').keys():
cpool.clear_all()
- cpool.set('/Protozoon', 'layernumberofconstraint', [4, 4])
- cpool.set('/Protozoon', 'layertypeconstraint',
- ['image', 'markovchain'])
- cpool.set('/Protozoon/ImageLayer', 'operatorconstraint',
- [operator_key])
- cpool.set('/Protozoon/MarkovChainLayer', 'operatorconstraint',
- [operator_key])
- cpool.set('/Protozoon', 'mergertypeconstraint', merger_key)
+ cpool.set('*', 'colorconstraint', ['colorconstraint_none', ])
+ cpool.set('*', 'layernumberofconstraint', [3, 3])
+ cpool.set('*', 'layertypeconstraint',
+ ['letterpress', 'markovchain'])
+ cpool.set('*', 'operatorconstraint', [operator_key])
+ cpool.set('*', 'mergertypeconstraint', merger_key)
self._explain_protozon(
ep_merger_combine.CombineMerger.OPERATOR_NAMES[operator_key], merger_key)
for layer_key in ka_factory.get_factory('layer').keys():
for merger_key in ka_factory.get_factory('merger').keys():
cpool.clear_all()
- cpool.set('/Protozoon', 'layernumberofconstraint', [3, 3])
- cpool.set('/Protozoon', 'layertypeconstraint', layer_key)
- cpool.set('/Protozoon', 'mergertypeconstraint', merger_key)
- cpool.set('/Protozoon/ImageLayer', 'operatorconstraint',
- [cairo.OPERATOR_OVER])
- cpool.set('/Protozoon/MarkovChainLayer', 'operatorconstraint',
- [cairo.OPERATOR_OVER])
- cpool.set('/Protozoon/ReferencePattern', 'operatorconstraint',
- [cairo.OPERATOR_OVER])
- cpool.set('/Protozoon/LetterPress', 'operatorconstraint',
- [cairo.OPERATOR_OVER])
+ cpool.set('*', 'colorconstraint', ['colorconstraint_none', ])
+ cpool.set('*', 'layernumberofconstraint', [3, 2])
+ cpool.set('*', 'layertypeconstraint', layer_key)
+ cpool.set('*', 'mergertypeconstraint', merger_key)
+ cpool.set('*', 'operatorconstraint', [cairo.OPERATOR_OVER])
self._explain_protozon(layer_key, merger_key)
def _explain_protozon(self, key1, key2):
- a_protozoon = model_protozoon.Protozoon()
- a_protozoon.randomize()
-
- base_name = 'index'
- base_folder = '/dev/shm/'
- explain_id = '_' + key1 + '_' + key2
- ep_list = ka_extensionpoint.list_extensions('formater')
- formater = ka_extensionpoint.create(ep_list[0],
- base_name,
- explain_id,
- base_folder)
- a_protozoon.explain(formater)
- file_path = formater.get_absolutename('html')
- formater.write_html_file(file_path)
+ try:
+ a_protozoon = model_protozoon.Protozoon()
+ a_protozoon.randomize()
+
+ base_name = 'index'
+ base_folder = '/dev/shm/'
+ explain_id = '_' + key1 + '_' + key2
+ ep_list = ka_extensionpoint.list_extensions('formater')
+ formater = ka_extensionpoint.create(ep_list[0],
+ base_name,
+ explain_id,
+ base_folder)
+ class DummyTask:
+ def __init__(self):
+ self.quit = False
+ a_protozoon.explain(DummyTask(), formater)
+ file_path = formater.get_absolutename('html')
+ formater.write_html_file(file_path)
+ except:
+ self.exception_counter += 1
+ ka_debug.err('failed rendering [%s] [%s] [%s]' % \
+ (explain_id, sys.exc_info()[0], sys.exc_info()[1]))
+ traceback.print_exc(file=sys.__stderr__)
def explain():
vae = VariantEnumerator()
vae.explain_permutation()
+ return vae.exception_counter
if __name__ == '__main__':
explain() \ No newline at end of file