# coding: UTF-8 # 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 # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # 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 unittest import ka_factory import model_random import test_utils class TestKandidLayer(unittest.TestCase): def setUp(self): pass def tearDown(self): pass def test_layer_factory(self): test_utils.neutral() layer_factory = ka_factory.get_factory('layer') keys = layer_factory.keys() self.assertTrue(layer_factory.count() >= 1) self.assertEqual(len(keys), layer_factory.count()) for layer_key in keys: self.assertTrue(layer_factory.create(layer_key, '/') is not None) self.assertTrue(layer_factory.create_random([keys[0]], '/') is not None) def test_layer(self): model_random.set_flurry(9) test_utils.neutral() layer_factory = ka_factory.get_factory('layer') for layer_key in layer_factory.keys(): layer1 = layer_factory.create(layer_key, '/') layer2 = layer1.copy() if not (layer2 == layer1): pass self.assertTrue(layer2 is not layer1) self.assertTrue(layer2 == layer1) layer1.randomize() layer1.swap_places() if layer2 == layer1: pass self.assertFalse(layer2 == layer1) layer3 = layer1.crossingover(layer2) self.assertTrue(layer3 is not layer1) self.assertTrue(layer3 is not layer2) layer4 = layer3.copy() layer4.mutate() for dummy in range(32): layer4.swap_places() # self.assertFalse(layer4 == layer3)