コード例 #1
0
ファイル: Dynamics_test.py プロジェクト: jecki/CoopSim
 def testQuickFitnessFairGame(self):
     """Fitness should return equal fitnesses a 'totally fair' game"""
     G = ArrayWrapper.array(lambda a,b,c,d: 5.0)
     for i in range(10):
         r = Dynamics.RandomDistribution(7)
         f = Dynamics._QuickFitness(r, G, 4)
         for k in range(1,7):
             self.failIf(f[k] != f[0]) 
コード例 #2
0
ファイル: Dynamics_test.py プロジェクト: jecki/CoopSim
 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))                       
コード例 #3
0
ファイル: Dynamics_test.py プロジェクト: jecki/CoopSim
 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))
コード例 #4
0
ファイル: Dynamics_test.py プロジェクト: jecki/CoopSim
 def testQuickFitness2Players(self):
     """QuickFitness should not make a difference to QF2 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._QuickFitness2(p, G)
             fitness = Dynamics._QuickFitness(p, G, 2)
             self.failUnless(AlmostEqual(fitness, compare))        
コード例 #5
0
ファイル: Dynamics_test.py プロジェクト: jecki/CoopSim
 def testSampledQuickFitness(self):
     """SampledQuickFitness should yield similar results as QuickFitness"""
     for i in range(5):
         G = array(GenRandomGame(4, 7))
         p = Dynamics.RandomDistribution(7)
         fitness = Dynamics._QuickFitness(p, G, 4)
         failures = 0
         for k in range(5):
             sampled = Dynamics._SampledQuickFitness(p, G, 4, 5000)
             if not AlmostEqual(fitness, sampled, 0.1): failures += 1
             self.failIf(failures > 1)