|
import unittest |
|
from details_data_processor import DetailsDataProcessor |
|
import pandas as pd |
|
import requests |
|
import os |
|
|
|
class TestDetailsDataProcessor(unittest.TestCase): |
|
|
|
def setUp(self): |
|
self.processor = DetailsDataProcessor() |
|
|
|
|
|
def test_process_data(self): |
|
pass |
|
|
|
|
|
|
|
def test_download_file(self): |
|
DetailsDataProcessor.download_file('https://www.google.com', 'test_file_please_remove') |
|
self.assertTrue(os.path.exists('test.html')) |
|
os.remove('test.html') |
|
|
|
|
|
def test_download_file_queries(self): |
|
file_path_with_error = 'results/shaohang/Sparse0.5_OPT-1.3/results_2023-07-19T19:10:31.005235.json' |
|
url = self.processor.build_url(file_path_with_error) |
|
DetailsDataProcessor.download_file(url, 'test_file_please_remove') |
|
|
|
|
|
def test_download_file_details(self): |
|
file_path = 'results/v2ray/LLaMA-2-Wizard-70B-QLoRA/results_2023-08-18T07:09:43.451689.json' |
|
url = self.processor.build_url(file_path) |
|
DetailsDataProcessor.download_file(url, 'test_file_please_remove') |
|
|
|
|
|
def test_build_url(self): |
|
test_cases = [ |
|
('results/64bits/LexPodLM-13B/results_2023-07-25T13:41:51.227672.json', |
|
'https://huggingface.co/datasets/open-llm-leaderboard/details/resolve/main/64bits/LexPodLM-13B/details_harness%7ChendrycksTest-moral_scenarios%7C5_2023-07-25T13%3A41%3A51.227672.json'), |
|
('results/AlpinDale/pygmalion-instruct/results_2023-08-17T11:20:15.687659.json', |
|
'https://huggingface.co/datasets/open-llm-leaderboard/details/resolve/main/AlpinDale/pygmalion-instruct/details_harness%7ChendrycksTest-moral_scenarios%7C5_2023-08-17T11%3A20%3A15.687659.json') |
|
] |
|
|
|
for file_path, expected in test_cases: |
|
assert self.processor.build_url(file_path) == expected, f"Test failed for file_path: {file_path}" |
|
|
|
def test_pipeline(self): |
|
df = self.processor.pipeline() |
|
print(100 * "****") |
|
print(df) |
|
self.assertIsInstance(df, pd.DataFrame) |
|
|
|
def test_find_files(self): |
|
directory = 'results' |
|
pattern = 'results*.json' |
|
files = self.processor._find_files(directory, pattern) |
|
|
|
|
|
self.assertIsInstance(files, list) |
|
|
|
def test_build_url_harness_types(self): |
|
test_cases = [ |
|
('results/shaohang/Sparse0.5_OPT-1.3/results_2023-07-19T19:10:31.005235.json', 'details', |
|
'https://huggingface.co/datasets/open-llm-leaderboard/details/resolve/main/shaohang/Sparse0.5_OPT-1.3/details_harness%7ChendrycksTest-moral_scenarios%7C5_2023-07-19T19%3A10%3A31.005235.json'), |
|
('results/shaohang/Sparse0.5_OPT-1.3/results_2023-07-19T19:10:31.005235.json', 'queries', |
|
'https://huggingface.co/datasets/open-llm-leaderboard/details/resolve/main/shaohang/Sparse0.5_OPT-1.3/queries_harness%7ChendrycksTest-moral_scenarios%7C5_2023-07-19T19%3A10%3A31.005235.json') |
|
] |
|
|
|
for file_path, harness_type, expected in test_cases: |
|
self.assertEqual(self.processor.build_url(file_path, harness_type), expected, |
|
f"Test failed for file_path: {file_path}, harness_type: {harness_type}") |
|
|
|
def test_download_file_filename_format(self): |
|
url = "https://huggingface.co/datasets/open-llm-leaderboard/details/resolve/main/64bits/LexPodLM-13B/details_harness%7ChendrycksTest-moral_scenarios%7C5_2023-07-25T13%3A41%3A51.227672.json" |
|
directory = 'details_data' |
|
error_count, success_count = self.processor.download_file(url, directory) |
|
|
|
|
|
self.assertEqual(success_count, 1) |
|
self.assertEqual(error_count, 0) |
|
|
|
|
|
expected_file_name = "64bits_LexPodLM-13B_moral_scenarios.json" |
|
|
|
|
|
self.assertTrue(expected_file_name in os.listdir(directory), |
|
f"File with expected name {expected_file_name} not found in directory {directory}") |
|
|
|
if __name__ == '__main__': |
|
unittest.main() |