test(unit): 第70波 - 去重算法 + 字幕渲染 + TTS引擎纯逻辑 (+73) #868

Closed
xiaoxia wants to merge 3 commits from test/wave70-dedup-render-subtitles-tts-engine into develop
Owner

内容

  • dedup纯算法:hamming_distance汉明距离计算(8种)、VideoFingerprint数据结构+to_dict、_average_histogram_similarity余弦相似度(10种边界:空/正交/部分相似/多帧最佳匹配/零范数跳过/长度对齐)
  • render_subtitles:_hex_to_ass_color颜色BGR转换(8种)、_position_to_ass_alignment位置映射(5种)、_build_ass_style样式行构建(7种)、_escape_ass_text转义(5种)、_format_ass_time时间格式化(5种)、generate_ass_subtitles文件生成(12种场景)
  • tts_engine:VoiceoverSegment/VoiceoverResult数据结构、generate_full_voiceover边界(禁用/空文本/成功/TTS错误/异常/目录创建)、generate_subtitle_voiceover边界(禁用/空字幕/None)

测试结果

本地 pytest: 73 passed 全绿

### 内容 - **dedup纯算法**:hamming_distance汉明距离计算(8种)、VideoFingerprint数据结构+to_dict、_average_histogram_similarity余弦相似度(10种边界:空/正交/部分相似/多帧最佳匹配/零范数跳过/长度对齐) - **render_subtitles**:_hex_to_ass_color颜色BGR转换(8种)、_position_to_ass_alignment位置映射(5种)、_build_ass_style样式行构建(7种)、_escape_ass_text转义(5种)、_format_ass_time时间格式化(5种)、generate_ass_subtitles文件生成(12种场景) - **tts_engine**:VoiceoverSegment/VoiceoverResult数据结构、generate_full_voiceover边界(禁用/空文本/成功/TTS错误/异常/目录创建)、generate_subtitle_voiceover边界(禁用/空字幕/None) ### 测试结果 本地 pytest: **73 passed** 全绿
xiaoxia added 1 commit 2026-07-25 10:05:00 +08:00
test(unit): 第70波 - 去重算法 + 字幕渲染 + TTS引擎纯逻辑
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 59s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m1s
CI/CD Pipeline / Validate - Code Quality (pull_request) Failing after 2m11s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 29s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 45s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 55s
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 2m17s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 52s
Preview Deploy / Deploy Preview Environment (pull_request) Failing after 26s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m35s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 5m31s
CI/CD Pipeline / Unit Tests (pull_request) Failing after 2m0s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 2m8s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
AI Code Review / AI Code Review (pull_request) Successful in 9m1s
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
548fc9beb5
- dedup: hamming_distance汉明距离(8种场景) + VideoFingerprint数据结构 + _average_histogram_similarity直方图相似度(10种边界)
- render_subtitles: 颜色转换/位置映射/样式构建/文本转义/时间格式化 + generate_ass_subtitles文件生成(12种场景)
- tts_engine: VoiceoverSegment/VoiceoverResult数据结构 + generate_full_voiceover边界(7种) + generate_subtitle_voiceover边界(3种)
+73 tests 全绿
xiaoxia force-pushed test/wave70-dedup-render-subtitles-tts-engine from bbf4108e2f to 2a912f272e 2026-07-25 12:03:16 +08:00 Compare
xiaoxia added 1 commit 2026-07-25 12:03:58 +08:00
style: fix isort import order
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 9s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 49s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 55s
CI/CD Pipeline / Validate - Code Quality (pull_request) Failing after 1m23s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 41s
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 49s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 1m56s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 47s
Preview Deploy / Deploy Preview Environment (pull_request) Failing after 23s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 3m55s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m34s
CI/CD Pipeline / Unit Tests (pull_request) Failing after 2m20s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
AI Code Review / AI Code Review (pull_request) Successful in 7m12s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 3m32s
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
9dd2226eb6
xiaoxia force-pushed test/wave70-dedup-render-subtitles-tts-engine from 2a912f272e to 9dd2226eb6 2026-07-25 12:03:58 +08:00 Compare
Collaborator

代码审查结果 - PR #868

