Exemple #1
0
    def test_countwodn(self):

        g = nx.karate_club_graph()

        model = gc.CompositeModel(g)
        model.add_status("Susceptible")
        model.add_status("Infected")

        c = cpm.CountDown(name="time", iterations=4)
        model.add_rule("Susceptible", "Infected", c)

        config = mc.Configuration()
        config.add_model_parameter('percentage_infected', 0.1)

        model.set_initial_status(config)
        iterations = model.iteration_bunch(100)
        self.assertEqual(len(iterations), 100)
 
 #-----------------------------------------------------
 #DISEASE DATA
 r0 = 3.1
 disease_length = 14
 people_total = 12 * disease_length 
 chance_of_infection = r0 / people_total
 infect_chance = chance_of_infection
 #print(infect_chance)
 #-----------------------------------------------------
 # Compartment Definition
 c1_1 = ns.NodeStochastic(infect_chance, triggering_status="Infected")
 c1_3 = ns.NodeStochastic(infect_chance, triggering_status="Symptomatic")
 c2_1 = ns.NodeStochastic((1 - 0.5**(1/11))) 
 c3 = ns.NodeStochastic((1 - 0.5**(1/14)))
 c4 = ns.CountDown('Testing Timer', iterations = itercount)
 
 # Rule Definition
 model.add_rule("Susceptible","Exposed",c1_1)
 model.add_rule("Susceptible","Exposed",c1_3)
 model.add_rule("Exposed","Symptomatic",c2_1)
 model.add_rule("Symptomatic","Removed",c3)
 model.add_rule("Infected","Removed",c4)
 
 # Model Configuration
 config = mc.Configuration()
 config.add_model_parameter('fraction_infected', initialinfect/N)
 model.set_initial_status(config)
 
 # Simulation
 print('-----Doing {} simulation(s) on {} day test-----'.format(executions,itercount))