Esempio n. 1
0
    def test_remove_diagonals(self):
        tg = nx.Graph()
        tg.add_nodes_from([
                ((0, 0), {'value': 0,
                          'corners': set([(0, 0), (0, 1), (1, 0), (1, 1)])}),
                ((0, 1), {'value': 0,
                          'corners': set([(0, 1), (0, 2), (1, 1), (1, 2)])}),
                ((0, 2), {'value': 0,
                          'corners': set([(0, 2), (0, 3), (1, 2), (1, 3)])}),
                ((1, 0), {'value': 0,
                          'corners': set([(1, 0), (1, 1), (2, 0), (2, 1)])}),
                ((1, 1), {'value': 1,
                          'corners': set([(1, 1), (1, 2), (2, 1), (2, 2)])}),
                ((1, 2), {'value': 0,
                          'corners': set([(1, 2), (1, 3), (2, 2), (2, 3)])}),
                ((2, 0), {'value': 0,
                          'corners': set([(2, 0), (2, 1), (3, 0), (3, 1)])}),
                ((2, 1), {'value': 0,
                          'corners': set([(2, 1), (2, 2), (3, 1), (3, 2)])}),
                ((2, 2), {'value': 1,
                          'corners': set([(2, 2), (2, 3), (3, 2), (3, 3)])}),
                ((3, 0), {'value': 0,
                          'corners': set([(3, 0), (3, 1), (4, 0), (4, 1)])}),
                ((3, 1), {'value': 0,
                          'corners': set([(3, 1), (3, 2), (4, 1), (4, 2)])}),
                ((3, 2), {'value': 1,
                          'corners': set([(3, 2), (3, 3), (4, 2), (4, 3)])}),
                ])
        tg.add_edges_from([
                ((0, 0), (1, 0), {'diagonal': False}),
                ((0, 1), (0, 0), {'diagonal': False}),
                ((0, 1), (0, 2), {'diagonal': False}),
                ((0, 1), (1, 0), {'diagonal': True}),
                ((0, 1), (1, 2), {'diagonal': True}),
                ((1, 1), (2, 2), {'diagonal': True}),
                ((1, 2), (0, 2), {'diagonal': False}),
                # ((1, 2), (2, 1), {'diagonal': True}),
                ((2, 0), (1, 0), {'diagonal': False}),
                ((2, 1), (1, 0), {'diagonal': True}),
                ((2, 1), (2, 0), {'diagonal': False}),
                ((3, 0), (2, 0), {'diagonal': False}),
                # ((3, 0), (2, 1), {'diagonal': True}),
                ((3, 0), (3, 1), {'diagonal': False}),
                # ((3, 1), (2, 0), {'diagonal': True}),
                ((3, 1), (2, 1), {'diagonal': False}),
                ((3, 2), (2, 2), {'diagonal': False}),
                ])

        pd = PixelData(mkpixels(ISLAND))
        pd.make_pixel_graph()
        pd.remove_diagonals()
        self.assertEqual(sorted(tg.nodes(data=True)),
                         sorted(pd.pixel_graph.nodes(data=True)))
        self.assertEqual(sort_edges(tg.edges(data=True)),
                         sort_edges(pd.pixel_graph.edges(data=True)))
Esempio n. 2
0
    def test_pixel_graph(self):
        tg = nx.Graph()
        tg.add_nodes_from(
            [
                ((0, 0), {"value": 1, "corners": set([(0, 0), (0, 1), (1, 0), (1, 1)])}),
                ((0, 1), {"value": 1, "corners": set([(0, 1), (0, 2), (1, 1), (1, 2)])}),
                ((0, 2), {"value": 1, "corners": set([(0, 2), (0, 3), (1, 2), (1, 3)])}),
                ((1, 0), {"value": 1, "corners": set([(1, 0), (1, 1), (2, 0), (2, 1)])}),
                ((1, 1), {"value": 0, "corners": set([(1, 1), (1, 2), (2, 1), (2, 2)])}),
                ((1, 2), {"value": 1, "corners": set([(1, 2), (1, 3), (2, 2), (2, 3)])}),
                ((2, 0), {"value": 1, "corners": set([(2, 0), (2, 1), (3, 0), (3, 1)])}),
                ((2, 1), {"value": 1, "corners": set([(2, 1), (2, 2), (3, 1), (3, 2)])}),
                ((2, 2), {"value": 0, "corners": set([(2, 2), (2, 3), (3, 2), (3, 3)])}),
                ((3, 0), {"value": 1, "corners": set([(3, 0), (3, 1), (4, 0), (4, 1)])}),
                ((3, 1), {"value": 1, "corners": set([(3, 1), (3, 2), (4, 1), (4, 2)])}),
                ((3, 2), {"value": 0, "corners": set([(3, 2), (3, 3), (4, 2), (4, 3)])}),
            ]
        )
        tg.add_edges_from(
            [
                ((0, 0), (1, 0), {"diagonal": False}),
                ((0, 1), (0, 0), {"diagonal": False}),
                ((0, 1), (0, 2), {"diagonal": False}),
                ((0, 1), (1, 0), {"diagonal": True}),
                ((0, 1), (1, 2), {"diagonal": True}),
                ((1, 1), (2, 2), {"diagonal": True}),
                ((1, 2), (0, 2), {"diagonal": False}),
                ((1, 2), (2, 1), {"diagonal": True}),
                ((2, 0), (1, 0), {"diagonal": False}),
                ((2, 1), (1, 0), {"diagonal": True}),
                ((2, 1), (2, 0), {"diagonal": False}),
                ((3, 0), (2, 0), {"diagonal": False}),
                ((3, 0), (2, 1), {"diagonal": True}),
                ((3, 0), (3, 1), {"diagonal": False}),
                ((3, 1), (2, 0), {"diagonal": True}),
                ((3, 1), (2, 1), {"diagonal": False}),
                ((3, 2), (2, 2), {"diagonal": False}),
            ]
        )

        pd = PixelData(mkpixels(ISLAND))
        pd.make_pixel_graph()
        self.assertEqual(sorted(tg.nodes(data=True)), sorted(pd.pixel_graph.nodes(data=True)))
        self.assertEqual(sort_edges(tg.edges(data=True)), sort_edges(pd.pixel_graph.edges(data=True)))
