| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- #!/usr/bin/env python3
- # -*- coding: utf-8 -*-
- """
- 测试时间解析功能
- """
- import sys
- sys.path.append('.')
- from video_segment_extractor import parse_time_to_seconds
- def test_time_parser():
- """测试时间解析函数"""
- test_cases = [
- ("30", 30.0),
- ("30.5", 30.5),
- ("1:30", 90.0),
- ("1:30.5", 90.5),
- ("0:1:30", 90.0),
- ("1:23:45", 5025.0),
- ("2:0:0", 7200.0)
- ]
-
- print("测试时间解析功能...")
- print("=" * 50)
-
- all_passed = True
-
- for time_str, expected in test_cases:
- try:
- result = parse_time_to_seconds(time_str)
- if abs(result - expected) < 0.001: # 浮点数比较
- status = "✅ PASS"
- else:
- status = "❌ FAIL"
- all_passed = False
-
- print(f"{time_str:>8} -> {result:>8.1f}s (期望: {expected:>8.1f}s) {status}")
-
- except Exception as e:
- print(f"{time_str:>8} -> ERROR: {e} ❌ FAIL")
- all_passed = False
-
- print("=" * 50)
-
- # 测试错误情况
- print("\n测试错误处理...")
- error_cases = [
- "abc",
- "1:2:3:4",
- "-10",
- "1:-30"
- ]
-
- for time_str in error_cases:
- try:
- result = parse_time_to_seconds(time_str)
- print(f"{time_str:>8} -> {result:>8.1f}s ❌ FAIL (应该报错)")
- all_passed = False
- except Exception as e:
- print(f"{time_str:>8} -> ERROR: {str(e)[:30]}... ✅ PASS")
-
- print("=" * 50)
-
- if all_passed:
- print("\n🎉 所有测试通过!")
- return True
- else:
- print("\n❌ 部分测试失败!")
- return False
- if __name__ == "__main__":
- success = test_time_parser()
- sys.exit(0 if success else 1)
|