Extraction du cœur autonomie de calculs.trans-former.fr (12 modules, sans singleton, couplages sans mutation, console derrière debug), découpage en trois moteurs d'axe + intégrateur (mode global = calculs, mode par_axe = plateforme), moteurs commun.contexte (Corse 2A/2B, DOM 97x corrigés) et commun.geometrie, table des coefficients harmonisés (docs/CONSTANTES.md pour Jules, R-7), validation structurelle des données (schemas/), tests hors ligne : 28 assertions d'origine + épingle générée depuis le code d'astro-pro + écarts d'harmonisation figés + contrat des moteurs. dist/ committé. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019UBHYPdeQYy2m1GVJp6b12
20 lines
826 B
JavaScript
20 lines
826 B
JavaScript
// calibrage.ts — helpers numériques du noyau.
|
|
//
|
|
// Origine : calculs/src/lib/autonomie/calibrage.js. Correction LOT P1.0 : le
|
|
// singleton `_config` (initConfig / getConfig) est retiré, la configuration
|
|
// passe en paramètre (Reglages) chez les cinq appelants. ORIENTATION_FACTORS et
|
|
// DJU_DEFAULTS_BY_ZONE vivent désormais dans commun/coefficients.ts (une seule
|
|
// définition, sourcée) ; ZONE_BIOGEO_MAP et zoneRtToClass dans commun/contexte.ts.
|
|
export { ZONE_BIOGEO_MAP, zoneRtToClass } from '../../commun/contexte.js';
|
|
export function clamp01(x) {
|
|
return Math.max(0, Math.min(1, x));
|
|
}
|
|
export function clamp(x, min, max) {
|
|
return Math.max(min, Math.min(max, x));
|
|
}
|
|
export function roundToStep(value, step) {
|
|
if (!step || step <= 0)
|
|
return value;
|
|
return Math.round(value / step) * step;
|
|
}
|