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)))
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)))
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)))
def get_heuristics(self, txt_data): pd = PixelData(mkpixels(txt_data)) pd.make_pixel_graph() return IterativeFinalShapeHeuristics(pd.pixel_graph)
def get_heuristics(self, txt_data): pd = PixelData(mkpixels(txt_data)) pd.make_pixel_graph() return FullyConnectedHeuristics(pd.pixel_graph)