Esempio n. 1
0
    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)
Esempio n. 2
0
    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)
Esempio n. 3
0
    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)
Esempio n. 4
0
    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)