leaderboard / tests /test_utils.py
nan's picture
feat: fix the table updating
f30cbcc
import pandas as pd
import pytest
from utils import filter_models, search_table, filter_queries, select_columns, update_table_long_doc
@pytest.fixture
def toy_df():
return pd.DataFrame(
{
"Retrieval Model": [
"bge-m3",
"bge-m3",
"jina-embeddings-v2-base",
"jina-embeddings-v2-base"
],
"Reranking Model": [
"bge-reranker-v2-m3",
"NoReranker",
"bge-reranker-v2-m3",
"NoReranker"
],
"Average ⬆️": [0.6, 0.4, 0.3, 0.2],
"wiki_en": [0.8, 0.7, 0.2, 0.1],
"wiki_zh": [0.4, 0.1, 0.4, 0.3],
"news_en": [0.8, 0.7, 0.2, 0.1],
"news_zh": [0.4, 0.1, 0.4, 0.3],
}
)
@pytest.fixture
def toy_df_long_doc():
return pd.DataFrame(
{
"Retrieval Model": [
"bge-m3",
"bge-m3",
"jina-embeddings-v2-base",
"jina-embeddings-v2-base"
],
"Reranking Model": [
"bge-reranker-v2-m3",
"NoReranker",
"bge-reranker-v2-m3",
"NoReranker"
],
"Average ⬆️": [0.6, 0.4, 0.3, 0.2],
"law_en_lex_files_300k_400k": [0.4, 0.1, 0.4, 0.3],
"law_en_lex_files_400k_500k": [0.8, 0.7, 0.2, 0.1],
"law_en_lex_files_500k_600k": [0.8, 0.7, 0.2, 0.1],
"law_en_lex_files_600k_700k": [0.4, 0.1, 0.4, 0.3],
}
)
def test_filter_models(toy_df):
df_result = filter_models(toy_df, ["bge-reranker-v2-m3", ])
assert len(df_result) == 2
assert df_result.iloc[0]["Reranking Model"] == "bge-reranker-v2-m3"
def test_search_table(toy_df):
df_result = search_table(toy_df, "jina")
assert len(df_result) == 2
assert df_result.iloc[0]["Retrieval Model"] == "jina-embeddings-v2-base"
def test_filter_queries(toy_df):
df_result = filter_queries("jina", toy_df)
assert len(df_result) == 2
assert df_result.iloc[0]["Retrieval Model"] == "jina-embeddings-v2-base"
def test_select_columns(toy_df):
df_result = select_columns(toy_df, ['news',], ['zh',])
assert len(df_result.columns) == 4
assert df_result['Average ⬆️'].equals(df_result['news_zh'])
def test_update_table_long_doc(toy_df_long_doc):
df_result = update_table_long_doc(toy_df_long_doc, ['law',], ['en',], ["bge-reranker-v2-m3", ], "jina")
print(df_result)