UNPKG

@open3cl/engine

Version:

Open Source 3CL-DPE engine

62 lines (57 loc) 2.82 kB
import { describe, expect, test } from 'vitest'; import { NadeqService } from './nadeq.service.js'; import { TypeDpe } from '../../../dpe/domain/models/type-habitation.model.js'; describe('Nadeq unit tests', () => { /** * @see : Methode_de_calcul_3CL_DPE_2021-338.pdf Page 70 */ const service = new NadeqService(); test.each([ { surfaceHabitable: 8, expectedNadeq: 1 }, { surfaceHabitable: 28, expectedNadeq: 1 }, { surfaceHabitable: 45, expectedNadeq: 1.28125 }, { surfaceHabitable: 51, expectedNadeq: 1.39375 }, { surfaceHabitable: 70, expectedNadeq: 1.75 }, { surfaceHabitable: 75, expectedNadeq: 1.7875 } ])( `Typologie MAISON : Nombre d'adultes équivalent $expectedNadeq pour une surface de logement $surfaceHabitable`, ({ expectedNadeq, surfaceHabitable }) => { expect(service.execute(TypeDpe.MAISON, surfaceHabitable)).toBe(expectedNadeq); } ); test.each([ { surfaceHabitable: 8, expectedNadeq: 1 }, { surfaceHabitable: 28, expectedNadeq: 1.3375 }, { surfaceHabitable: 45, expectedNadeq: 1.65625 }, { surfaceHabitable: 51, expectedNadeq: 1.7605 }, { surfaceHabitable: 70, expectedNadeq: 1.96 }, { surfaceHabitable: 75, expectedNadeq: 2.0125 } ])( `Typologie APPARTEMENT : Nombre d'adultes équivalent $expectedNadeq pour une surface de logement $surfaceHabitable`, ({ expectedNadeq, surfaceHabitable }) => { expect(service.execute(TypeDpe.APPARTEMENT, surfaceHabitable)).toBeCloseTo(expectedNadeq, 2); } ); test.each([ { surfaceHabitable: 8, expectedNadeq: 1, nombreAppartement: 1 }, { surfaceHabitable: 8, expectedNadeq: 2, nombreAppartement: 2 }, { surfaceHabitable: 28, expectedNadeq: 1.3375, nombreAppartement: 1 }, { surfaceHabitable: 28, expectedNadeq: 2.15, nombreAppartement: 2 }, { surfaceHabitable: 45, expectedNadeq: 1.65625, nombreAppartement: 1 }, { surfaceHabitable: 45, expectedNadeq: 2.46875, nombreAppartement: 2 }, { surfaceHabitable: 51, expectedNadeq: 1.7605, nombreAppartement: 1 }, { surfaceHabitable: 51, expectedNadeq: 2.58125, nombreAppartement: 2 }, { surfaceHabitable: 70, expectedNadeq: 1.96, nombreAppartement: 1 }, { surfaceHabitable: 70, expectedNadeq: 2.9375, nombreAppartement: 2 }, { surfaceHabitable: 75, expectedNadeq: 2.0125, nombreAppartement: 1 }, { surfaceHabitable: 75, expectedNadeq: 3.03125, nombreAppartement: 2 } ])( `Typologie IMMEUBLE : Nombre d'adultes équivalent $expectedNadeq pour une surface de logement $surfaceHabitable et un nombre d'apartement $nombreAppartement`, ({ expectedNadeq, surfaceHabitable, nombreAppartement }) => { expect(service.execute(TypeDpe.IMMEUBLE, surfaceHabitable, nombreAppartement)).toBeCloseTo( expectedNadeq, 2 ); } ); });