Spaces:
Running
Running
Download tests/test_query_data.py from juhaha1230/AI_Menu_Search: direct link, hf CLI and curl.
- Browser
- Download file 2.54 kB
-
https://huggingface.co/spaces/juhaha1230/AI_Menu_Search/resolve/main/tests/test_query_data.py
- Command line
-
hf download hf://spaces/juhaha1230/AI_Menu_Search/tests/test_query_data.py
-
curl -L -o test_query_data.py https://huggingface.co/spaces/juhaha1230/AI_Menu_Search/resolve/main/tests/test_query_data.py
2.54 kB
| import unittest | |
| from core.query_data import ( | |
| normalize_query_text, | |
| sanitize_description_queries, | |
| sanitize_query_rows, | |
| ) | |
| class QueryDataTests(unittest.TestCase): | |
| def test_normalization(self): | |
| self.assertEqual(normalize_query_text(" 잔고 조회? "), "잔고 조회") | |
| def test_conflicting_queries_are_dropped(self): | |
| rows = [ | |
| {"query": "잔고 조회", "menu_id": "SCR_1"}, | |
| {"query": "잔고 조회?", "menu_id": "SCR_2"}, | |
| {"query": "미체결 확인", "menu_id": "SCR_3"}, | |
| ] | |
| clean, stats = sanitize_query_rows(rows) | |
| self.assertEqual( | |
| clean, | |
| [{"query": "미체결 확인", "menu_id": "SCR_3"}], | |
| ) | |
| self.assertEqual(stats["conflicting"], 2) | |
| def test_held_out_and_duplicates_are_dropped(self): | |
| rows = [ | |
| {"query": "OTP 등록", "menu_id": "SCR_1"}, | |
| {"query": "OTP 등록", "menu_id": "SCR_1"}, | |
| {"query": "환전하기", "menu_id": "SCR_2"}, | |
| ] | |
| clean, stats = sanitize_query_rows( | |
| rows, | |
| excluded_queries={"환전하기"}, | |
| ) | |
| self.assertEqual(len(clean), 1) | |
| self.assertEqual(stats["duplicate"], 1) | |
| self.assertEqual(stats["held_out"], 1) | |
| def test_explicitly_shared_queries_are_retained_for_multiple_menus(self): | |
| rows = [ | |
| { | |
| "query": "내 계좌 보여줘", | |
| "menu_id": "SCR_1300", | |
| "allow_shared_query": True, | |
| }, | |
| { | |
| "query": "내 계좌 보여줘", | |
| "menu_id": "SCR_3075", | |
| "allow_shared_query": True, | |
| }, | |
| ] | |
| clean, stats = sanitize_query_rows(rows) | |
| self.assertEqual(len(clean), 2) | |
| self.assertEqual(stats["conflicting"], 0) | |
| self.assertEqual(stats["shared_conflicting_texts"], 1) | |
| def test_description_source_is_not_mutated(self): | |
| source = [ | |
| {"menu_id": "SCR_1", "sample_queries": ["잔고 조회", "OTP 등록"]}, | |
| {"menu_id": "SCR_2", "sample_queries": ["잔고 조회"]}, | |
| ] | |
| clean, stats = sanitize_description_queries(source) | |
| self.assertEqual(source[0]["sample_queries"], ["잔고 조회", "OTP 등록"]) | |
| self.assertEqual(clean[0]["sample_queries"], ["OTP 등록"]) | |
| self.assertEqual(clean[1]["sample_queries"], []) | |
| self.assertEqual(stats["removed_conflicting"], 2) | |
| if __name__ == "__main__": | |
| unittest.main() | |