Building the 64 tiles of the Banc du Vigilant cost about 1.9 s through per-vertex cell_world_position/normal_at_cell calls, leaving the 3 s load budget with too little headroom (2.1-2.9 s measured, one 4.8 s outlier). TerrainHeightField now returns positions and normals of a cell block in one call, with normal_at_cell sharing the same formula; the tile build drops to about 0.5 s. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Test organization
unit/: domaine pur, sans scène ni I/O.integration/: assemblage Godot minimal et signaux.contract/: ressources, contenu, sauvegardes et migrations.fixtures/: données de référence versionnées et anonymes.
Les runners historiques à la racine de tests/ couvrent les POC. Les suites de
production devront être ajoutées à scripts/quality_gate.sh; créer un fichier
de test qui n'est jamais exécuté n'est pas une validation.
Suites de production actuelles :
unit/run_dive_foundation_tests.gd: règles résolues, ticks, ressources, pression, collisions, alertes et états terminaux ;unit/run_vehicle_application_tests.gd: validation et séquençage des commandes de pilotage et de caméra ;unit/run_sonar_application_tests.gd: buffer compact scellé, validation des captures, contacts séparés et temporalité de révélation/récupération ;integration/run_vertical_slice_foundation.gd: composition, mouvement inertiel, caméra indépendante, cockpit 3D fixe, instruments physiques, couche d'alerte, sonar bathymétrique partagé, pause des ticks et remappage avec conflit ;unit/run_site_domain_tests.gd: données de terrain, champ de hauteur, définition de site et ses placements/routes ;unit/run_site_application_tests.gd: règle de limites jouables ;unit/run_site_baker_tests.gd: primitives et déterminisme de la cuisson ;contract/run_site_content_tests.gd: règles de contenu du Banc du Vigilant (profondeurs, routes, amers) ;integration/run_site_terrain_integration.gd: collision égale au champ, matériaux sonar par cellule, scène de site et budget de chargement.