PhiRAG / test_filename_generation.py
alx-d's picture
Upload folder using huggingface_hub
f840733 verified
#!/usr/bin/env python3
"""
Test script to verify the new CSV filename generation functionality
"""
import sys
import os
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
from advanced_rag import get_short_embedding_name, get_short_llm_name, get_varied_parameter
def test_embedding_names():
"""Test embedding model name generation"""
test_cases = [
("πŸ€— sentence-transformers/all-MiniLM-L6-v2 (384 dim, fast)", "MiniLM"),
("πŸ€— BAAI/bge-base-en-v1.5 (768 dim, excellent)", "BGE-Base"),
("🟦 Qwen/Qwen3-Embedding-8B (1024 dim, advanced)", "Qwen3-8B"),
("sentence-transformers/all-mpnet-base-v2", "MPNet"),
("unknown-model", "unknown")
]
print("Testing embedding name generation:")
for input_name, expected in test_cases:
result = get_short_embedding_name(input_name)
status = "βœ“" if result == expected else "βœ—"
print(f" {status} {input_name} -> {result} (expected: {expected})")
def test_llm_names():
"""Test LLM model name generation"""
test_cases = [
("πŸ‡ͺπŸ‡Ί Mistral-API", "Mistral"),
("πŸ‡ΊπŸ‡Έ Remote Meta-Llama-3", "Llama3"),
("πŸ‡ΊπŸ‡Έ GPT-4o", "GPT4o"),
("mistral-small-latest", "Mistral"),
("meta-llama/Meta-Llama-3-8B-Instruct", "Llama3"),
("unknown-model", "unknown")
]
print("\nTesting LLM name generation:")
for input_name, expected in test_cases:
result = get_short_llm_name(input_name)
status = "βœ“" if result == expected else "βœ—"
print(f" {status} {input_name} -> {result} (expected: {expected})")
def test_varied_parameter():
"""Test varied parameter detection"""
test_cases = [
({"temperature": "Constant", "top_p": "Constant", "top_k": "Constant", "bm25": "Constant"}, "None"),
({"temperature": "Whole range 3 values", "top_p": "Constant", "top_k": "Constant", "bm25": "Constant"}, "temperature"),
({"temperature": "Constant", "top_p": "Whole range 5 values", "top_k": "Constant", "bm25": "Constant"}, "top_p"),
({"temperature": "Whole range 3 values", "top_p": "Whole range 5 values", "top_k": "Constant", "bm25": "Constant"}, "Multi"),
({"temperature": "Constant", "top_p": "Constant", "top_k": "Constant", "bm25": "Whole range 7 values"}, "bm25")
]
print("\nTesting varied parameter detection:")
for param_configs, expected in test_cases:
result = get_varied_parameter(param_configs)
status = "βœ“" if result == expected else "βœ—"
print(f" {status} {param_configs} -> {result} (expected: {expected})")
def test_filename_generation():
"""Test complete filename generation"""
from datetime import datetime
# Mock timestamp for consistent testing
timestamp = "20241201_120000"
test_cases = [
("πŸ€— sentence-transformers/all-MiniLM-L6-v2 (384 dim, fast)", "πŸ‡ͺπŸ‡Ί Mistral-API", "temperature", "batch_MiniLM_Mistral_temperature_20241201_120000.csv"),
("πŸ€— BAAI/bge-base-en-v1.5 (768 dim, excellent)", "πŸ‡ΊπŸ‡Έ Remote Meta-Llama-3", "top_p", "batch_BGE-Base_Llama3_top_p_20241201_120000.csv"),
("🟦 Qwen/Qwen3-Embedding-8B (1024 dim, advanced)", "πŸ‡ΊπŸ‡Έ GPT-4o", "Multi", "batch_Qwen3-8B_GPT4o_Multi_20241201_120000.csv"),
("", "", "None", "batch_Unknown_Unknown_None_20241201_120000.csv")
]
print("\nTesting complete filename generation:")
for embedding, llm, param, expected in test_cases:
short_embedding = get_short_embedding_name(embedding) if embedding else "Unknown"
short_llm = get_short_llm_name(llm) if llm else "Unknown"
short_param = param if param else "None"
filename = f"batch_{short_embedding}_{short_llm}_{short_param}_{timestamp}.csv"
status = "βœ“" if filename == expected else "βœ—"
print(f" {status} Generated: {filename}")
print(f" Expected: {expected}")
if __name__ == "__main__":
print("Testing CSV filename generation functionality\n")
test_embedding_names()
test_llm_names()
test_varied_parameter()
test_filename_generation()
print("\nTest completed!")