Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/test_suite.py
diff options
context:
space:
mode:
authorThomas Jourdan <b.vehikel@googlemail.com>2009-12-06 12:40:41 (GMT)
committer Thomas Jourdan <b.vehikel@googlemail.com>2009-12-06 12:40:41 (GMT)
commit7ce7155dead3893e572006588fc342fb3af7ec60 (patch)
tree2bb234d6d159aa797767bf1ceccea53117dc773a /test_suite.py
parentbcde11455168a07de8a3b17f2a4d77ce8931e75d (diff)
Layers are now arranged as a tree data structure.
Diffstat (limited to 'test_suite.py')
-rw-r--r--test_suite.py426
1 files changed, 311 insertions, 115 deletions
diff --git a/test_suite.py b/test_suite.py
index e15ddbc..5314f89 100644
--- a/test_suite.py
+++ b/test_suite.py
@@ -14,15 +14,20 @@
# 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 test_enumerator
import os
import sys
import unittest
import cairo
+import gtk
+import time
import ka_debug
import ka_factory
-import ka_random
+import ka_task
+import model_random
import ka_extensionpoint
+import ka_incoming
import model_protozoon
import model_constraintpool
import model_population
@@ -33,6 +38,7 @@ import exon_direction
import exon_position
EPSILON = 0.00001
+_test_task_completed_count = 0
class TestKandidModel(unittest.TestCase):
@@ -44,32 +50,118 @@ class TestKandidModel(unittest.TestCase):
def _neutral(self):
cpool = model_constraintpool.ConstraintPool.get_pool()
- permitted = [x for x in ka_extensionpoint.list_extensions(exon_position.POSITION_CONSTRAINT) if x not in ['positionconstraint_centered']]
- cpool.set('/Position', exon_position.POSITION_CONSTRAINT, permitted)
- cpool.set('/LetterPress/Position', exon_position.POSITION_CONSTRAINT, permitted)
- cpool.set('/Protozoon/LetterPress/Position', exon_position.POSITION_CONSTRAINT, permitted)
+ permitted = [x for x in ka_extensionpoint.list_extensions(exon_position.POSITION_CONSTRAINT)
+ if x not in ['positionconstraint_centered']]
+ cpool.set('/Position',
+ exon_position.POSITION_CONSTRAINT, permitted)
+ cpool.set('/LetterPress/Position',
+ exon_position.POSITION_CONSTRAINT, permitted)
+ cpool.set('/Protozoon/LetterPress/Position',
+ exon_position.POSITION_CONSTRAINT, permitted)
permitted = ['colorconstraint_none']
- cpool.set('/Color', exon_color.COLOR_CONSTRAINT, permitted)
- cpool.set('/Protozoon/Color/', exon_color.COLOR_CONSTRAINT, permitted)
- cpool.set('/MarkovChainLayer/Color', exon_color.COLOR_CONSTRAINT, permitted)
- cpool.set('/LetterPress/Color', exon_color.COLOR_CONSTRAINT, permitted)
- cpool.set('/Protozoon/LetterPress/Color', exon_color.COLOR_CONSTRAINT, permitted)
- cpool.set('/Protozoon/MarkovChainLayer/Color', exon_color.COLOR_CONSTRAINT, permitted)
-
- #/Protozoon/mergertypeconstraint ['flip', 'mask', 'rectangulartile', 'straight']
- permitted = [x for x in ka_factory.get_factory('merger').keys() if x not in ['straight', ]]
- cpool.set('/Protozoon', model_protozoon.MERGER_CONSTRAINT, permitted)
+ cpool.set('/Color',
+ exon_color.COLOR_CONSTRAINT, permitted)
+ cpool.set('/Protozoon/Color/',
+ exon_color.COLOR_CONSTRAINT, permitted)
+ cpool.set('/MarkovChainLayer/Color',
+ exon_color.COLOR_CONSTRAINT, permitted)
+ cpool.set('/LetterPress/Color',
+ exon_color.COLOR_CONSTRAINT, permitted)
+ cpool.set('/Protozoon/LetterPress/Color',
+ exon_color.COLOR_CONSTRAINT, permitted)
+ cpool.set('/Protozoon/MarkovChainLayer/Color',
+ exon_color.COLOR_CONSTRAINT, permitted)
+
+# permitted = [x for x in ka_factory.get_factory('merger').keys()
+# if x not in ['straight', ]]
+# cpool.set('/Protozoon', model_protozoon.MERGER_CONSTRAINT, permitted)
+ def test_task(self):
+ global _test_task_completed_count
+ _test_task_completed_count = 0
+ gtk.gdk.threads_init()
+ ka_task.GeneratorTask(self.task_1, self.on_completed).start()
+ time.sleep(5)
+ self.assertTrue(ka_task.GeneratorTask.is_completed())
+ ka_task.GeneratorTask(self.task_2, self.on_completed).start()
+ time.sleep(5)
+ self.assertTrue(ka_task.GeneratorTask.is_completed())
+ time.sleep(5)
+ self.assertEqual(1, _test_task_completed_count)
+
+ def task_1(self, *args, **kwargs):
+ ka_task.GeneratorTask.leave()
+
+ def task_2(self, *args, **kwargs):
+ raise Exception
+
+ def on_completed(self, *args):
+ global _test_task_completed_count
+ _test_task_completed_count +=1
+
+ def test_merger(self):
+ self._run_ep_breed_test('merger')
+
+ def test_modifier(self):
+ self._run_ep_breed_test('modifier')
+
+ def test_sampler(self):
+ self._run_ep_breed_test('sampler')
+
+ def test_stamp(self):
+ self._run_ep_breed_test('stamp')
+
+ def _run_ep_breed_test(self, key):
+ model_random.set_flurry(9)
+ for flavor in ka_extensionpoint.list_extensions(key):
+ mm1 = ka_extensionpoint.create(flavor, '/')
+ mm1.randomize()
+ mm1.mutate()
+ mm1.swap_places()
+ mm2 = ka_extensionpoint.create(flavor, '/')
+ mm2.randomize()
+ mm2.mutate()
+ mm2.swap_places()
+ mm3 = mm1.crossingover(mm2)
+ mm3.mutate()
+ mm3.swap_places()
+ self.assertFalse(mm3 == mm1 and mm3 == mm2)
+
+ def test_protozon_formater(self):
+ model_random.set_flurry(9)
+ cpool = model_constraintpool.ConstraintPool.get_pool()
+ cpool.clear_all()
+
+ ep_list = ka_extensionpoint.list_extensions('formater')
+ self.assertTrue(len(ep_list) > 0)
+ for ep_key in ep_list:
+ a_protozoon = model_protozoon.Protozoon()
+ a_protozoon.randomize()
+
+ base_name = 'index'
+ base_folder = '/dev/shm/'
+ formater = ka_extensionpoint.create(ep_key, base_name,
+ a_protozoon.get_unique_id(),
+ base_folder)
+ a_protozoon.explain(formater)
+
+ file_path = formater.get_pathname('html')
+ formater.write_html_file(file_path)
+ exit_code = os.spawnvp(os.P_WAIT,
+ 'tidy', ['tidy', '-i', file_path])
+ self.assertEqual(0, exit_code)
+
def test_locus(self):
- self.assertEqual('/Locus', model_locus.Locus('/').path)
- self.assertEqual('/A/Locus', model_locus.Locus('/A').path)
+ self.assertEqual('/Locus', model_locus.Locus('/').path)
+ self.assertEqual('/A/Locus', model_locus.Locus('/A').path)
self.assertEqual('/A', model_locus.Locus('/A').get_trunk())
self.assertEqual('/A/B', model_locus.Locus('/A/B').get_trunk())
def test_html_formater(self):
base_name = 'test_html_formater'
base_folder = '/dev/shm/'
- formater = ka_extensionpoint.create('formater_html', base_name, 'test', base_folder)
+ formater = ka_extensionpoint.create('formater_html', base_name,
+ 'test', base_folder)
formater.header('Test title')
formater.begin_list('l1')
a_text = '&<>'
@@ -78,10 +170,10 @@ class TestKandidModel(unittest.TestCase):
formater.begin_list('l2')
cpool = model_constraintpool.ConstraintPool.get_pool()
key = 'color'
- for cc in ka_extensionpoint.list_extensions(key+'constraint'):
- cpool.set('/'+key.capitalize(), key+'constraint', [cc])
+ for constraint in ka_extensionpoint.list_extensions(key + 'constraint'):
+ cpool.set('/' + key.capitalize(), key + 'constraint', [constraint])
a_color = exon_color.Color('/', 0.5, 0.6, 0.7, 0.8)
- formater.color_item(a_color, 'Color ' + str(cc))
+ formater.color_item(a_color, 'Color ' + str(constraint))
formater.end_list()
formater.end_list()
@@ -91,27 +183,6 @@ class TestKandidModel(unittest.TestCase):
exit_code = os.spawnvp(os.P_WAIT, 'tidy', ['tidy', '-i', file_path])
self.assertEqual(0, exit_code)
- def test_protozon_formater(self):
- ka_random.set_flurry(9)
- cpool = model_constraintpool.ConstraintPool.get_pool()
- cpool.clear_all()
-
- ep_list = ka_extensionpoint.list_extensions('formater')
- self.assertTrue(len(ep_list) > 0)
- for ep_key in ep_list:
- a_protozoon = model_protozoon.Protozoon()
- a_protozoon.randomize()
-
- base_name = 'index'
- base_folder = '/dev/shm/'
- formater = ka_extensionpoint.create(ep_key, base_name, a_protozoon.get_unique_id(), base_folder)
- a_protozoon.explain(formater)
-
- file_path = formater.get_pathname('html')
- formater.write_html_file(file_path)
- exit_code = os.spawnvp(os.P_WAIT, 'tidy', ['tidy', '-i', file_path])
- self.assertEqual(0, exit_code)
-
def _write_file(self, file_path, page):
out_file = None
try:
@@ -131,18 +202,18 @@ class TestKandidModel(unittest.TestCase):
print cpool
def test_limit(self):
- self.assertTrue(ka_random.limitate(-0.01) == 0.0)
- self.assertTrue(ka_random.limitate(0.01) == 0.01)
- self.assertTrue(ka_random.limitate(1.01) == 1.0)
- self.assertTrue(ka_random.limitate_range(-0.02, -0.01, 0.01) == -0.01)
- self.assertTrue(ka_random.limitate_range(0.01, -0.01, 0.01) == 0.01)
- self.assertTrue(ka_random.limitate_range(0.011, -0.01, 0.01) == 0.01)
- self.assertTrue(abs(ka_random.cyclic_limitate(-0.01) - 0.99) < EPSILON)
- self.assertTrue(abs(ka_random.cyclic_limitate(0.01) - 0.01) < EPSILON)
- self.assertTrue(abs(ka_random.cyclic_limitate(1.01) - 0.01) < EPSILON)
+ self.assertTrue(model_random.limit(-0.01) == 0.0)
+ self.assertTrue(model_random.limit(0.01) == 0.01)
+ self.assertTrue(model_random.limit(1.01) == 1.0)
+ self.assertTrue(model_random.limit_range(-0.02, -0.01, 0.01) == -0.01)
+ self.assertTrue(model_random.limit_range(0.01, -0.01, 0.01) == 0.01)
+ self.assertTrue(model_random.limit_range(0.011, -0.01, 0.01) == 0.01)
+ self.assertTrue(abs(model_random.cyclic_limit(-0.01) - 0.99) < EPSILON)
+ self.assertTrue(abs(model_random.cyclic_limit(0.01) - 0.01) < EPSILON)
+ self.assertTrue(abs(model_random.cyclic_limit(1.01) - 0.01) < EPSILON)
for value in range(-20, 20):
- self.assertTrue(0.0 <= ka_random.limitate(0.1 * value) <= 1.0)
- self.assertTrue(0.0 <= ka_random.cyclic_limitate(0.1 * value) <= 1.0)
+ self.assertTrue(0.0 <= model_random.limit(0.1 * value) <= 1.0)
+ self.assertTrue(0.0 <= model_random.cyclic_limit(0.1*value) <= 1.0)
def test_extensionpoint(self):
# ka_extensionpoint.scann()
@@ -162,33 +233,27 @@ class TestKandidModel(unittest.TestCase):
exon_direction.Direction('/', 0.1, 0.2), \
exon_position.Position('/', 0.1, 0.2), \
]
- list2 = ka_random.copy_list(list1)
+ list2 = model_random.copy_list(list1)
self.assertEqual(len(list1), len(list2))
- for index, i in enumerate(list1):
+ for index, dummy in enumerate(list1):
self.assertEqual(list1[index], list2[index])
self.assertTrue(list1[index] is not list2[index])
def test_random(self):
- ka_random.set_flurry(0)
- seq = ka_random.crossing_sequence(10)
- for index in range(1,len(seq)):
+ model_random.set_flurry(0)
+ seq = model_random.crossing_sequence(10)
+ for index in range(1, len(seq)):
self.assertEqual(seq[0], seq[index])
- ka_random.set_flurry(9)
- seq = ka_random.crossingover([11], [21, 22, 23, 24, 25])
- print seq
- seq = ka_random.crossingover([11, 12, 13], [21, 22, 23, 24, 25])
- print seq
- seq = ka_random.crossingover([11, 12, 13], [21])
- print seq
+ model_random.set_flurry(9)
def test_positionconstraint(self):
- self._run_ep_test('position')
+ self._run_ep_constarint_test('position')
def test_directionconstraint(self):
- self._run_ep_test('direction')
+ self._run_ep_constarint_test('direction')
- def _run_ep_test(self, key):
- for flavor in ka_extensionpoint.list_extensions(key+'constraint'):
+ def _run_ep_constarint_test(self, key):
+ for flavor in ka_extensionpoint.list_extensions(key + 'constraint'):
constraint = ka_extensionpoint.create(flavor, '/')
x_pos, y_pos = 0.1, 0.2
x_pos, y_pos = constraint.filter(x_pos, y_pos)
@@ -201,30 +266,31 @@ class TestKandidModel(unittest.TestCase):
population_size = 12
model = model_population.KandidModel(population_size)
self.assertEqual(population_size, len(model.fitness))
- for fa in [1, 2, population_size-1]:
- model.fade_away = fa
+ for fade in [1, 2, population_size - 1]:
+ model.fade_away = fade
for i in range(population_size):
- model.fitness[i] = (population_size-i-1)*(1.0 / population_size)
+ model.fitness[i] = \
+ (population_size - i - 1) * (1.0 / population_size)
self._check_classification(population_size, model)
- for ft in [0.0, 5.0, 9.0]:
+ for fit in [0.0, 5.0, 9.0]:
for i in range(population_size):
- model.fitness[i] = ft
+ model.fitness[i] = fit
self._check_classification(population_size, model)
def _check_classification(self, population_size, model):
good, moderate, poor = model.classify()
print model.fade_away, len(poor)
# self.assertEqual(model.fade_away, len(poor))
- self.assertEqual(population_size, len(good) + len(moderate) + len(poor))
+ self.assertEqual(population_size, len(good)+len(moderate)+len(poor))
self.assertTrue(good[0] in model.protozoans)
self.assertFalse(model_population.contains_reference(good[0], moderate))
self.assertFalse(model_population.contains_reference(good[0], poor))
- for mo in moderate:
- self.assertFalse(model_population.contains_reference(mo, poor))
- self.assertFalse(model_population.contains_reference(mo, good))
- for po in poor:
- self.assertFalse(model_population.contains_reference(po, moderate))
- self.assertFalse(model_population.contains_reference(po, good))
+ for mod in moderate:
+ self.assertFalse(model_population.contains_reference(mod, poor))
+ self.assertFalse(model_population.contains_reference(mod, good))
+ for poo in poor:
+ self.assertFalse(model_population.contains_reference(poo, moderate))
+ self.assertFalse(model_population.contains_reference(poo, good))
def test_exon_position(self):
self._run_exon_test('position', exon_position.Position, 0.5, 0.5)
@@ -236,44 +302,44 @@ class TestKandidModel(unittest.TestCase):
self._run_exon_test('buzzword', exon_buzzword.Buzzword, [u'a', u'b'])
def _run_exon_test(self, key, constructor, *params):
- ka_random.set_flurry(9)
+ model_random.set_flurry(9)
self._neutral()
cpool = model_constraintpool.ConstraintPool.get_pool()
- for cc in ka_extensionpoint.list_extensions(key+'constraint'):
- cpool.set('/'+key.capitalize(), key+'constraint', [cc])
+ for constraint in ka_extensionpoint.list_extensions(key + 'constraint'):
+ cpool.set('/' + key.capitalize(), key + 'constraint', [constraint])
element1 = constructor('/', *params)
element2 = element1.copy()
- for i in range(32):
+ for dummy in range(32):
element3 = element1.crossingover(element2)
self.assertEqual(element1, element2)
self.assertEqual(element1, element3)
equal = True
- for i in range(32):
+ for dummy in range(32):
element2.randomize()
element2.mutate()
- element2.shuffle()
+ element2.swap_places()
equal = equal and element1 == element2
self.assertFalse(equal)
self.assertEqual(element1, element3)
def test_exon_color(self):
- ka_random.set_flurry(9)
+ model_random.set_flurry(9)
cpool = model_constraintpool.ConstraintPool.get_pool()
cpool.clear_all()
key = 'color'
cpool = model_constraintpool.ConstraintPool.get_pool()
- for cc in ka_extensionpoint.list_extensions(key+'constraint'):
- cpool.set('/'+key.capitalize(), key+'constraint', [cc])
+ for constraint in ka_extensionpoint.list_extensions(key + 'constraint'):
+ cpool.set('/' + key.capitalize(), key + 'constraint', [constraint])
a_color = exon_color.Color('/', 0.5, 0.5, 0.5, 1.0)
- self.assertFalse(a_color is a_color.crossingover( \
- exon_color.Color('/', 0.5, 0.5, 0.5, 1.0)))
+ self.assertFalse(a_color is a_color.crossingover(\
+ exon_color.Color('/', 0.5, 0.5, 0.5, 1.0)))
self.assertEqual(4, len(a_color.copy().rgba))
a_color.randomize()
self.assertEqual(4, len(a_color.rgba))
- for i in range(32):
+ for dummy in range(32):
a_color.mutate()
self.assertEqual(4, len(a_color.rgba))
@@ -284,18 +350,18 @@ class TestKandidModel(unittest.TestCase):
self.assertTrue(color2 == color1)
color1.randomize()
self.assertFalse(color2 == color1)
- for i in range(32):
+ for dummy in range(32):
color3 = color1.crossingover(color2)
self.assertTrue(color3 is not color1)
self.assertTrue(color3 is not color2)
self.assertTrue(color3 == color1 or color3 == color2)
color4 = color3.copy()
- eq = True
- for i in range(32):
+ eql = True
+ for dummy in range(32):
color4.mutate()
- color4.shuffle()
- eq = eq and color4 == color3
- self.assertFalse(eq)
+ color4.swap_places()
+ eql = eql and color4 == color3
+ self.assertFalse(eql)
def test_layer_factory(self):
self._neutral()
@@ -308,7 +374,7 @@ class TestKandidModel(unittest.TestCase):
self.assertTrue(layer_factory.create_random([keys[0]], '/') is not None)
def test_layer(self):
- ka_random.set_flurry(9)
+ model_random.set_flurry(9)
self._neutral()
layer_factory = ka_factory.get_factory('layer')
@@ -318,7 +384,7 @@ class TestKandidModel(unittest.TestCase):
self.assertTrue(layer2 is not layer1)
self.assertTrue(layer2 == layer1)
layer1.randomize()
- layer1.shuffle()
+ layer1.swap_places()
if layer2 == layer1:
pass
self.assertFalse(layer2 == layer1)
@@ -327,12 +393,12 @@ class TestKandidModel(unittest.TestCase):
self.assertTrue(layer3 is not layer2)
layer4 = layer3.copy()
layer4.mutate()
- for i in range(32):
- layer4.shuffle()
+ for dummy in range(32):
+ layer4.swap_places()
# self.assertFalse(layer4 == layer3)
def test_protozoon(self):
- ka_random.set_flurry(9)
+ model_random.set_flurry(9)
self._neutral()
protozoon1 = model_protozoon.Protozoon()
@@ -343,18 +409,139 @@ class TestKandidModel(unittest.TestCase):
print protozoon2 == protozoon1
self.assertTrue(protozoon2 == protozoon1)
protozoon1.randomize()
- protozoon1.shuffle()
+ protozoon1.swap_places()
self.assertFalse(protozoon2 == protozoon1)
protozoon3 = protozoon1.crossingover(protozoon2)
self.assertTrue(protozoon3 is not protozoon1)
self.assertTrue(protozoon3 is not protozoon2)
protozoon4 = protozoon3.copy()
protozoon4.mutate()
- for i in range(32):
- protozoon4.shuffle()
+ for dummy in range(32):
+ protozoon4.swap_places()
# self.assertFalse(protozoon4 == protozoon3)
- def test_render(self):
+ def test_population(self):
+ model = model_population.KandidModel(12)
+ model.set_flurry_rate(9)
+ self.assertEqual(9, model.get_flurry_rate())
+
+ model.randomize()
+ model.reduce_fitness(0)
+ model.raise_fitness(1)
+ model.raise_fitness(2)
+ self.assertEqual(0.0, model.fitness[0])
+ self.assertEqual(9.0, model.fitness[2])
+ self.assertTrue(model.fitness[1] < model.fitness[2])
+
+ for fit in range(len(model.fitness)):
+ model.fitness[fit] = 5.0
+ model.fitness[5] = 0.0
+ model.fitness[1] = 0.0
+ model.fitness[3] = 9.0
+ new_indices = model.breed()
+ self.assertTrue(5 in new_indices)
+ self.assertTrue(1 in new_indices)
+
+ model.fitness[7] = 0.0
+ model.fitness[5] = 1.0
+ model.fitness[1] = 1.0
+ protozoon1 = model_protozoon.Protozoon()
+ protozoon1.randomize()
+ self.assertEqual(7, model.replace(protozoon1))
+
+ stored_model = model_population.to_buffer(model)
+ protozoon2 = model_protozoon.Protozoon()
+ protozoon2.randomize()
+ model.fitness[7] = 0.0
+ model.replace(protozoon2)
+ self.assertEqual(protozoon2.get_unique_id(),
+ model.protozoans[7].get_unique_id())
+ model = model_population.from_buffer(stored_model)
+ self.assertEqual(protozoon1.get_unique_id(),
+ model.protozoans[7].get_unique_id())
+
+ ka_debug.dot_start()
+ result = 'digraph persister_objects { rankdir=LR; ranksep="5.0"; node [shape=none,fontname=Sans, fontsize=9, fixedsize=true, height=0.05, width=1.0];\n'
+ result += model.dot()
+ result += '\n}'
+ self.assertEqual(0, result.count('=red'))
+
+ def test_incomming1(self):
+ incoming = ka_incoming.KandidIncoming(3)
+ self.assertEqual(0, len(incoming.incoming_protozoans))
+ protozoon1 = model_protozoon.Protozoon()
+ protozoon1.randomize()
+ incoming.append_protozoon(protozoon1)
+ self.assertEqual(1, len(incoming.incoming_protozoans))
+ self.assertEqual(protozoon1.get_unique_id(),
+ incoming.incoming_protozoans[0].get_unique_id())
+ incoming.decline_protozoon(0)
+ self.assertEqual(0, len(incoming.incoming_protozoans))
+
+ def test_incomming3(self):
+ protozoon1 = model_protozoon.Protozoon()
+ protozoon1.randomize()
+ protozoon2 = model_protozoon.Protozoon()
+ protozoon2.randomize()
+ protozoon3 = model_protozoon.Protozoon()
+ protozoon3.randomize()
+
+ capacity = 3
+ incoming = ka_incoming.KandidIncoming(capacity)
+ self.assertEqual(0, len(incoming.incoming_protozoans))
+
+ self.render_incoming(incoming, capacity)
+ incoming.append_protozoon(protozoon1)
+ self.render_incoming(incoming, capacity)
+ incoming.append_protozoon(protozoon2)
+ self.render_incoming(incoming, capacity)
+ incoming.append_protozoon(protozoon3)
+ self.render_incoming(incoming, capacity)
+ self.assertEqual(3, len(incoming.incoming_protozoans))
+ self.assertEqual(protozoon1.get_unique_id(),
+ incoming.incoming_protozoans[0].get_unique_id())
+ self.assertEqual(protozoon2.get_unique_id(),
+ incoming.incoming_protozoans[1].get_unique_id())
+ self.assertEqual(protozoon3.get_unique_id(),
+ incoming.incoming_protozoans[2].get_unique_id())
+
+ incoming.decline_protozoon(0)
+ self.assertEqual(2, len(incoming.incoming_protozoans))
+ self.assertEqual(protozoon2.get_unique_id(),
+ incoming.incoming_protozoans[0].get_unique_id())
+ self.assertEqual(protozoon3.get_unique_id(),
+ incoming.incoming_protozoans[1].get_unique_id())
+
+ incoming.decline_protozoon(1)
+ self.assertEqual(1, len(incoming.incoming_protozoans))
+ self.assertEqual(protozoon2.get_unique_id(),
+ incoming.incoming_protozoans[0].get_unique_id())
+
+ incoming.decline_protozoon(0)
+ self.assertEqual(0, len(incoming.incoming_protozoans))
+
+ protozoon4 = model_protozoon.Protozoon()
+ protozoon4.randomize()
+ incoming.append_protozoon(protozoon1)
+ incoming.append_protozoon(protozoon2)
+ incoming.append_protozoon(protozoon3)
+ incoming.append_protozoon(protozoon4)
+ self.assertEqual(3, len(incoming.incoming_protozoans))
+ self.assertEqual(protozoon2.get_unique_id(),
+ incoming.incoming_protozoans[0].get_unique_id())
+ self.assertEqual(protozoon3.get_unique_id(),
+ incoming.incoming_protozoans[1].get_unique_id())
+ self.assertEqual(protozoon4.get_unique_id(),
+ incoming.incoming_protozoans[2].get_unique_id())
+
+ def render_incoming(self, incoming, capacity):
+ for index in range(capacity):
+ width, height = 200, 200
+ dummy, ctx = self.create_context(width, height)
+ incoming.draw(index, ctx, width, height)
+
+ def test_renderSVG(self):
+ return #TODO support SVG ????
self._neutral()
width, height = 200, 200
@@ -370,16 +557,25 @@ class TestKandidModel(unittest.TestCase):
layer.randomize()
outname = 'testoutput_' + strategy
# surface = cairo.SVGSurface(outname + '.svg', width, height)
- surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, width, height)
- ctx = cairo.Context(surface)
- ctx.scale(width, height)
- # paint background
- ctx.set_operator(cairo.OPERATOR_SOURCE)
- ctx.set_source_rgb(0.0, 0.0, 0.0)
- ctx.paint()
+ surface, ctx = self.create_context(width, height)
layer.render(ctx, width, height)
surface.write_to_png(outname + '.png')
+ def test_render2(self):
+ return #TODO
+ test_enumerator.explain()
+
+ def create_context(self, width, height):
+ surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, width, height)
+ ctx = cairo.Context(surface)
+ ctx.scale(width, height)
+ # paint background
+ ctx.set_operator(cairo.OPERATOR_SOURCE)
+ ctx.set_source_rgb(0.0, 0.0, 0.0)
+ ctx.paint()
+ return surface, ctx
+
+
ka_debug.info('starting TestSuite')
ka_debug.err('testing error message channel.')
alltests = unittest.TestSuite((\