#!/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)