"""虎牙文本点选验证码 (dx_auth 填空/菜名/成语) 目标提取与提示图合成测试。""" from __future__ import annotations import cv2 import numpy as np from core.huya.verification.solver import HuyaVerificationSolver def test_extract_target_chars_from_dish_question() -> None: question = '请按照菜名"客家盐焗鸡"中汉字的顺序,在给定图片中点选对应的汉字' chars = HuyaVerificationSolver._extract_target_chars_from_question(question) assert chars == ["客", "家", "盐", "焗", "鸡"] def test_extract_target_chars_from_poem_cloze() -> None: question = '请按照古诗"千_鸟_绝"中汉字被挖空的顺序,在给定图片中点选对应的汉字以填充完整给定古诗' chars = HuyaVerificationSolver._extract_target_chars_from_question(question) assert chars == ["山", "飞"] def test_extract_target_chars_from_idiom_cloze() -> None: question = '请按照成语"_眸皓_"中汉字被挖空的顺序,在给定图片中点选对应的汉字以填充完整给定成语' chars = HuyaVerificationSolver._extract_target_chars_from_question(question) assert chars == ["明", "齿"] def test_synthesize_text_tip() -> None: chars = ["客", "家", "盐", "焗", "鸡"] img_bytes = HuyaVerificationSolver._synthesize_text_tip(chars) assert len(img_bytes) > 0 arr = np.frombuffer(img_bytes, np.uint8) img = cv2.imdecode(arr, cv2.IMREAD_COLOR) assert img is not None assert img.shape[0] == 44 assert img.shape[1] == 220