예제 #1
0
def test_inverted_index_can_dump_load_index(tmpdir):
    datapath = tmpdir.join("dataset.txt")
    datapath.write(DATASET_SMALL_STR)
    documents = load_documents(datapath)
    inverted_index = build_inverted_index(documents)
    tmp_fio = tmpdir.join('test.dump')
    inverted_index.dump(StructStoragePolicy(), tmp_fio)
    loaded_index = inverted_index.load(StructStoragePolicy(), tmp_fio)
    assert inverted_index._index == loaded_index._index, "File was not created"
예제 #2
0
def test_callback_query_list(tiny_dataset_fio, tmpdir, capsys, query, answer):
    documents = load_documents(tiny_dataset_fio)
    inverted_index = build_inverted_index(documents)
    tmp_fio = tmpdir.join('test.dump')
    inverted_index.dump(StructStoragePolicy(), tmp_fio)
    arguments = Namespace(query=query, index_path=tmp_fio)
    callback_query(arguments)
    captured = capsys.readouterr()
    if captured.out == "\n":
        query_ans = set()
    else:
        query_ans = set(int(var) for var in captured.out.rstrip().split(","))
    assert query_ans == answer, "Wrong answer"
예제 #3
0
def test_callback_query_utf8(tiny_dataset_fio, tmpdir, capsys, query, answer):
    documents = load_documents(tiny_dataset_fio)
    inverted_index = build_inverted_index(documents)
    tmp_fio = tmpdir.join('test.dump')
    inverted_index.dump(StructStoragePolicy(), tmp_fio)
    tmp_file = tmpdir.join('test.utf8')
    with open(tmp_file, "w", encoding="utf8") as file:
        file.write(" ".join(query) + "\n")
    arguments = Namespace(query=[],
                          query_file=open(tmp_file, "r", encoding="utf8"),
                          index_path=tmp_fio)
    callback_query(arguments)
    captured = capsys.readouterr()
    if captured.out == "\n":
        query_ans = set()
    else:
        query_ans = set(int(var) for var in captured.out.rstrip().split(","))
    assert query_ans == answer, "Wrong answer"
예제 #4
0
def test_can_run_build_index(tmpdir, dataset):
    datapath = tmpdir.join("dataset.txt")
    datapath.write(dataset)
    documents = load_documents(datapath)
    build_inverted_index(documents)
예제 #5
0
def test_inverted_index_can_dump_index(tiny_dataset_fio, tmpdir):
    documents = load_documents(tiny_dataset_fio)
    inverted_index = build_inverted_index(documents)
    tmp_fio = tmpdir.join('test.dump')
    inverted_index.dump(StructStoragePolicy(), tmp_fio)
    assert os.path.isfile(tmp_fio), "File was not created"
예제 #6
0
def test_query_return_right_answer(tiny_dataset_fio, query, answer):
    documents = load_documents(tiny_dataset_fio)
    inverted_index = build_inverted_index(documents)
    assert sorted(answer) == sorted(inverted_index.query(query))
예제 #7
0
def test_can_build_index_do_correct(tiny_dataset_fio):
    documents = load_documents(tiny_dataset_fio)
    inverted_index = build_inverted_index(documents)
    assert inverted_index._index == ETALON_TINY_INDEX, "Wrong build for inverted index"