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))