コード例 #1
0
ファイル: Dynamics_test.py プロジェクト: jecki/CoopSim
 def testFitness2Correlation(self):
     """Correlation should make a difference"""
     G = ArrayWrapper.array(CorelatedGame)
     for k in range(20):
         p = Dynamics.RandomDistribution(8)
         compare = Dynamics._QuickFitness2(p, G)
         fitness = Dynamics._Fitness2(p, G, 0.2)
         self.failIf(AlmostEqual(fitness, compare))
コード例 #2
0
ファイル: Dynamics_test.py プロジェクト: jecki/CoopSim
 def testQuickFitness2FairGame(self):
     """QuickFitness2 should yield equal fitnesses in a totally fair game"""
     G = ArrayWrapper.array(lambda a,b: 0.3)
     for i in range(20):
         p = Dynamics.RandomDistribution(5)
         f = Dynamics._QuickFitness2(p, G)
         for k in range(1,5):
             self.failIf(f[k] != f[0])       
コード例 #3
0
ファイル: Dynamics_test.py プロジェクト: jecki/CoopSim
 def testFitness2ZeroCorrelation(self):
     """Fitness2 should return the same results QuickFitness2 if e=0.0."""
     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._Fitness2(p, G, 0.0)
             self.failUnless(AlmostEqual(fitness, compare))
コード例 #4
0
ファイル: Dynamics_test.py プロジェクト: jecki/CoopSim
 def testNumericQuickFitness2Players(self):
     """QuickFitness2 and numeric_QuickFitness2 should yield the same result
     """
     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._numeric_QuickFitness2(p, G)
             self.failUnless(AlmostEqual(fitness, compare)) 
コード例 #5
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))        
コード例 #6
0
ファイル: Dynamics_test.py プロジェクト: jecki/CoopSim
 def testSampledQuickFitness2(self):
     """SampledQuickFitness2 should yield similar results as QuickFitness2"""
     for i in range(5):
         G = array(GenRandomGame(2, 8))
         p = Dynamics.RandomDistribution(8)
         fitness = Dynamics._QuickFitness2(p, G)
         failures = 0
         for k in range(5):
             sampled = Dynamics._SampledQuickFitness2(p, G, 1000)
             if not AlmostEqual(fitness, sampled, 0.1): failures += 1
             self.failIf(failures > 1)
コード例 #7
0
ファイル: Dynamics_test.py プロジェクト: jecki/CoopSim
 def testQuickFitness2DemandGame(self):
     """Test QuickFitness with the 'demand game'"""
     fitness = Dynamics._QuickFitness2(self.pop1, self.DemandGame)
     self.failUnless(fitness[2] > fitness[1] and fitness[2] >= fitness[0])