Migration from SVN

This commit is contained in:
quemy 2012-08-30 11:30:11 +02:00
commit 8cd56f37db
29069 changed files with 0 additions and 4096888 deletions

View file

@ -0,0 +1,82 @@
print 'importing maxone'
from maxone import *
print 'done'
import unittest
class Mut(Mutate):
def __init__(self):
Mutate.__init__(self)
self.cnt = 0;
def __call__(self, eo):
self.cnt += 1;
return Mutate.__call__(self, eo)
class Xover(Crossover):
def __init__(self):
Crossover.__init__(self)
self.cnt = 0;
def __call__(self, eo1, eo2):
self.cnt += 1;
return Crossover.__call__(self, eo1, eo2)
class TestPopulator(unittest.TestCase):
def make_pop(self):
pop = eoPop(20, init)
for indy in pop: evaluate(indy)
return pop
def test_sequential(self):
pop = self.make_pop()
populator = eoSeqPopulator(pop, pop)
print populator.get()
print populator.get()
def test_selective(self):
sel = eoDetTournamentSelect(2)
pop = self.make_pop()
populator = eoSelectivePopulator(pop, pop, sel)
print populator.get()
print populator.get()
def runOpContainer(self, opcontainer):
mutate = Mut()
xover = Xover()
print 'making seq'
seq = opcontainer()
print "xovertype", xover.getType()
print "mutationtype", mutate.getType()
seq.add(mutate, 0.4)
seq.add(xover, 0.8)
pop = self.make_pop();
offspring = eoPop()
sel = eoDetTournamentSelect(2)
print "making populator"
populator = eoSelectivePopulator(pop, offspring, sel)
print 'made'
for i in xrange(1000):
seq(populator)
print mutate.cnt
print xover.cnt
def test_sequentialOp(self):
print '*'*20, "SequentialOp", '*'*20
self.runOpContainer(eoSequentialOp)
def test_proportionalOp(self):
print '*'*20, "ProportionalOp", '*'*20
self.runOpContainer(eoProportionalOp)
if __name__=='__main__':
unittest.main()