Migration from SVN
This commit is contained in:
parent
d7d6c3a217
commit
8cd56f37db
29069 changed files with 0 additions and 4096888 deletions
82
eo/src/pyeo/test/test_populator.py
Normal file
82
eo/src/pyeo/test/test_populator.py
Normal 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()
|
||||
Loading…
Add table
Add a link
Reference in a new issue