Esempio n. 3
0
    def test_remove_diagonals(self):
        tg = nx.Graph()
        tg.add_nodes_from([
            ((0, 0), {
                'value': 1,
                'corners': set([(0, 0), (0, 1), (1, 0), (1, 1)])
            }),
            ((0, 1), {
                'value': 1,
                'corners': set([(0, 1), (0, 2), (1, 1), (1, 2)])
            }),
            ((0, 2), {
                'value': 1,
                'corners': set([(0, 2), (0, 3), (1, 2), (1, 3)])
            }),
            ((1, 0), {
                'value': 1,
                'corners': set([(1, 0), (1, 1), (2, 0), (2, 1)])
            }),
            ((1, 1), {
                'value': 0,
                'corners': set([(1, 1), (1, 2), (2, 1), (2, 2)])
            }),
            ((1, 2), {
                'value': 1,
                'corners': set([(1, 2), (1, 3), (2, 2), (2, 3)])
            }),
            ((2, 0), {
                'value': 1,
                'corners': set([(2, 0), (2, 1), (3, 0), (3, 1)])
            }),
            ((2, 1), {
                'value': 1,
                'corners': set([(2, 1), (2, 2), (3, 1), (3, 2)])
            }),
            ((2, 2), {
                'value': 0,
                'corners': set([(2, 2), (2, 3), (3, 2), (3, 3)])
            }),
            ((3, 0), {
                'value': 1,
                'corners': set([(3, 0), (3, 1), (4, 0), (4, 1)])
            }),
            ((3, 1), {
                'value': 1,
                'corners': set([(3, 1), (3, 2), (4, 1), (4, 2)])
            }),
            ((3, 2), {
                'value': 0,
                'corners': set([(3, 2), (3, 3), (4, 2), (4, 3)])
            }),
        ])
        tg.add_edges_from([
            ((0, 0), (1, 0), {
                'diagonal': False
            }),
            ((0, 1), (0, 0), {
                'diagonal': False
            }),
            ((0, 1), (0, 2), {
                'diagonal': False
            }),
            ((0, 1), (1, 0), {
                'diagonal': True
            }),
            ((0, 1), (1, 2), {
                'diagonal': True
            }),
            ((1, 1), (2, 2), {
                'diagonal': True
            }),
            ((1, 2), (0, 2), {
                'diagonal': False
            }),
            # ((1, 2), (2, 1), {'diagonal': True}),
            ((2, 0), (1, 0), {
                'diagonal': False
            }),
            ((2, 1), (1, 0), {
                'diagonal': True
            }),
            ((2, 1), (2, 0), {
                'diagonal': False
            }),
            ((3, 0), (2, 0), {
                'diagonal': False
            }),
            # ((3, 0), (2, 1), {'diagonal': True}),
            ((3, 0), (3, 1), {
                'diagonal': False
            }),
            # ((3, 1), (2, 0), {'diagonal': True}),
            ((3, 1), (2, 1), {
                'diagonal': False
            }),
            ((3, 2), (2, 2), {
                'diagonal': False
            }),
        ])

        pd = PixelData(mkpixels(ISLAND))
        pd.make_pixel_graph()
        pd.remove_diagonals()
        self.assertEqual(sorted(tg.nodes(data=True)),
                         sorted(pd.pixel_graph.nodes(data=True)))
        self.assertEqual(sort_edges(tg.edges(data=True)),
                         sort_edges(pd.pixel_graph.edges(data=True)))
Esempio n. 4
0
 def get_heuristics(self, txt_data):
     pd = PixelData(mkpixels(txt_data))
     pd.make_pixel_graph()
     return IterativeFinalShapeHeuristics(pd.pixel_graph)
Esempio n. 5
0
 def get_heuristics(self, txt_data):
     pd = PixelData(mkpixels(txt_data))
     pd.make_pixel_graph()
     return FullyConnectedHeuristics(pd.pixel_graph)
Esempio n. 6
0
 def get_heuristics(self, txt_data):
     pd = PixelData(mkpixels(txt_data))
     pd.make_pixel_graph()
     return IterativeFinalShapeHeuristics(pd.pixel_graph)
Esempio n. 7
0
 def get_heuristics(self, txt_data):
     pd = PixelData(mkpixels(txt_data))
     pd.make_pixel_graph()
     return FullyConnectedHeuristics(pd.pixel_graph)