Skip to content

Commit

Permalink
update test suite
Browse files Browse the repository at this point in the history
  • Loading branch information
GiulioRossetti committed Aug 9, 2017
1 parent 3acd974 commit 5bd60b5
Show file tree
Hide file tree
Showing 4 changed files with 45 additions and 21 deletions.
2 changes: 1 addition & 1 deletion ndlib/models/ModelConfig.py
Original file line number Diff line number Diff line change
Expand Up @@ -113,4 +113,4 @@ def add_edge_set_configuration(self, param_name, edge_to_value):
:param edge_to_value: dictionary mapping each edge a parameter value
"""
for edge, val in future.utils.iteritems(edge_to_value):
self.add_node_configuration(param_name, edge, val)
self.add_edge_configuration(param_name, edge, val)
4 changes: 2 additions & 2 deletions ndlib/models/epidemics/SEIRModel.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,9 +66,9 @@ def iteration(self, node_status=True):
infected_neighbors = len([v for v in neighbors if self.status[v] == 2 or self.status[v] == 1])
if eventp < self.params['model']['beta'] * infected_neighbors:
actual_status[u] = 2 # Exposed
elif 1 <= u_status <= 1.9:
elif 2 <= u_status < 1:
if u_status < self.params['model']['alpha']:
actual_status[u] += 0.01
actual_status[u] -= 0.01
else:
actual_status[u] = 1 # Infected
elif u_status == 1:
Expand Down
4 changes: 2 additions & 2 deletions ndlib/models/epidemics/SEISModel.py
Original file line number Diff line number Diff line change
Expand Up @@ -81,9 +81,9 @@ def iteration(self, node_status=True):
infected_neighbors = len([v for v in neighbors if self.status[v] == 2 or self.status[v] == 1])
if eventp < self.params['model']['beta'] * infected_neighbors:
actual_status[u] = 2 # Exposed
elif 1 <= u_status <= 1.9:
elif 2 <= u_status < 1:
if u_status < self.params['model']['alpha']:
actual_status[u] += 0.01
actual_status[u] -= 0.01
else:
actual_status[u] = 1 # Infected
elif u_status == 1:
Expand Down
56 changes: 40 additions & 16 deletions ndlib/test/test_ndlib.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ def test_voter_model(self):
model.set_initial_status(config)
iterations = model.iteration_bunch(10)
self.assertEqual(len(iterations), 10)
iterations = model.iteration_bunch(10, node_status=True)
iterations = model.iteration_bunch(10, node_status=False)
self.assertEqual(len(iterations), 10)

def test_sznajd_model(self):
Expand All @@ -48,7 +48,7 @@ def test_sznajd_model(self):
model.set_initial_status(config)
iterations = model.iteration_bunch(10)
self.assertEqual(len(iterations), 10)
iterations = model.iteration_bunch(10, node_status=True)
iterations = model.iteration_bunch(10, node_status=False)
self.assertEqual(len(iterations), 10)

def test_majorityrule_model(self):
Expand All @@ -60,7 +60,7 @@ def test_majorityrule_model(self):
model.set_initial_status(config)
iterations = model.iteration_bunch(10)
self.assertEqual(len(iterations), 10)
iterations = model.iteration_bunch(10, node_status=True)
iterations = model.iteration_bunch(10, node_status=False)
self.assertEqual(len(iterations), 10)

def test_qvoter_model(self):
Expand All @@ -72,7 +72,7 @@ def test_qvoter_model(self):
model.set_initial_status(config)
iterations = model.iteration_bunch(10)
self.assertEqual(len(iterations), 10)
iterations = model.iteration_bunch(10, node_status=True)
iterations = model.iteration_bunch(10, node_status=False)
self.assertEqual(len(iterations), 10)

def test_cognitive_model(self):
Expand All @@ -91,7 +91,7 @@ def test_cognitive_model(self):

iterations = model.iteration_bunch(10)
self.assertEqual(len(iterations), 10)
iterations = model.iteration_bunch(10, node_status=True)
iterations = model.iteration_bunch(10, node_status=False)
self.assertEqual(len(iterations), 10)

def test_si_model(self):
Expand All @@ -103,7 +103,7 @@ def test_si_model(self):
model.set_initial_status(config)
iterations = model.iteration_bunch(10)
self.assertEqual(len(iterations), 10)
iterations = model.iteration_bunch(10, node_status=True)
iterations = model.iteration_bunch(10, node_status=False)
self.assertEqual(len(iterations), 10)

def test_sir_model(self):
Expand All @@ -116,7 +116,7 @@ def test_sir_model(self):
model.set_initial_status(config)
iterations = model.iteration_bunch(10)
self.assertEqual(len(iterations), 10)
iterations = model.iteration_bunch(10, node_status=True)
iterations = model.iteration_bunch(10, node_status=False)
self.assertEqual(len(iterations), 10)

def test_seir_model(self):
Expand All @@ -139,7 +139,7 @@ def test_seir_model(self):
config.add_model_parameter('alpha', 0.5)
config.add_model_parameter("percentage_infected", 0.1)
model.set_initial_status(config)
iterations = model.iteration_bunch(10, node_status=True)
iterations = model.iteration_bunch(10, node_status=False)
self.assertEqual(len(iterations), 10)

def test_seis_model(self):
Expand All @@ -162,7 +162,7 @@ def test_seis_model(self):
config.add_model_parameter('alpha', 0.5)
config.add_model_parameter("percentage_infected", 0.1)
model.set_initial_status(config)
iterations = model.iteration_bunch(10, node_status=True)
iterations = model.iteration_bunch(10, node_status=False)
self.assertEqual(len(iterations), 10)

def test_sis_model(self):
Expand All @@ -175,7 +175,7 @@ def test_sis_model(self):
model.set_initial_status(config)
iterations = model.iteration_bunch(10)
self.assertEqual(len(iterations), 10)
iterations = model.iteration_bunch(10, node_status=True)
iterations = model.iteration_bunch(10, node_status=False)
self.assertEqual(len(iterations), 10)

def test_kertesz_model(self):
Expand All @@ -193,7 +193,7 @@ def test_kertesz_model(self):
model.set_initial_status(config)
iterations = model.iteration_bunch(10)
self.assertEqual(len(iterations), 10)
iterations = model.iteration_bunch(10, node_status=True)
iterations = model.iteration_bunch(10, node_status=False)
self.assertEqual(len(iterations), 10)

def test_multiple_si_model(self):
Expand All @@ -205,7 +205,7 @@ def test_multiple_si_model(self):
model.set_initial_status(config)
executions = ut.multi_runs(model, execution_number=10, iteration_number=50)
self.assertEqual(len(executions), 10)
iterations = model.iteration_bunch(10, node_status=True)
iterations = model.iteration_bunch(10, node_status=False)
self.assertEqual(len(iterations), 10)

def test_threshold_model(self):
Expand All @@ -221,7 +221,7 @@ def test_threshold_model(self):
model.set_initial_status(config)
iterations = model.iteration_bunch(10)
self.assertEqual(len(iterations), 10)
iterations = model.iteration_bunch(10, node_status=True)
iterations = model.iteration_bunch(10, node_status=False)
self.assertEqual(len(iterations), 10)

def test_profile_threshold_model(self):
Expand Down Expand Up @@ -257,7 +257,7 @@ def test_profile_threshold_model(self):

iterations = model.iteration_bunch(10)
self.assertEqual(len(iterations), 10)
iterations = model.iteration_bunch(10, node_status=True)
iterations = model.iteration_bunch(10, node_status=False)
self.assertEqual(len(iterations), 10)

def test_profile_model(self):
Expand Down Expand Up @@ -285,7 +285,7 @@ def test_profile_model(self):
config.add_node_configuration("profile", i, profile)

model.set_initial_status(config)
iterations = model.iteration_bunch(10, node_status=True)
iterations = model.iteration_bunch(10, node_status=False)
self.assertEqual(len(iterations), 10)

def test_independent_cascade_model(self):
Expand All @@ -300,7 +300,7 @@ def test_independent_cascade_model(self):
model.set_initial_status(config)
iterations = model.iteration_bunch(10)
self.assertEqual(len(iterations), 10)
iterations = model.iteration_bunch(10, node_status=True)
iterations = model.iteration_bunch(10, node_status=False)
self.assertEqual(len(iterations), 10)

def test_kertesz_model_predefined_blocked(self):
Expand Down Expand Up @@ -342,6 +342,9 @@ def test_optional_parameters(self):
config.add_model_parameter('percentage_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 = ks.KerteszThresholdModel(g)
Expand Down Expand Up @@ -391,3 +394,24 @@ def test_optional_parameters(self):
model.set_initial_status(config)
iterations = model.iteration_bunch(10)
self.assertEqual(len(iterations), 10)

def test_config(self):
g = nx.erdos_renyi_graph(99, 0.1)
model = th.ThresholdModel(g)
config = mc.Configuration()
config.add_model_parameter('percentage_infected', 0.1)
config.add_model_initial_configuration("Infected", [1, 2, 3])
config.add_node_set_configuration("partial", {1:1, 2:2})
try:
model.set_initial_status(config)
except:
pass

config.add_edge_set_configuration("partial", {e: 1 for e in g.edges()[:10]})
try:
model.set_initial_status(config)
except:
pass
config.add_node_set_configuration("partial", {n: 1 for n in g.nodes()})
config.add_edge_set_configuration("partial", {e: 1 for e in g.edges()})
model.set_initial_status(config)

0 comments on commit 5bd60b5

Please sign in to comment.