diff --git a/__test__/CalculatorService.test.ts b/__test__/CalculatorService.test.ts new file mode 100644 index 0000000000000000000000000000000000000000..e30bc36f3b006fa1da4303a3d767ea884ef9b959 --- /dev/null +++ b/__test__/CalculatorService.test.ts @@ -0,0 +1,188 @@ +import age from '../src/Enum/AgeBracket'; +import sex from '../src/Enum/Sex'; +import '@testing-library/jest-dom/extend-expect'; +import CalculatorService from '../src/Services/CalculatorService'; +import ParameterDataBaseLoader from '../src/Loaders/ParameterDataBaseLoader'; + +describe('Verificar si funciona calculo del RE para menores de 1 año', () => { + it('Mujeres', async () => { + await ParameterDataBaseLoader.initParameterDataBase(); + expect(await CalculatorService.calculateEnergeticRequirement([{ + age: age.m3, + sex: sex.Female, + medianWeight: 6, + population: 9, + }], + { + minorPAL: { + lowPALPrevalence: 0, + moderatePALPrevalence: 100, + intensePALPrevalence: 0 + }, + adultPAL: { + urbanPercentage: 94.7, + activeUrbanPAL: 10, + lowUrbanPAL: 90, + ruralPercentage: 5.3, + activeRuralPAL: 50, + lowRuralPAL: 50, + }, + maternity18To29: { + countryBirthRate: 14, + countryWomenInAgeGroup: 315790, + countryPopulation: 3453691, + }, + maternity30To59: undefined, + })).toStrictEqual({ + groupsRequirements: [{ + group: { + age: age.m3 as string, + sex: sex.Female as string, + medianWeight: 6, + population: 9, + }, + perCapita: 473, + total: 4255, + }], + totalRequirement: { + perCapita: 473, + total: 4255, + totalPopulation: 9, + }}); + }); + it('Varones', async () => { + expect(await CalculatorService.calculateEnergeticRequirement([{ + age: age.m11, + sex: sex.Male, + medianWeight: 12, + population: 7, + }], + { + minorPAL: { + lowPALPrevalence: 0, + moderatePALPrevalence: 100, + intensePALPrevalence: 0 + }, + adultPAL: { + urbanPercentage: 94.7, + activeUrbanPAL: 10, + lowUrbanPAL: 90, + ruralPercentage: 5.3, + activeRuralPAL: 50, + lowRuralPAL: 50, + }, + maternity18To29: { + countryBirthRate: 14, + countryWomenInAgeGroup: 315790, + countryPopulation: 3453691, + }, + maternity30To59: undefined, + })).toStrictEqual({ + groupsRequirements: [{ + group: { + age: age.m11 as string, + sex: sex.Male as string, + medianWeight: 12, + population: 7, + }, + perCapita: 986, + total: 6901, + }], + totalRequirement: { + perCapita: 986, + total: 6901, + totalPopulation: 7, + }}); + }); +}); + +describe('Verificar si funciona calculo del RE para personas de 1 a 5 años', () => { + it('Mujeres', async () => { + expect(await CalculatorService.calculateEnergeticRequirement([{ + age: age.a5, + sex: sex.Female, + medianWeight: 23, + population: 6, + }], + { + minorPAL: { + lowPALPrevalence: 0, + moderatePALPrevalence: 100, + intensePALPrevalence: 0 + }, + adultPAL: { + urbanPercentage: 94.7, + activeUrbanPAL: 10, + lowUrbanPAL: 90, + ruralPercentage: 5.3, + activeRuralPAL: 50, + lowRuralPAL: 50, + }, + maternity18To29: { + countryBirthRate: 14, + countryWomenInAgeGroup: 315790, + countryPopulation: 3453691, + }, + maternity30To59: undefined, + })).toStrictEqual({ + groupsRequirements: [{ + group: { + age: age.a5 as string, + sex: sex.Female as string, + medianWeight: 23, + population: 6, + }, + perCapita: 1535, + total: 9211, + }], + totalRequirement: { + perCapita: 1535, + total: 9211, + totalPopulation: 6, + }}); + }); + it('Varones', async () => { + expect(await CalculatorService.calculateEnergeticRequirement([{ + age: age.a3, + sex: sex.Male, + medianWeight: 20, + population: 9, + }], + { + minorPAL: { + lowPALPrevalence: 0, + moderatePALPrevalence: 100, + intensePALPrevalence: 0 + }, + adultPAL: { + urbanPercentage: 94.7, + activeUrbanPAL: 10, + lowUrbanPAL: 90, + ruralPercentage: 5.3, + activeRuralPAL: 50, + lowRuralPAL: 50, + }, + maternity18To29: { + countryBirthRate: 14, + countryWomenInAgeGroup: 315790, + countryPopulation: 3453691, + }, + maternity30To59: undefined, + })).toStrictEqual({ + groupsRequirements: [{ + group: { + age: age.a3 as string, + sex: sex.Male as string, + medianWeight: 20, + population: 9, + }, + perCapita: 1483, + total: 13347, + }], + totalRequirement: { + perCapita: 1483, + total: 13347, + totalPopulation: 9, + }}); + }); +}); diff --git a/__test__/ERCalculator.test.ts b/__test__/ERCalculator.test.ts index 98d5f1dadddae160faa304ffd0281f2a8ac5018f..880714ae4c94ce5a32b1b8c38c2c90553ccde6ce 100644 --- a/__test__/ERCalculator.test.ts +++ b/__test__/ERCalculator.test.ts @@ -514,8 +514,8 @@ describe('Verificar si funciona calculo del RE para personas de 30 a 59 años', }); it('Mujeres sin pasar data de maternidad', () => { expect(() => { - ERCalculator.calculate30To59Years({ - age: age.a30_59, + ERCalculator.calculate18To29Years({ + age: age.a18_29, sex: sex.Female, medianWeight: 70, population: 10, @@ -534,7 +534,7 @@ describe('Verificar si funciona calculo del RE para personas de 30 a 59 años', maternity18To29: undefined, maternity30To59: undefined, }); - }).toThrow(Error('Missing maternity data for women aged 30 to 59')); + }).toThrow(Error('Missing maternity data for women aged 18 to 29')); }); it('Hombres sin pasar data de NAF', () => { expect(() => { diff --git a/__test__/ParameterService.test.ts b/__test__/ParameterService.test.ts index 50e712b210044ed5a936cb41c15cfa77e73b86b4..2497195024bb0f450c7860aa2dc39aa3c3438c49 100644 --- a/__test__/ParameterService.test.ts +++ b/__test__/ParameterService.test.ts @@ -16,7 +16,7 @@ describe('Verificar si devuelve los parametros correctamente', () => { expect((await ParameterService.getDefaultWeights()).length).toBe(64); }); it('Datos Extra', async () => { - expect((await ParameterService.getDefaultExtraData()).length).toBe(13); + expect((await ParameterService.getDefaultExtraData()).length).toBe(12); }); it('Constantes de ecuacion varones de 1 año', async () => { expect(new Set(await ParameterService.getEquationValues(AgeBracket.a1, Sex.Male)))