Esempio n. 1
0
def test_output_list_sum_to_one():
    v = random.randint(2, 10)
    verts = [rand_str() for _ in range(v)]
    graph = MagicMock(vertices=[Vertex(v) for v in verts])
    ws = np.random.rand(v)
    scores = [x[1] for x in text_rank_output_list(graph, ws)]
    assert math.isclose(sum(scores), 1)
Esempio n. 2
0
def test_vertex_equal_match_same_object():
    label = rand_str()
    edges_in = {
        random.randint(0, 100): random.random()
        for _ in range(random.randint(0, 10))
    }
    edges_out = {
        random.randint(0, 100): random.random()
        for _ in range(random.randint(0, 10))
    }
    v1 = Vertex(label)
    v1._edges_out = edges_out
    v1._edges_in = edges_in

    v2 = v1

    assert v1 == v2
Esempio n. 3
0
def test_add_vertex_list():
    verts = [rand_str() for _ in range(random.randint(1, 10))]
    graph = AdjacencyList(verts)
    gold_position = len(verts)
    graph._add_vertex = MagicMock(return_value=gold_position)
    gold_label = rand_str()
    idx = graph.add_vertex(gold_label)
    graph._add_vertex.assert_called_once_with(gold_label)
    assert idx == gold_position
    assert graph.vertices[gold_position] == Vertex(gold_label)
Esempio n. 4
0
def test_output_list():
    v = random.randint(2, 10)
    verts = [rand_str() for _ in range(v)]
    graph = MagicMock(vertices=[Vertex(v) for v in verts])
    ws = np.random.rand(v)
    gold_labels = [verts[i] for i in np.argsort(ws)[::-1]]
    gold_score = np.sort(ws)[::-1]
    gold_score = gold_score / np.sum(gold_score)
    res = text_rank_output_list(graph, ws)
    for gl, gs, (l, s) in zip(gold_labels, gold_score, res):
        assert l == gl
        assert math.isclose(s, gs)
Esempio n. 5
0
def test_vertex_equal_mismatch_values():
    label = label2 = rand_str()
    while label2 == label:
        label2 = rand_str()
    edges_in = {
        random.randint(0, 100): random.random()
        for _ in range(random.randint(0, 10))
    }
    edges_out = {
        random.randint(0, 100): random.random()
        for _ in range(random.randint(0, 10))
    }
    v1 = Vertex(label)
    v1._edges_out = edges_out
    v1._edges_in = edges_in

    v2 = Vertex(label2)
    v2._edges_out = edges_out
    v2._edges_in = edges_in

    assert v1 != v2
Esempio n. 6
0
def test_edge_count_list():
    graph = AdjacencyList({})
    gold = random.randint(10, 100)
    verts = random.randint(15, 30)
    vertices = [Vertex(str(i)) for i in range(verts)]
    for _ in range(gold):
        added = False
        while not added:
            src, tgt = np.random.randint(0, verts, size=(2, ))
            if src == tgt:
                continue
            src_vert = vertices[src]
            tgt_vert = vertices[tgt]
            if src not in tgt_vert.edges_in and tgt not in src_vert.edges_out:
                src_vert.edges_out[tgt] = 1
                tgt_vert.edges_in[src] = 1
                added = True
    graph._vertices = vertices
    assert graph.edge_count == gold
Esempio n. 7
0
def test_vertex_equal_mismatch_edges_out():
    label = rand_str()
    edges_in = {
        random.randint(0, 100): random.random()
        for _ in range(random.randint(0, 10))
    }
    edges_out = edges_out2 = {
        random.randint(0, 100): random.random()
        for _ in range(random.randint(0, 10))
    }
    while edges_out2 == edges_out:
        edges_out2 = {
            random.randint(0, 100): random.random()
            for _ in range(random.randint(0, 100))
        }
    v1 = Vertex(label)
    v1._edges_out = edges_out
    v1._edges_in = edges_in

    v2 = Vertex(label)
    v2._edges_out = edges_out2
    v2._edges_in = edges_in

    assert v1 != v2
Esempio n. 8
0
def test_vertex_degree_out():
    v = Vertex(None)
    gold = random.randint(0, 100)
    for i in range(gold):
        v._edges_out[i] = None
    assert v.degree_out == gold