From bac111654d42080fc21b7d3e4886a429caec587b Mon Sep 17 00:00:00 2001 From: Agustin Ruiz Diaz <agustin.ruiz.diaz@fing.edu.uy> Date: Sun, 19 Sep 2021 17:29:16 -0300 Subject: [PATCH] Language change (except enum's String) --- src/DTOs/AdultPALDTO.ts | 12 ++--- src/DTOs/AgeGroupDTO.ts | 8 +-- src/DTOs/AgeGroupJSON.ts | 8 +-- src/DTOs/CalculatorResponseDTO.ts | 4 +- src/DTOs/EnergeticRequirementDTO.ts | 6 +-- src/DTOs/ExtraDataDTO.ts | 6 +-- src/DTOs/GroupEnergeticRequirementDTO.ts | 6 +-- src/DTOs/IndividualMaternityDTO.ts | 5 +- src/DTOs/MinorPALDTO.ts | 6 +-- src/DTOs/PopulationMaternityDTO.ts | 4 +- src/Enum/ParameterType.ts | 8 +-- src/Enum/Sex.ts | 4 +- src/Models/Parameter.ts | 7 ++- src/Services/CalculatorService.ts | 6 +-- src/Services/ERCalculator.ts | 64 ++++++++++++------------ src/Services/ParserService.ts | 18 +++---- 16 files changed, 88 insertions(+), 84 deletions(-) diff --git a/src/DTOs/AdultPALDTO.ts b/src/DTOs/AdultPALDTO.ts index 2395933..ed5a73c 100644 --- a/src/DTOs/AdultPALDTO.ts +++ b/src/DTOs/AdultPALDTO.ts @@ -1,10 +1,10 @@ type AdultPAL = { - porcentajeUrbano: number; - NAFActivosUrbano: number; - NAFLivianaUrbano: number; - porcentajeRural: number; - NAFActivosRural: number; - NAFLivianaRural: number; + urbanPercentage: number; + activeUrbanPAL: number; + lowUrbanPAL: number; + ruralPercentage: number; + activeRuralPAL: number; + lowRuralPAL: number; }; export default AdultPAL; diff --git a/src/DTOs/AgeGroupDTO.ts b/src/DTOs/AgeGroupDTO.ts index 5acf22c..b7d9768 100644 --- a/src/DTOs/AgeGroupDTO.ts +++ b/src/DTOs/AgeGroupDTO.ts @@ -2,10 +2,10 @@ import AgeBracket from '../Enum/AgeBracket'; import Sex from '../Enum/Sex'; type AgeGroup = { - edad: AgeBracket; - sexo: Sex; - pesoMediano: number; - cantidad: number; + age: AgeBracket; + sex: Sex; + medianWeight: number; + population: number; }; export default AgeGroup; diff --git a/src/DTOs/AgeGroupJSON.ts b/src/DTOs/AgeGroupJSON.ts index c8a111c..0a795b4 100644 --- a/src/DTOs/AgeGroupJSON.ts +++ b/src/DTOs/AgeGroupJSON.ts @@ -1,8 +1,8 @@ type AgeGroupJSON = { - edad: string; - sexo: string; - pesoMediano: string; - cantidad: string; + age: string; + sex: string; + medianWeight: string; + population: string; }; export default AgeGroupJSON; diff --git a/src/DTOs/CalculatorResponseDTO.ts b/src/DTOs/CalculatorResponseDTO.ts index c4195f7..dc7df45 100644 --- a/src/DTOs/CalculatorResponseDTO.ts +++ b/src/DTOs/CalculatorResponseDTO.ts @@ -2,8 +2,8 @@ import EnergeticRequirement from './EnergeticRequirementDTO'; import GroupEnergeticRequirement from './GroupEnergeticRequirementDTO'; type CalculatorResponse = { - requerimientosPorGrupo: GroupEnergeticRequirement[]; - requerimientoTotal: EnergeticRequirement; + groupsRequirements: GroupEnergeticRequirement[]; + totalRequirement: EnergeticRequirement; }; export default CalculatorResponse; diff --git a/src/DTOs/EnergeticRequirementDTO.ts b/src/DTOs/EnergeticRequirementDTO.ts index ef11f41..c808a90 100644 --- a/src/DTOs/EnergeticRequirementDTO.ts +++ b/src/DTOs/EnergeticRequirementDTO.ts @@ -1,7 +1,7 @@ type EnergeticRequirement = { - requerimientoEnergeticoPerCapita: number; - requerimientoEnergeticoTotal: number; - poblacionTotal: number; + perCapita: number; + total: number; + totalPopulation: number; }; export default EnergeticRequirement; diff --git a/src/DTOs/ExtraDataDTO.ts b/src/DTOs/ExtraDataDTO.ts index c78835d..0964397 100644 --- a/src/DTOs/ExtraDataDTO.ts +++ b/src/DTOs/ExtraDataDTO.ts @@ -4,9 +4,9 @@ import MinorPAL from './MinorPALDTO'; import PopulationMaternity from './PopulationMaternityDTO'; type ExtraData = { - prevalenciaAFMenores: MinorPAL | undefined; - prevalenciaAFAdultos: AdultPAL | undefined; - datosEmbarazoLactancia: IndividualMaternity | PopulationMaternity | undefined; + minorPAL: MinorPAL | undefined; + adultPAL: AdultPAL | undefined; + maternity: IndividualMaternity | PopulationMaternity | undefined; }; export default ExtraData; diff --git a/src/DTOs/GroupEnergeticRequirementDTO.ts b/src/DTOs/GroupEnergeticRequirementDTO.ts index f014842..391a86a 100644 --- a/src/DTOs/GroupEnergeticRequirementDTO.ts +++ b/src/DTOs/GroupEnergeticRequirementDTO.ts @@ -1,9 +1,9 @@ import AgeGroupJSON from './AgeGroupJSON'; type GroupEnergeticRequirement = { - grupoEtario: AgeGroupJSON; - requerimientoEnergeticoPerCapita: number; - requerimientoEnergeticoTotal: number; + group: AgeGroupJSON; + perCapita: number; + total: number; }; export default GroupEnergeticRequirement; diff --git a/src/DTOs/IndividualMaternityDTO.ts b/src/DTOs/IndividualMaternityDTO.ts index d6a07a6..6d35f66 100644 --- a/src/DTOs/IndividualMaternityDTO.ts +++ b/src/DTOs/IndividualMaternityDTO.ts @@ -1,7 +1,6 @@ type IndividualMaternity = { - mujeresEmbarazadas: number; - mujeresLactando: number; - mujeresEmbarazadasLactando: number; + pregnants: number; + lactating: number; }; export default IndividualMaternity; diff --git a/src/DTOs/MinorPALDTO.ts b/src/DTOs/MinorPALDTO.ts index dfb3ff8..9633fca 100644 --- a/src/DTOs/MinorPALDTO.ts +++ b/src/DTOs/MinorPALDTO.ts @@ -1,7 +1,7 @@ type MinorPAL = { - NAFLiviano: number; - NAFModerado: number; - NAFIntenso: number; + lowPalPrevalence: number; + moderatePALPrevalence: number; + intensePALPrevalence: number; }; export default MinorPAL; diff --git a/src/DTOs/PopulationMaternityDTO.ts b/src/DTOs/PopulationMaternityDTO.ts index 8345efe..cf112bf 100644 --- a/src/DTOs/PopulationMaternityDTO.ts +++ b/src/DTOs/PopulationMaternityDTO.ts @@ -1,6 +1,6 @@ type PopulationMaternity = { - tasaNatalidadPais: number; - poblacionPais: number; + countryBirthRate: number; + countryPpulation: number; }; export default PopulationMaternity; diff --git a/src/Enum/ParameterType.ts b/src/Enum/ParameterType.ts index f2ce042..519746e 100644 --- a/src/Enum/ParameterType.ts +++ b/src/Enum/ParameterType.ts @@ -1,8 +1,8 @@ enum ParameterType { - NAF = 'NAF', - PesoPorDefecto = 'Peso por defecto', - EmbarazoYLactancia = 'Embarazo y lactancia', - ConstanteDeEcuacion = 'Constante de ecuacion' + PAL = 'NAF', + DefaultWeight = 'Peso por defecto', + Maternity = 'Embarazo y lactancia', + EquationConstant = 'Constante de ecuacion' } export default ParameterType; diff --git a/src/Enum/Sex.ts b/src/Enum/Sex.ts index 83d5304..4c388f0 100644 --- a/src/Enum/Sex.ts +++ b/src/Enum/Sex.ts @@ -1,6 +1,6 @@ enum Sex { - Masculino = 'Masculino', - Femenino = 'Femenino', + Male = 'Masculino', + Female = 'Femenino', } export default Sex; diff --git a/src/Models/Parameter.ts b/src/Models/Parameter.ts index 35b1306..ae2b4ae 100644 --- a/src/Models/Parameter.ts +++ b/src/Models/Parameter.ts @@ -1,11 +1,16 @@ +import ParameterType from '../Enum/ParameterType'; + class Parameter { name: string; value: number; - constructor(name: string, value: number) { + parameterType: ParameterType; + + constructor(name: string, value: number, parameterType: ParameterType) { this.name = name; this.value = value; + this.parameterType = parameterType; } } diff --git a/src/Services/CalculatorService.ts b/src/Services/CalculatorService.ts index 66c82ce..a5a838b 100644 --- a/src/Services/CalculatorService.ts +++ b/src/Services/CalculatorService.ts @@ -8,13 +8,13 @@ import extraData from '../DTOs/ExtraDataDTO'; // eslint-disable-next-line max-len const calculateEnergeticRequirement = (groups: AgeGroupJSON[], data: extraData): CalculatorResponse => { - const parametros = new Map<number[], AgeGroup>(); + const parameters = new Map<number[], AgeGroup>(); const ageGroups = ParserService.parseGroups(groups); ageGroups.forEach((group: AgeGroup) => { - parametros.set(ParameterService.getEquationValues(group.edad, group.sexo), group); + parameters.set(ParameterService.getEquationValues(group.age, group.sex), group); }); - const res: CalculatorResponse = ERCalculator.calculateER(parametros, data); + const res: CalculatorResponse = ERCalculator.calculateER(parameters, data); return res; }; diff --git a/src/Services/ERCalculator.ts b/src/Services/ERCalculator.ts index 037caff..1d5f3cc 100644 --- a/src/Services/ERCalculator.ts +++ b/src/Services/ERCalculator.ts @@ -3,32 +3,32 @@ import EnergeticRequirement from '../DTOs/EnergeticRequirementDTO'; import CalculatorResponse from '../DTOs/CalculatorResponseDTO'; import GroupEnergeticRequirement from '../DTOs/GroupEnergeticRequirementDTO'; import extraData from '../DTOs/ExtraDataDTO'; -import prevalenciaAFMenores from '../DTOs/MinorPALDTO'; +import MinorPALDTO from '../DTOs/MinorPALDTO'; import ParserService from './ParserService'; import AgeBracket from '../Enum/AgeBracket'; -const calculateGET = (group: AgeGroup, params: number[], preval: prevalenciaAFMenores): number => { - const getModerado: number = params[0] - + (params[1] * group.pesoMediano) - - params[2] * (group.pesoMediano * group.pesoMediano); +const calculateGET = (group: AgeGroup, params: number[], preval: MinorPALDTO): number => { + const getModerate: number = params[0] + + (params[1] * group.medianWeight) + - params[2] * (group.medianWeight * group.medianWeight); - const getLiviano: number = getModerado - (getModerado * params[4]) / 100; - const getIntenso: number = getModerado + (getModerado * params[5]) / 100; + const getLow: number = getModerate - (getModerate * params[4]) / 100; + const getIntense: number = getModerate + (getModerate * params[5]) / 100; - const ret: number = (getLiviano * preval.NAFLiviano) / 100 - + (getModerado * preval.NAFModerado) / 100 - + (getIntenso * preval.NAFIntenso) / 100; + const ret: number = (getLow * preval.lowPalPrevalence) / 100 + + (getModerate * preval.moderatePALPrevalence) / 100 + + (getIntense * preval.intensePALPrevalence) / 100; return ret; }; const calculateLessThanAYear = (group: AgeGroup, params: number[]): GroupEnergeticRequirement => { - const requirement = params[0] + (params[1] * group.pesoMediano) + params[2]; + const requirement = params[0] + (params[1] * group.medianWeight) + params[2]; const groupRequirement: GroupEnergeticRequirement = { - grupoEtario: ParserService.unparseGroup(group), - requerimientoEnergeticoPerCapita: requirement, - requerimientoEnergeticoTotal: requirement * group.cantidad, + group: ParserService.unparseGroup(group), + perCapita: requirement, + total: requirement * group.population, }; return groupRequirement; @@ -36,14 +36,14 @@ const calculateLessThanAYear = (group: AgeGroup, params: number[]): GroupEnerget const calculateOneToFiveYears = (group: AgeGroup, params: number[]): GroupEnergeticRequirement => { const requirement = params[0] - + (params[1] * group.pesoMediano) - + (params[2] * (group.pesoMediano ** 2)) + + (params[1] * group.medianWeight) + + (params[2] * (group.medianWeight ** 2)) + params[3]; const groupRequirement: GroupEnergeticRequirement = { - grupoEtario: ParserService.unparseGroup(group), - requerimientoEnergeticoPerCapita: requirement, - requerimientoEnergeticoTotal: requirement * group.cantidad, + group: ParserService.unparseGroup(group), + perCapita: requirement, + total: requirement * group.population, }; return groupRequirement; @@ -52,18 +52,18 @@ const calculateOneToFiveYears = (group: AgeGroup, params: number[]): GroupEnerge // eslint-disable-next-line max-len const calculateSixToSeventeenYears = (group: AgeGroup, params: number[], data: extraData): GroupEnergeticRequirement => { let get: number; - if (typeof (data.prevalenciaAFMenores) === 'undefined') { + if (typeof (data.minorPAL) === 'undefined') { throw new Error('Data missing'); } else { - get = calculateGET(group, params, data.prevalenciaAFMenores); + get = calculateGET(group, params, data.minorPAL); } const requirement = get + params[3]; const groupRequirement: GroupEnergeticRequirement = { - grupoEtario: ParserService.unparseGroup(group), - requerimientoEnergeticoPerCapita: requirement, - requerimientoEnergeticoTotal: requirement * group.cantidad, + group: ParserService.unparseGroup(group), + perCapita: requirement, + total: requirement * group.population, }; return groupRequirement; @@ -77,9 +77,9 @@ const calculateER = (groupParameters: Map<number[], AgeGroup>, data: extraData): const requirements: GroupEnergeticRequirement[] = []; groupParameters.forEach((group: AgeGroup, params: number[]) => { - totalOfPeople += group.cantidad; + totalOfPeople += group.population; let groupRequirement: GroupEnergeticRequirement; - switch (group.edad) { + switch (group.age) { case AgeBracket.m0: case AgeBracket.m1: case AgeBracket.m2: @@ -122,19 +122,19 @@ const calculateER = (groupParameters: Map<number[], AgeGroup>, data: extraData): throw new Error('Parsing error, attribute edad does not respect format'); } } - totalRequirement += groupRequirement.requerimientoEnergeticoTotal; + totalRequirement += groupRequirement.total; requirements.push(groupRequirement); }); const totalER: EnergeticRequirement = { - requerimientoEnergeticoPerCapita: totalRequirement / totalOfPeople, - requerimientoEnergeticoTotal: totalRequirement, - poblacionTotal: totalOfPeople, + perCapita: totalRequirement / totalOfPeople, + total: totalRequirement, + totalPopulation: totalOfPeople, }; const result: CalculatorResponse = { - requerimientosPorGrupo: requirements, - requerimientoTotal: totalER, + groupsRequirements: requirements, + totalRequirement: totalER, }; return result; diff --git a/src/Services/ParserService.ts b/src/Services/ParserService.ts index b9aedc9..1da2a27 100644 --- a/src/Services/ParserService.ts +++ b/src/Services/ParserService.ts @@ -161,16 +161,16 @@ import Sex from '../Enum/Sex'; const parseGroups = (groups: AgeGroupJSON[]): AgeGroup[] => { const retGroups: AgeGroup[] = []; - groups.forEach((obj: AgeGroupJSON) => { + groups.forEach((ageGroup: AgeGroupJSON) => { // if (typeof (obj.pesoMediano) !== 'number' || typeof (obj.cantidad) !== 'number') { // console.log('Estas haciendo cualquiera flaco'); // throw new Error('Parsing error, attributes do not respect format'); // } const group: AgeGroup = { - edad: obj.edad as AgeBracket, - sexo: obj.sexo as Sex, - pesoMediano: parseFloat(obj.pesoMediano), - cantidad: parseFloat(obj.cantidad), + age: ageGroup.age as AgeBracket, + sex: ageGroup.sex as Sex, + medianWeight: parseFloat(ageGroup.medianWeight), + population: parseFloat(ageGroup.population), }; retGroups.push(group); }); @@ -179,10 +179,10 @@ const parseGroups = (groups: AgeGroupJSON[]): AgeGroup[] => { const unparseGroup = (group: AgeGroup): AgeGroupJSON => { const retGroup: AgeGroupJSON = { - edad: group.edad as string, - sexo: group.sexo as string, - pesoMediano: String(group.pesoMediano), - cantidad: String(group.cantidad), + age: group.age as string, + sex: group.sex as string, + medianWeight: String(group.medianWeight), + population: String(group.population), }; return retGroup; }; -- GitLab