Cai
2026-08-16 7285798f1a8033d6987ed7d3f6bda7c1ecc469b2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
from __future__ import annotations
 
import sys
import unittest
from pathlib import Path
 
 
TEST_DIR = Path(__file__).resolve().parent
if str(TEST_DIR) not in sys.path:
    sys.path.insert(0, str(TEST_DIR))
 
import validate_transcription_acceptance as validator
 
 
class AcceptanceValidatorTests(unittest.TestCase):
    def test_segment_contract_matches_txt_srt_and_json(self) -> None:
        segments = [
            {"start": 1.25, "end": 2.5, "text": "第一段"},
            {"start": 3.0, "end": 4.0, "text": "第二段"},
        ]
        srt = [
            {"index": 1, "start": 1.25, "end": 2.5, "text": "第一段"},
            {"index": 2, "start": 3.0, "end": 4.0, "text": "第二段"},
        ]
 
        evidence = validator._segment_checks(
            segments, srt, ["第一段", "第二段"], 10.0
        )
 
        self.assertTrue(evidence["pass"])
        self.assertEqual(evidence["exact_duplicate_segment_indices"], [])
 
    def test_all_four_hour_boundaries_are_emitted_for_manual_review(self) -> None:
        segments = [
            {"start": float(boundary - 2), "end": float(boundary + 2), "text": str(boundary)}
            for boundary in range(1200, 14400, 1200)
        ]
 
        boundaries = validator._boundary_checks(
            segments, 14400.0, manual_pass=False, reviewer=None
        )
 
        self.assertEqual(
            [item["boundary_seconds"] for item in boundaries],
            list(range(1200, 14400, 1200)),
        )
        self.assertTrue(
            all(item["automatic_no_exact_duplicates"] for item in boundaries)
        )
        self.assertTrue(
            all(item["manual_readability_pass"] is False for item in boundaries)
        )
 
 
if __name__ == "__main__":
    unittest.main()