diff options
Diffstat (limited to 'test_enumerator.py')
-rw-r--r-- | test_enumerator.py | 89 |
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 |