⚠️ 问题(2个需要修改)

  1. tests/unit/test_dedup_pure.py 第46行:测试名称与断言逻辑严重不符。测试函数名为test_four_bits_diff,文档字符串描述为“4个bit不同”,但代码中assert hamming_distance("0f", "f0") == 8验证的是8个bit均不同的情况(0x0F与0xF0按位异或结果为0xFF)。这种矛盾会误导代码维护者。
  2. tests/unit/test_dedup_pure.py 第51行:测试描述逻辑错误。hamming_distance("aa", "55")的实际结果是8(二进制1010101001010101每一位都不同),但测试名称为test_partial_difference(部分不同),注释中称“4 bits不同”,这与实际验证的“完全不同”逻辑相悖。

💡 建议(1个可选)

  1. tests/unit/test_render_subtitles_pure.py 第128行:建议在通过索引访问parts[18]时添加注释,明确指出该索引对应ASS格式规范中的Alignment字段。这有助于在格式变更或他人审查时快速理解硬编码数字的含义。

格式检查通过 | 逻辑审查需修改 | 性能无问题


🤖 由 AI 代码审查机器人自动生成 | 2026-07-25 04:15:43 | 模型:

## 代码审查结果 - PR #868 ### ⚠️ 问题(2个需要修改) 1. **tests/unit/test_dedup_pure.py 第46行**:测试名称与断言逻辑严重不符。测试函数名为`test_four_bits_diff`,文档字符串描述为“4个bit不同”,但代码中`assert hamming_distance("0f", "f0") == 8`验证的是8个bit均不同的情况(0x0F与0xF0按位异或结果为0xFF)。这种矛盾会误导代码维护者。 2. **tests/unit/test_dedup_pure.py 第51行**:测试描述逻辑错误。`hamming_distance("aa", "55")`的实际结果是8(二进制`10101010`与`01010101`每一位都不同),但测试名称为`test_partial_difference`(部分不同),注释中称“4 bits不同”,这与实际验证的“完全不同”逻辑相悖。 ### 💡 建议(1个可选) 1. **tests/unit/test_render_subtitles_pure.py 第128行**:建议在通过索引访问`parts[18]`时添加注释,明确指出该索引对应ASS格式规范中的`Alignment`字段。这有助于在格式变更或他人审查时快速理解硬编码数字的含义。 --- ✅ 格式检查通过 | ❌ 逻辑审查需修改 | ✅ 性能无问题 --- <sub>🤖 由 AI 代码审查机器人自动生成 | 2026-07-25 04:15:43 | 模型: </sub> <!-- AI_CODE_REVIEW_AUTO_COMMENT -->
xiaoxia added 1 commit 2026-07-25 12:52:08 +08:00
style: fix black formatting
AI Code Review / AI Code Review (pull_request) Failing after 0s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 8s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 1m22s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m29s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m29s
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 39s
Preview Deploy / Deploy Preview Environment (pull_request) Failing after 38s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 1m40s
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 4m34s
CI/CD Pipeline / Unit Tests (pull_request) Failing after 2m6s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 3m32s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 3m13s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m50s
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / Integration Tests (pull_request) Successful in 4m4s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 52s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Failing after 47s
cfdf7fcefa
xiaoxia closed this pull request 2026-07-25 14:18:31 +08:00

🗑️ 预览环境已清理

PR #868 已关闭或合并,对应的预览环境已被清理。

如有需要,可以重新打开 PR 来重新生成预览环境。

🗑️ **预览环境已清理** PR #868 已关闭或合并,对应的预览环境已被清理。 > 如有需要,可以重新打开 PR 来重新生成预览环境。
Some checks are pending
AI Code Review / AI Code Review (pull_request) Failing after 0s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 8s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 1m22s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m29s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m29s
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 39s
Preview Deploy / Deploy Preview Environment (pull_request) Failing after 38s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 1m40s
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 4m34s
CI/CD Pipeline / Unit Tests (pull_request) Failing after 2m6s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 3m32s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 3m13s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m50s
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / Integration Tests (pull_request) Successful in 4m4s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 52s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Failing after 47s

Pull request closed

Sign in to join this conversation.