예제 #1
0
 def testFitnessCorrelation(self):
     """Correlation should make a difference"""
     G = ArrayWrapper.array(CorelatedGame)
     for k in range(20):
         p = Dynamics.RandomDistribution(8)
         compare = Dynamics._QuickFitness(p, G, 3)
         fitness = Dynamics._Fitness(p, G, 0.2, 3)
         self.failIf(AlmostEqual(fitness, compare))                       
예제 #2
0
 def testFitnessZeroCorrelation(self):
     """Fitness should return the same results as QuickFitness if e=0.0."""
     for i in range(5):
         G = array(GenRandomGame(4, 7))
         for k in range(5):
             p = Dynamics.RandomDistribution(7)
             compare = Dynamics._QuickFitness(p, G, 4)
             fitness = Dynamics._Fitness(p, G, 0.0, 4)
             self.failUnless(AlmostEqual(fitness, compare))
예제 #3
0
 def testFitness2Players(self):
     """Fitness should be the same as Fitness2 in the 2 player case"""
     for i in range(20):
         G = array(GenRandomGame(2, 8))
         for k in range(5):
             p = Dynamics.RandomDistribution(8)
             compare = Dynamics._Fitness2(p, G, 0.2)
             fitness = Dynamics._Fitness(p, G, 0.2, 2)
             self.failUnless(AlmostEqual(fitness, compare))    
예제 #4
0
 def testSampledFitness(self):
     """SampledFitness should yield roughly the same results as Fitness"""
     for i in range(5):
         G = array(GenRandomGame(3, 8))
         p = Dynamics.RandomDistribution(8)
         fitness = Dynamics._Fitness(p, G, 0.2, 3)
         failures = 0
         for k in range(5):
             sampled = Dynamics._SampledFitness(p, G, 0.2, 3, 5000)
             if not AlmostEqual(fitness, sampled, 0.15): failures += 1
             self.failIf(failures > 1)