81 lines
2.6 KiB
Python
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() |