import time
from timer import Timer, measure_time

# 示例1：基本用法
def basic_example():
    # 创建计时器实例
    timer = Timer()
    
    # 开始计时
    timer.start()
    
    # 模拟一些工作
    time.sleep(0.5)  # 休眠0.5秒
    
    # 停止计时
    timer.stop()
    
    # 输出结果
    print(f"基本用法 - 经过时间: {timer.elapsed_ms():.3f}ms")

# 示例2：使用上下文管理器
def context_manager_example():
    with Timer() as timer:
        # 模拟一些工作
        time.sleep(0.3)  # 休眠0.3秒
    
    print(f"上下文管理器 - 经过时间: {timer.elapsed_ms():.3f}ms")

# 示例3：使用装饰器
@measure_time
def decorated_function():
    # 模拟一些工作
    time.sleep(0.2)  # 休眠0.2秒
    return "完成"

# 示例4：多次测量
def multiple_measurements():
    timer = Timer()
    
    # 第一次测量
    timer.start()
    time.sleep(0.1)  # 休眠0.1秒
    timer.stop()
    print(f"第一次测量: {timer.elapsed_ms():.3f}ms")
    
    # 重置计时器
    timer.reset()
    
    # 第二次测量
    timer.start()
    time.sleep(0.15)  # 休眠0.15秒
    timer.stop()
    print(f"第二次测量: {timer.elapsed_ms():.3f}ms")

# 运行所有示例
def run_examples():
    print("===== 运行时间测量示例 =====")
    
    print("\n1. 基本用法")
    basic_example()
    
    print("\n2. 上下文管理器")
    context_manager_example()
    
    print("\n3. 装饰器")
    result = decorated_function()
    
    print("\n4. 多次测量")
    multiple_measurements()
    
    print("\n===== 示例结束 =====")

# 执行示例
if __name__ == "__main__":
    run_examples()