Files
three-body-problem/simple_test.py
dison0331-ThinkPad 8c8ad9fe07 first
pc-1
2026-03-11 21:32:58 +08:00

81 lines
2.6 KiB
Python

#!/usr/bin/env python3
"""
简单测试三体问题求解器
"""
import sys
import os
# 添加当前目录到路径
current_dir = os.path.dirname(os.path.abspath(__file__))
sys.path.insert(0, current_dir)
print("三体问题求解器 - 简单测试")
print("=" * 60)
try:
# 尝试导入
print("1. 导入模块...")
from three_body_problem.particle import Particle
from three_body_problem.config import ThreeBodyConfig
print(" ✓ 导入成功")
# 测试创建质点
print("\n2. 测试质点创建...")
p = Particle(mass=1.0, position=[1.0, 2.0, 3.0], velocity=[0.1, 0.2, 0.3], name="Test")
print(f" 名称: {p.name}")
print(f" 质量: {p.mass}")
print(f" 位置: {p.position}")
print(f" 速度: {p.velocity}")
print(" ✓ 质点创建成功")
# 测试能量计算
energy = p.get_energy()
print(f" 动能: {energy:.6f}")
print(" ✓ 能量计算成功")
# 测试更新
print("\n3. 测试质点更新...")
p.update([2.0, 3.0, 4.0], [0.2, 0.3, 0.4])
print(f" 新位置: {p.position}")
print(f" 新速度: {p.velocity}")
print(f" 历史记录: {len(p.position_history)} 个位置点")
print(" ✓ 质点更新成功")
# 测试配置创建
print("\n4. 测试配置创建...")
particles = ThreeBodyConfig.create_figure8_config()
print(f" 创建了 {len(particles)} 个质点")
for i, particle in enumerate(particles):
print(f" 质点{i+1}: {particle.name}, 质量: {particle.mass:.3f}")
print(" ✓ 配置创建成功")
# 测试随机配置
print("\n5. 测试随机配置...")
random_particles = ThreeBodyConfig.create_random_config()
print(f" 创建了 {len(random_particles)} 个随机质点")
total_mass = sum(p.mass for p in random_particles)
print(f" 总质量: {total_mass:.3f}")
print(" ✓ 随机配置成功")
print("\n" + "=" * 60)
print("所有基本测试通过!")
print("=" * 60)
# 显示下一步操作
print("\n下一步:")
print("1. 安装依赖: pip install numpy matplotlib")
print("2. 运行完整测试: python three_body_problem/tests/test_solver.py")
print("3. 运行示例: python three_body_problem/run_example.py")
print("4. 查看文档: 阅读 three_body_problem/README.md")
except ImportError as e:
print(f"\n✗ 导入错误: {e}")
print("\n请确保:")
print("1. 在项目根目录运行此测试")
print("2. 安装了必要的依赖: pip install numpy matplotlib")
except Exception as e:
print(f"\n✗ 测试错误: {e}")
import traceback
traceback.print_exc()