def _foo(fb=10,
          mutRate=0.1,
          fun='pgg',
          pars={
              "fb": 10,
              "b": 0.5,
              "c": 0.05,
              "gamma": 0.01
          }):
     population = Pop(fit_fun=fun, inst='test/test')
     population.numberOfDemes = 5
     population.initialDemeSize = 8
     population.numberOfGenerations = 5
     population.mutationRate = mutRate
     # make sure fitness parameters are alright
     population.fitnessParameters.clear()
     population.fitnessParameters.update(pars)
     population.fitnessParameters.update({'fb': fb})
     population.runSimulation()
     return population.numberOfGenerations
    def _foo(fitfun='pgg'):
        fakepop = Pop(inst='test/test')
        fakepop.numberOfDemes = 3
        fakepop.initialDemeSize = 10
        fakepop.fitnessParameters = fitpardict[fitfun]
        fakepop.fit_fun = fitfun
        fakepop.mutationRate = 0
        fakepop.migrationRate = 0
        fakepop.createAndPopulateDemes()
        for i in range(fakepop.demography):
            fakepop.individuals[i].resourcesAmount = i * 2
        parents = fakepop.individuals

        for ind in range(len(parents)):
            indiv = fakepop.individuals[ind]
            indiv.resourcesAmount = ind * 2
        fakepop.clearDemeInfo()
        fakepop.populationMutationMigration()
        fakepop.updateDemeInfoPreProduction()
        fakepop.populationProduction()
        fakepop.updateDemeInfoPostProduction()
        fakepop.populationReproduction()
        return (fakepop, parents)