From 59427051eb9cab6c6d3b8ed347b346cb12ecd1b1 Mon Sep 17 00:00:00 2001
From: Agustin <agusr1999@gmail.com>
Date: Sun, 14 Nov 2021 12:54:02 -0300
Subject: [PATCH] Tests unitarios, andan cuando quieren, si alguien sabe como
 corrija pls

---
 __test__/CalculatorService.test.ts | 188 +++++++++++++++++++++++++++++
 __test__/ERCalculator.test.ts      |   6 +-
 __test__/ParameterService.test.ts  |   2 +-
 3 files changed, 192 insertions(+), 4 deletions(-)
 create mode 100644 __test__/CalculatorService.test.ts

diff --git a/__test__/CalculatorService.test.ts b/__test__/CalculatorService.test.ts
new file mode 100644
index 0000000..e30bc36
--- /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 98d5f1d..880714a 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 50e712b..2497195 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)))
-- 
GitLab