| import sys | |
| import os | |
| sys.path.append(os.getcwd()) | |
| from engine.grid import WorldGrid | |
| import numpy as np | |
| def test_grid(): | |
| print("Testing WorldGrid...") | |
| grid = WorldGrid(width=10, height=10, cell_size=10.0, sea_level=0.0) | |
| # Check initialization | |
| assert grid.elevation.shape == (10, 10) | |
| print("Initialization OK") | |
| # Check uplift | |
| grid.apply_uplift(1.0, dt=10.0) | |
| assert np.allclose(grid.bedrock, 10.0) | |
| assert np.allclose(grid.elevation, 10.0) | |
| print("Uplift OK") | |
| # Check sediment | |
| grid.add_sediment(np.full((10, 10), 5.0)) | |
| assert np.allclose(grid.sediment, 5.0) | |
| assert np.allclose(grid.elevation, 15.0) # 10 bedrock + 5 sediment | |
| print("Sediment OK") | |
| # Check gradient | |
| grid.elevation[0, 0] = 100.0 # High point | |
| slope, aspect = grid.get_gradient() | |
| print(f"Max Slope: {np.max(slope):.2f}") | |
| print("All WorldGrid tests passed!") | |
| if __name__ == "__main__": | |
| test_grid() | |