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_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)))