Example #1
0
	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)
Example #2
0
	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)
Example #3
0
    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)
Example #4
0
    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)
Example #5
0
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)
Example #6
0
	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)
Example #7
0
	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)
Example #8
0
    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)
Example #9
0
    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)