def test_generate_edges_5_nodes(self): g = graph.graph() g.nodes = [ OrderedDict([('x', 0), ('y', 4)]), OrderedDict([('x', 1), ('y', 1)]), OrderedDict([('x', 3), ('y', 0)]), OrderedDict([('x', 3), ('y', 2)]), OrderedDict([('x', 4), ('y', 3)]) ] g.nodesGrid = [ [None, None, None, {'owned_by': None}, None], [None, {'owned_by': None}, None, None, None], [None, None, None, {'owned_by': None}, None], [None, None, None, None, {'owned_by': None}], [{'owned_by': None}, None, None, None, None] ] g.generateEdges() expected = { '{"x":0,"y":4}': [g.nodes[1], g.nodes[2], g.nodes[4]], '{"x":1,"y":1}': [g.nodes[0], g.nodes[2]], '{"x":3,"y":0}': [g.nodes[0], g.nodes[1], g.nodes[4]], '{"x":3,"y":2}': [g.nodes[4]], '{"x":4,"y":3}': [g.nodes[0], g.nodes[2], g.nodes[3]] } self.assertEquals(g.edges, expected)
def test_nodes_generation(self): graphWidth = 5 graphHeight = 5 nodesNumber = 5 g = graph.graph() g.generateNodes( nodesNumber, graphWidth, graphHeight, lambda: {'owned_by': None} ) self.assertEquals(len(g.nodes), nodesNumber) nbNone = 0 nbNodes = 0 for row in g.nodesGrid: for node in row: if node is None: nbNone += 1 else: self.assertEquals(node, {'owned_by': None}) nbNodes += 1 self.assertEquals(nbNone, graphWidth * graphHeight - nodesNumber) self.assertEquals(nbNodes, nodesNumber)
def test_generate_edges_5_nodes(self): g = graph.graph() g.nodes = [ OrderedDict([('x', 0), ('y', 4)]), OrderedDict([('x', 1), ('y', 1)]), OrderedDict([('x', 3), ('y', 0)]), OrderedDict([('x', 3), ('y', 2)]), OrderedDict([('x', 4), ('y', 3)]) ] g.nodesGrid = [[None, None, None, { 'owned_by': None }, None], [None, { 'owned_by': None }, None, None, None], [None, None, None, { 'owned_by': None }, None], [None, None, None, None, { 'owned_by': None }], [{ 'owned_by': None }, None, None, None, None]] g.generateEdges() expected = { '{"x":0,"y":4}': [g.nodes[1], g.nodes[2], g.nodes[4]], '{"x":1,"y":1}': [g.nodes[0], g.nodes[2]], '{"x":3,"y":0}': [g.nodes[0], g.nodes[1], g.nodes[4]], '{"x":3,"y":2}': [g.nodes[4]], '{"x":4,"y":3}': [g.nodes[0], g.nodes[2], g.nodes[3]] } self.assertEquals(g.edges, expected)
def test_getNode(self): g = graph.graph() g.nodes = [ OrderedDict([('x', 0), ('y', 4)]), OrderedDict([('x', 1), ('y', 1)]), OrderedDict([('x', 2), ('y', 3)]), OrderedDict([('x', 3), ('y', 2)]), OrderedDict([('x', 4), ('y', 0)]) ] g.nodesGrid = [[None, None, None, None, { 'owned_by': None }], [None, { 'owned_by': None }, None, None, None], [None, None, None, { 'owned_by': None }, None], [None, None, { 'owned_by': None }, None, None], [{ 'owned_by': None }, None, None, None, None]] self.assertEquals(g.getNode(2, 3), {'owned_by': None}) self.assertEquals(g.getNode(0, 0), None) with self.assertRaises(IndexError): g.getNode(7, 3)
def draw_figures(game, user_id, agent_name): if game.study_name == 'beerGame': for agent in game.simulation.agents: game.data = game.data.append( pd.DataFrame(agent.collect_data(game.simulation.now), columns=game.data_columns) ) if game.simulation.now == 21: beer_game_graph(game.data, PATH, user_id) else: for agent in game.simulation.agents: game.data = game.data.append( pd.DataFrame(agent.collect_data(game.simulation.now), columns=game.data_columns)) if agent.agent_type == "hc": append_data_for_health_center_graph(game, agent) game.data.reset_index() print game.data.to_string() # if game.simulation.now > 9: # graph(game.data, PATH, user_id=user_id, agent=agent_name) graph(game.data[game.data['time'].isin(range(10, game.simulation.now + 1))], PATH, user_id=user_id, agent=agent_name)
def test_generate_edges_2_nodes(self): g = graph.graph() g.nodes = [ OrderedDict([('x', 0), ('y', 4)]), OrderedDict([('x', 1), ('y', 1)]) ] g.nodesGrid = [ [None, None, None, None, None], [None, {'owned_by': None}, None, None, None], [None, None, None, None, None], [None, None, None, None, None], [{'owned_by': None}, None, None, None, None] ] g.generateEdges() expected = { '{"x":1,"y":1}': [OrderedDict([('x', 0), ('y', 4)])], '{"x":0,"y":4}': [OrderedDict([('x', 1), ('y', 1)])] } self.assertEquals(g.edges, expected)
def test_getNode(self): g = graph.graph() g.nodes = [ OrderedDict([('x', 0), ('y', 4)]), OrderedDict([('x', 1), ('y', 1)]), OrderedDict([('x', 2), ('y', 3)]), OrderedDict([('x', 3), ('y', 2)]), OrderedDict([('x', 4), ('y', 0)]) ] g.nodesGrid = [ [None, None, None, None, {'owned_by': None}], [None, {'owned_by': None}, None, None, None], [None, None, None, {'owned_by': None}, None], [None, None, {'owned_by': None}, None, None], [{'owned_by': None}, None, None, None, None] ] self.assertEquals(g.getNode(2, 3), {'owned_by': None}) self.assertEquals(g.getNode(0, 0), None) with self.assertRaises(IndexError): g.getNode(7, 3)
def test_nodes_generation(self): graphWidth = 5 graphHeight = 5 nodesNumber = 5 g = graph.graph() g.generateNodes(nodesNumber, graphWidth, graphHeight, lambda: {'owned_by': None}) self.assertEquals(len(g.nodes), nodesNumber) nbNone = 0 nbNodes = 0 for row in g.nodesGrid: for node in row: if node is None: nbNone += 1 else: self.assertEquals(node, {'owned_by': None}) nbNodes += 1 self.assertEquals(nbNone, graphWidth * graphHeight - nodesNumber) self.assertEquals(nbNodes, nodesNumber)
def test_generate_edges_2_nodes(self): g = graph.graph() g.nodes = [ OrderedDict([('x', 0), ('y', 4)]), OrderedDict([('x', 1), ('y', 1)]) ] g.nodesGrid = [[None, None, None, None, None], [None, { 'owned_by': None }, None, None, None], [None, None, None, None, None], [None, None, None, None, None], [{ 'owned_by': None }, None, None, None, None]] g.generateEdges() expected = { '{"x":1,"y":1}': [OrderedDict([('x', 0), ('y', 4)])], '{"x":0,"y":4}': [OrderedDict([('x', 1), ('y', 1)])] } self.assertEquals(g.edges, expected)