def test_profile_threshold_model(self): g = nx.erdos_renyi_graph(1000, 0.1) model = epd.ProfileThresholdModel(g) config = mc.Configuration() config.add_model_parameter('fraction_infected', 0.1) threshold = 0.2 profile = 0.1 for i in g.nodes(): config.add_node_configuration("threshold", i, threshold) config.add_node_configuration("profile", i, profile) model.set_initial_status(config) iterations = model.iteration_bunch(10) self.assertEqual(len(iterations), 10) model = epd.ProfileThresholdModel(g) config = mc.Configuration() config.add_model_parameter('fraction_infected', 0.1) config.add_model_parameter("blocked", 0.1) config.add_model_parameter("adopter_rate", 0.001) threshold = 0.2 profile = 0.1 for i in g.nodes(): config.add_node_configuration("threshold", i, threshold) config.add_node_configuration("profile", i, profile) model.set_initial_status(config) iterations = model.iteration_bunch(10) self.assertEqual(len(iterations), 10) iterations = model.iteration_bunch(10, node_status=False) self.assertEqual(len(iterations), 10)
def test_profile_threshold_model(self): for g in get_graph(True): model = epd.ProfileThresholdModel(g) config = mc.Configuration() config.add_model_parameter('percentage_infected', 0.1) threshold = 0.2 profile = 0.1 if isinstance(g, nx.Graph): nodes = g.nodes else: nodes = g.vs['name'] for i in nodes: config.add_node_configuration("threshold", i, threshold) config.add_node_configuration("profile", i, profile) model.set_initial_status(config) iterations = model.iteration_bunch(10) self.assertEqual(len(iterations), 10) model = epd.ProfileThresholdModel(g) config = mc.Configuration() config.add_model_parameter('percentage_infected', 0.1) config.add_model_parameter("blocked", 0.1) config.add_model_parameter("adopter_rate", 0.001) threshold = 0.2 profile = 0.1 if isinstance(g, nx.Graph): nodes = g.nodes else: nodes = g.vs['name'] for i in nodes: config.add_node_configuration("threshold", i, threshold) config.add_node_configuration("profile", i, profile) model.set_initial_status(config) iterations = model.iteration_bunch(10) self.assertEqual(len(iterations), 10) iterations = model.iteration_bunch(10, node_status=False) self.assertEqual(len(iterations), 10)
def test_optional_parameters(self): for g in get_graph(True): model = epd.ThresholdModel(g) config = mc.Configuration() config.add_model_parameter('fraction_infected', 0.1) model.set_initial_status(config) iterations = model.iteration_bunch(10) if isinstance(g, nx.Graph): config.add_node_set_configuration("test", {n: 1 for n in g.nodes}) config.add_edge_set_configuration("etest", {e: 1 for e in g.edges}) else: config.add_node_set_configuration("test", {n: 1 for n in g.vs['name']}) edges = [(g.vs[e.tuple[0]]['name'], g.vs[e.tuple[1]]['name']) for e in g.es] config.add_edge_set_configuration("etest", {e: 1 for e in edges}) self.assertEqual(len(iterations), 10) model = epd.KerteszThresholdModel(g) config = mc.Configuration() config.add_model_parameter('adopter_rate', 0.4) predefined_blocked = [0, 1, 2, 3, 4, 5] config.add_model_initial_configuration("Blocked", predefined_blocked) config.add_model_parameter('percentage_infected', 0.1) model.set_initial_status(config) iteration = model.iteration() blocked = [x for x, v in future.utils.iteritems(iteration["status"]) if v == -1] self.assertEqual(blocked, predefined_blocked) model = epd.IndependentCascadesModel(g) config = mc.Configuration() config.add_model_parameter('percentage_infected', 0.1) model.set_initial_status(config) iterations = model.iteration_bunch(10) self.assertEqual(len(iterations), 10) model = epd.ProfileModel(g) config = mc.Configuration() config.add_model_parameter('percentage_infected', 0.1) model.set_initial_status(config) iterations = model.iteration_bunch(10) self.assertEqual(len(iterations), 10) model = epd.ProfileThresholdModel(g) config = mc.Configuration() config.add_model_parameter('fraction_infected', 0.1) model.set_initial_status(config) iterations = model.iteration_bunch(10) self.assertEqual(len(iterations), 10) model = epd.ThresholdModel(g) config = mc.Configuration() config.add_model_parameter('fraction_infected', 0.1) model.set_initial_status(config) iterations = model.iteration_bunch(10) self.assertEqual(len(iterations), 10) model = epd.KerteszThresholdModel(g) config = mc.Configuration() config.add_model_parameter('adopter_rate', 0.4) config.add_model_parameter('percentage_blocked', 0.1) config.add_model_parameter('fraction_infected', 0.1) model.set_initial_status(config) iterations = model.iteration_bunch(10) self.assertEqual(len(iterations), 10)
def test_optional_parameters(self): g = nx.erdos_renyi_graph(1000, 0.1) model = epd.ThresholdModel(g) config = mc.Configuration() config.add_model_parameter('fraction_infected', 0.1) model.set_initial_status(config) iterations = model.iteration_bunch(10) config.add_node_set_configuration("test", {n: 1 for n in g.nodes()}) config.add_edge_set_configuration("etest", {e: 1 for e in g.edges()}) self.assertEqual(len(iterations), 10) model = epd.KerteszThresholdModel(g) config = mc.Configuration() config.add_model_parameter('adopter_rate', 0.4) predefined_blocked = [0, 1, 2, 3, 4, 5] config.add_model_initial_configuration("Blocked", predefined_blocked) config.add_model_parameter('fraction_infected', 0.1) model.set_initial_status(config) iteration = model.iteration() blocked = [ x for x, v in future.utils.iteritems(iteration["status"]) if v == -1 ] self.assertEqual(blocked, predefined_blocked) model = epd.IndependentCascadesModel(g) config = mc.Configuration() config.add_model_parameter('fraction_infected', 0.1) model.set_initial_status(config) iterations = model.iteration_bunch(10) self.assertEqual(len(iterations), 10) model = epd.ProfileModel(g) config = mc.Configuration() config.add_model_parameter('fraction_infected', 0.1) model.set_initial_status(config) iterations = model.iteration_bunch(10) self.assertEqual(len(iterations), 10) model = epd.ProfileThresholdModel(g) config = mc.Configuration() config.add_model_parameter('fraction_infected', 0.1) model.set_initial_status(config) iterations = model.iteration_bunch(10) self.assertEqual(len(iterations), 10) model = epd.ThresholdModel(g) config = mc.Configuration() config.add_model_parameter('fraction_infected', 0.1) model.set_initial_status(config) iterations = model.iteration_bunch(10) self.assertEqual(len(iterations), 10) model = epd.KerteszThresholdModel(g) config = mc.Configuration() config.add_model_parameter('adopter_rate', 0.4) config.add_model_parameter('percentage_blocked', 0.1) config.add_model_parameter('fraction_infected', 0.1) model.set_initial_status(config) iterations = model.iteration_bunch(10) self.assertEqual(len(iterations), 10)