示例#1
0
    def test_simple_graph(self):
        for input_type in [pd.DataFrame, SFrame, list]:
            g = SGraph()
            if input_type is list:
                vertices = [Vertex(x[1]['vid'], {'color': x[1]['color'], 'vec': x[1]['vec']}) for x in self.vertices.iterrows()]
                edges = [Edge(x[1]['src_id'], x[1]['dst_id'], {'weight': x[1]['weight']}) for x in self.edges.iterrows()]
                g = g.add_vertices(vertices)
                g = g.add_edges(edges)
            else:
                g = g.add_vertices(input_type(self.vertices), vid_field='vid')
                g = g.add_edges(input_type(self.edges), src_field='src_id', dst_field='dst_id')
            self.assertEqual(g.summary(), {'num_vertices': 4, 'num_edges': 3})
            self.assertItemsEqual(g.get_fields(), ['__id', '__src_id', '__dst_id', 'color', 'vec', 'weight'])
            self.assertItemsEqual(g.get_vertices(format='dataframe').columns.values, ['color', 'vec'])
            self.assertItemsEqual(g.get_edges(format='dataframe').columns.values, ['__src_id', '__dst_id', 'weight'])
            self.assertTrue(g.get_edges(format='dataframe').shape, (3, 3))
            self.assertTrue(g.get_vertices(format='dataframe').shape, (4, 3))
            self.assertTrue(g.get_vertices(format='dataframe', fields={'color': 'g'}).shape, (1, 2))
            self.assertTrue(g.get_edges(format='dataframe', fields={'weight': 0.}).shape, (1, 3))

            self.assertItemsEqual(g.get_vertices(format='sframe').column_names(), ['__id', 'color', 'vec'])
            self.assertItemsEqual(g.get_edges(format='sframe').column_names(), ['__src_id', '__dst_id', 'weight'])
            self.assertTrue(g.get_edges(format='sframe').shape, (3, 3))
            self.assertTrue(g.get_vertices(format='sframe').shape, (4, 3))
            self.assertTrue(g.get_vertices(format='sframe', fields={'color': 'g'}).shape, (1, 2))
            self.assertTrue(g.get_edges(format='sframe', fields={'weight': 0.}).shape, (1, 3))

            vertices = g.get_vertices(format='list')
            edges = g.get_edges(format='list')
            self.assertEqual(len(vertices), 4)
            self.assertEqual(len(edges), 3)

            # get edges is lazy
            edges = g.get_edges()
            self.assertFalse(edges.__is_materialized__())
示例#2
0
 def test_select_query(self):
     g = SGraph()
     g = g.add_vertices(self.vertices, 'vid').add_edges(self.edges, 'src_id', 'dst_id')
     g2 = g.select_fields(["color", "weight"])
     self.assertSequenceEqual((g2.get_fields()), ['__id', 'color', '__src_id', '__dst_id', 'weight'])
     g2 = g.select_fields(["color"])
     self.assertSequenceEqual((g2.get_fields()), ['__id', 'color', '__src_id', '__dst_id'])
     del g.edges['weight']
     del g.vertices['vec']
     g.vertices['color2'] = g.vertices['color']
     self.assertSequenceEqual((g.get_fields()), ['__id', 'color', 'color2', '__src_id', '__dst_id'])
     g2 = g.select_fields([])
     self.assertSequenceEqual((g2.get_fields()), ['__id', '__src_id', '__dst_id'])
示例#3
0
 def test_select_query(self):
     g = SGraph()
     g = g.add_vertices(self.vertices,
                        'vid').add_edges(self.edges, 'src_id', 'dst_id')
     g2 = g.select_fields(["color", "weight"])
     self.assertSequenceEqual(
         (g2.get_fields()),
         ['__id', 'color', '__src_id', '__dst_id', 'weight'])
     g2 = g.select_fields(["color"])
     self.assertSequenceEqual((g2.get_fields()),
                              ['__id', 'color', '__src_id', '__dst_id'])
     del g.edges['weight']
     del g.vertices['vec']
     g.vertices['color2'] = g.vertices['color']
     self.assertSequenceEqual(
         (g.get_fields()),
         ['__id', 'color', 'color2', '__src_id', '__dst_id'])
     g2 = g.select_fields([])
     self.assertSequenceEqual((g2.get_fields()),
                              ['__id', '__src_id', '__dst_id'])
示例#4
0
    def test_simple_graph(self):
        for input_type in [pd.DataFrame, SFrame, list]:
            g = SGraph()
            if input_type is list:
                vertices = [
                    Vertex(x[1]['vid'], {
                        'color': x[1]['color'],
                        'vec': x[1]['vec']
                    }) for x in self.vertices.iterrows()
                ]
                edges = [
                    Edge(x[1]['src_id'], x[1]['dst_id'],
                         {'weight': x[1]['weight']})
                    for x in self.edges.iterrows()
                ]
                g = g.add_vertices(vertices)
                g = g.add_edges(edges)
            else:
                g = g.add_vertices(input_type(self.vertices), vid_field='vid')
                g = g.add_edges(input_type(self.edges),
                                src_field='src_id',
                                dst_field='dst_id')
            self.assertEqual(g.summary(), {'num_vertices': 4, 'num_edges': 3})
            self.assertItemsEqual(
                g.get_fields(),
                ['__id', '__src_id', '__dst_id', 'color', 'vec', 'weight'])
            self.assertItemsEqual(
                g.get_vertices(format='dataframe').columns.values,
                ['color', 'vec'])
            self.assertItemsEqual(
                g.get_edges(format='dataframe').columns.values,
                ['__src_id', '__dst_id', 'weight'])
            self.assertTrue(g.get_edges(format='dataframe').shape, (3, 3))
            self.assertTrue(g.get_vertices(format='dataframe').shape, (4, 3))
            self.assertTrue(
                g.get_vertices(format='dataframe', fields={
                    'color': 'g'
                }).shape, (1, 2))
            self.assertTrue(
                g.get_edges(format='dataframe', fields={
                    'weight': 0.
                }).shape, (1, 3))

            self.assertItemsEqual(
                g.get_vertices(format='sframe').column_names(),
                ['__id', 'color', 'vec'])
            self.assertItemsEqual(
                g.get_edges(format='sframe').column_names(),
                ['__src_id', '__dst_id', 'weight'])
            self.assertTrue(g.get_edges(format='sframe').shape, (3, 3))
            self.assertTrue(g.get_vertices(format='sframe').shape, (4, 3))
            self.assertTrue(
                g.get_vertices(format='sframe', fields={
                    'color': 'g'
                }).shape, (1, 2))
            self.assertTrue(
                g.get_edges(format='sframe', fields={
                    'weight': 0.
                }).shape, (1, 3))

            vertices = g.get_vertices(format='list')
            edges = g.get_edges(format='list')
            self.assertEqual(len(vertices), 4)
            self.assertEqual(len(edges), 3)

            # get edges is lazy
            edges = g.get_edges()
            self.assertFalse(edges.__is_materialized__())