コード例 #1
0
    def test_graph_with_two_lines_share_tag(self):
        lines = ["2012-09-01 03:21:20,305 INFO  [MyThread9] foo\n",
                 "2012-09-01 03:22:20,305 INFO  [MyThread10] foo\n"]
        dt1 = datetime(year=2012, month=9, day=1, hour=3, minute=21, second=20, microsecond=305000)
        vertex1 = LogLineVertex(lines[0].rstrip(), ' foo', 0, 'MyThread9', dt1)
        dt2 = datetime(year=2012, month=9, day=1, hour=3, minute=22, second=20, microsecond=305000)
        vertex2 = LogLineVertex(lines[1].rstrip(), ' foo', 1, 'MyThread10', dt2)
        tag_map = {'foo' : [vertex1, vertex2]}
        id_map = {}

        # Make graph and check its structure
        graph = make_graph([vertex1, vertex2], tag_map, id_map, time_weighting)
        tag_vertex1 = TagVertex('foo', dt1)
        tag_vertex2 = TagVertex('foo', dt2)
        assert len(graph.nodes()) == 4
        assert_lists_equal(graph.nodes(), [vertex1, vertex2, tag_vertex1, tag_vertex2])
        edges = graph.edges(data=True)
        assert_lists_equal(edges,
                           [edge(vertex1, tag_vertex1, 0.5),
                            edge(tag_vertex1, vertex1, 0.5),
                            edge(vertex2, tag_vertex2, 0.5),
                            edge(tag_vertex2, vertex2, 0.5),
                            # Tag to tag edges
                            edge(tag_vertex1, tag_vertex2, 0.5),
                            edge(tag_vertex2, tag_vertex1, 0.5),
                            # Log line to log line edges
                            edge(vertex1, vertex2, 0.5, EdgeType.ADJACENT_NEXT),
                            edge(vertex2, vertex1, 0.5, EdgeType.ADJACENT_PREV)])
コード例 #2
0
    def test_graph_with_two_lines_share_id(self):
        lines = ["2012-09-01 03:21:20,305 INFO  [MyThread9] urn:9\n",
                 "2012-09-01 03:22:20,305 INFO  [MyThread10] urn:9\n"]
        dt1 = datetime(year=2012, month=9, day=1, hour=3, minute=21, second=20, microsecond=305000)
        vertex1 = LogLineVertex(lines[0].rstrip(), ' urn:9', 0, 'MyThread9', dt1)
        dt2 = datetime(year=2012, month=9, day=1, hour=3, minute=22, second=20, microsecond=305000)
        vertex2 = LogLineVertex(lines[1].rstrip(), ' urn:9', 1, 'MyThread10', dt2)
        tag_map = {}
        id_map = {'urn:9' : [vertex1, vertex2]}

        # Make graph and check its structure
        graph = make_graph([vertex1, vertex2], tag_map, id_map, time_weighting)
        id_vertex = UniqueIDVertex('urn:9')
        assert len(graph.nodes()) == 3
        assert_lists_equal(graph.nodes(), [vertex1, vertex2, id_vertex])
        edges = graph.edges(data=True)
        assert len(edges) == 6
        # The edge weights are normalized so that they sum to 1
        assert_lists_equal(edges,
                           [edge(vertex1, id_vertex, 0.5),
                            edge(id_vertex, vertex1, 0.5),
                            edge(vertex2, id_vertex, 0.5),
                            edge(id_vertex, vertex2, 0.5),
                            # Log line to log line edges
                            edge(vertex1, vertex2, 0.5, EdgeType.ADJACENT_NEXT),
                            edge(vertex2, vertex1, 0.5, EdgeType.ADJACENT_PREV)
                            ])
コード例 #3
0
    def test_graph_with_one_line(self):
        # One vertex
        lines = ["2012-09-01 03:21:20,305 INFO  [MyThread9] foo\n"]
        dt1 = datetime(year=2012, month=9, day=1, hour=3, minute=21, second=20, microsecond=305000)
        vertex = LogLineVertex(lines[0].rstrip(), ' foo', 0, 'MyThread9', dt1)
        tag_map = {'foo' : [vertex]}
        id_map = {}

        # Make graph and check its structure
        graph = make_graph([vertex], tag_map, id_map, time_weighting)
        tag_vertex = TagVertex('foo',  dt1)
        assert len(graph.nodes()) == 2
        assert_lists_equal(graph.nodes(), [vertex, tag_vertex])
        assert_lists_equal(graph.edges(data=True),
                           [edge(vertex, tag_vertex),
                            edge(tag_vertex, vertex)])