From cbfac7164c0c4ec15f9d778557846f68ffa26866 Mon Sep 17 00:00:00 2001 From: Agustin <agusr1999@gmail.com> Date: Thu, 30 Sep 2021 21:52:52 -0300 Subject: [PATCH] New unit tests that cover 70%+ of backend --- __test__/ERCalculator.test.ts | 592 +++++++++- coverage/clover.xml | 142 +++ coverage/coverage-final.json | 5 + coverage/lcov-report/Enum/AgeBracket.ts.html | 188 +++ coverage/lcov-report/Enum/Sex.ts.html | 98 ++ coverage/lcov-report/Enum/index.html | 126 ++ .../lcov-report/Services/ERCalculator.ts.html | 1028 +++++++++++++++++ .../Services/ParserService.ts.html | 638 ++++++++++ coverage/lcov-report/Services/index.html | 126 ++ coverage/lcov-report/base.css | 224 ++++ coverage/lcov-report/block-navigation.js | 79 ++ coverage/lcov-report/favicon.png | Bin 0 -> 540 bytes coverage/lcov-report/index.html | 126 ++ coverage/lcov-report/prettify.css | 1 + coverage/lcov-report/prettify.js | 2 + coverage/lcov-report/sort-arrow-sprite.png | Bin 0 -> 209 bytes coverage/lcov-report/sorter.js | 170 +++ coverage/lcov.info | 243 ++++ package-lock.json | 200 ++++ package.json | 4 +- src/Services/ERCalculator.ts | 28 +- src/Services/ParameterService.ts | 2 - src/Services/ParserService.ts | 4 - 23 files changed, 4002 insertions(+), 24 deletions(-) create mode 100644 coverage/clover.xml create mode 100644 coverage/coverage-final.json create mode 100644 coverage/lcov-report/Enum/AgeBracket.ts.html create mode 100644 coverage/lcov-report/Enum/Sex.ts.html create mode 100644 coverage/lcov-report/Enum/index.html create mode 100644 coverage/lcov-report/Services/ERCalculator.ts.html create mode 100644 coverage/lcov-report/Services/ParserService.ts.html create mode 100644 coverage/lcov-report/Services/index.html create mode 100644 coverage/lcov-report/base.css create mode 100644 coverage/lcov-report/block-navigation.js create mode 100644 coverage/lcov-report/favicon.png create mode 100644 coverage/lcov-report/index.html create mode 100644 coverage/lcov-report/prettify.css create mode 100644 coverage/lcov-report/prettify.js create mode 100644 coverage/lcov-report/sort-arrow-sprite.png create mode 100644 coverage/lcov-report/sorter.js create mode 100644 coverage/lcov.info diff --git a/__test__/ERCalculator.test.ts b/__test__/ERCalculator.test.ts index 176cf19..6ab9848 100644 --- a/__test__/ERCalculator.test.ts +++ b/__test__/ERCalculator.test.ts @@ -1,7 +1,23 @@ import age from '../src/Enum/AgeBracket'; import sex from '../src/Enum/Sex'; +import ERCalculator from '../src/Services/ERCalculator'; +import '@testing-library/jest-dom/extend-expect'; -const ERCalculator = require('../src/Services/ERCalculator'); +expect.extend({ + toBeWithinRange(received, result, margin) { + const pass = received >= result - margin && received <= result + margin; + if (pass) { + return { + message: (): string => `expected ${received} not to be within range ${result} +- ${margin}`, + pass: true, + }; + } + return { + message: (): string => `expected ${received} to be within range ${result} +- ${margin}`, + pass: false, + }; + }, +}); describe('Check', () => { it("Probar si se devuelve 'true' cuando el tipo es IndividualMaternity", () => { expect(ERCalculator.isIndividualMaternity({ pregnantWomen: 5, lactatingWomen: 2 })).toBe(true); }); @@ -46,3 +62,577 @@ describe('Verificar si funciona el cálculo del TMB (mayores a 18 años)', () => }, [11.711, 587.7, 1.95, 1.65, 1.85, 1.55]))).toBe(1362); }); }); + +describe('Verificar si funciona el cálculo del NAF (mayores a 18 años)', () => { + it('Mezclado urbano/rural', () => { + expect(ERCalculator.calculatePAL([15.057, 692.2, 1.95, 1.65, 1.85, 1.55], + { + urbanPercentage: 60, + activeUrbanPAL: 30, + lowUrbanPAL: 70, + ruralPercentage: 40, + activeRuralPAL: 80, + lowRuralPAL: 20, + })).toBeCloseTo(1.74); + }); + it('Solo urbano', () => { + expect(ERCalculator.calculatePAL([15.057, 692.2, 1.95, 1.65, 1.85, 1.55], + { + urbanPercentage: 100, + activeUrbanPAL: 36, + lowUrbanPAL: 64, + ruralPercentage: 0, + activeRuralPAL: 80, + lowRuralPAL: 20, + })).toBeCloseTo(1.66); + }); + it('Solo rural', () => { + expect(ERCalculator.calculatePAL([15.057, 692.2, 1.95, 1.65, 1.85, 1.55], + { + urbanPercentage: 0, + activeUrbanPAL: 36, + lowUrbanPAL: 64, + ruralPercentage: 100, + activeRuralPAL: 74, + lowRuralPAL: 26, + })).toBeCloseTo(1.87); + }); +}); + +describe('Verificar si funciona la ponderacion del RE para mujeres pasando IndividualMaternity', () => { + it('Mezclado con mujeres embarazadas y lactando', () => { + expect(Math.round(ERCalculator.calculateERWomenIndividual({ + age: age.a18_29, + sex: sex.Female, + medianWeight: 73.1, + population: 48, + }, + [14.818, 486.6, 1.95, 1.65, 1.85, 1.55, 208, 251], + { + pregnantWomen: 15, + lactatingWomen: 4, + }, + 2499))).toBeWithinRange(2584, 1); + }); + it('Solo con mujeres embarazadas', () => { + expect(Math.round(ERCalculator.calculateERWomenIndividual({ + age: age.a18_29, + sex: sex.Female, + medianWeight: 73.1, + population: 48, + }, + [14.818, 486.6, 1.95, 1.65, 1.85, 1.55, 208, 251], + { + pregnantWomen: 15, + lactatingWomen: 0, + }, + 2499))).toBeWithinRange(2564, 1); + }); + it('Solo con mujeres lactando', () => { + expect(Math.round(ERCalculator.calculateERWomenIndividual({ + age: age.a18_29, + sex: sex.Female, + medianWeight: 73.1, + population: 48, + }, + [14.818, 486.6, 1.95, 1.65, 1.85, 1.55, 208, 251], + { + pregnantWomen: 0, + lactatingWomen: 10, + }, + 2499))).toBeWithinRange(2551, 1); + }); + it('Sin mujeres embarazadas/lactando', () => { + expect(Math.round(ERCalculator.calculateERWomenIndividual({ + age: age.a18_29, + sex: sex.Female, + medianWeight: 73.1, + population: 48, + }, + [14.818, 486.6, 1.95, 1.65, 1.85, 1.55, 208, 251], + { + pregnantWomen: 0, + lactatingWomen: 0, + }, + 2499))).toBeWithinRange(2499, 1); + }); +}); + +describe('Verificar si funciona la ponderacion del RE para mujeres pasando PopulationMaternity', () => { + it('Mezclado con mujeres embarazadas y lactando', () => { + expect(Math.round(ERCalculator.calculateERWomenPopulation( + [14.818, 486.6, 1.95, 1.65, 1.85, 1.55, 208, 251], + { + countryBirthRate: 14, + countryWomenInAgeGroup: 315790, + countryPopulation: 3453691, + }, + 2499, + ))).toBeWithinRange(2542, 1); + }); + it('Sin mujeres embarazadas/lactando', () => { + expect(Math.round(ERCalculator.calculateERWomenPopulation( + [14.818, 486.6, 1.95, 1.65, 1.85, 1.55, 208, 251], + { + countryBirthRate: 0, + countryWomenInAgeGroup: 315790, + countryPopulation: 3453691, + }, + 2499, + ))).toBeWithinRange(2499, 1); + }); +}); + +describe('Verificar si funciona calculo del RE para menores de 1 año', () => { + it('Mujeres', () => { + expect(ERCalculator.calculateLessThanAYear({ + age: age.m3, + sex: sex.Female, + medianWeight: 6, + population: 9, + }, + [-152, 92.8, 68])).toStrictEqual({ + group: { + age: age.m3, + sex: sex.Female, + medianWeight: 6, + population: 9, + }, + perCapita: 473, + total: 4255, + }); + }); + it('Varones', () => { + expect(ERCalculator.calculateLessThanAYear({ + age: age.m11, + sex: sex.Male, + medianWeight: 12, + population: 7, + }, + [-99.4, 88.6, 22])).toStrictEqual({ + group: { + age: age.m11, + sex: sex.Male, + medianWeight: 12, + population: 7, + }, + perCapita: 986, + total: 6901, + }); + }); +}); + +describe('Verificar si funciona calculo del RE para personas de 1 a 5 años', () => { + it('Mujeres', () => { + expect(ERCalculator.calculate1To5Years({ + age: age.a5, + sex: sex.Female, + medianWeight: 23, + population: 6, + }, + [263.4, 65.3, -0.454, 10])).toStrictEqual({ + group: { + age: age.a5, + sex: sex.Female, + medianWeight: 23, + population: 6, + }, + perCapita: 1535, + total: 9211, + }); + }); + it('Varones', () => { + expect(ERCalculator.calculate1To5Years({ + age: age.a3, + sex: sex.Male, + medianWeight: 20, + population: 9, + }, + [310.2, 63.3, -0.263, 12])).toStrictEqual({ + group: { + age: age.a3, + sex: sex.Male, + medianWeight: 20, + population: 9, + }, + perCapita: 1483, + total: 13347, + }); + }); +}); + +describe('Verificar si funciona calculo del RE para personas de 6 a 17 años', () => { + it('Mujeres', () => { + expect(ERCalculator.calculate6To17Years({ + age: age.a16, + sex: sex.Female, + medianWeight: 53, + population: 6, + }, + [263.4, 65.3, -0.454, 5, -15, 15], + { + minorPAL: { + lowPALPrevalence: 0, + moderatePALPrevalence: 100, + intensePALPrevalence: 0, + }, + adultPAL: undefined, + maternity18To29: undefined, + maternity30To59: undefined, + })).toStrictEqual({ + group: { + age: age.a16, + sex: sex.Female, + medianWeight: 53, + population: 6, + }, + perCapita: 2454, + total: 14724, + }); + }); + it('Varones', () => { + expect(ERCalculator.calculate6To17Years({ + age: age.a13, + sex: sex.Male, + medianWeight: 37, + population: 6, + }, + [310.2, 63.3, -0.263, 33, -15, 15], + { + minorPAL: { + lowPALPrevalence: 0, + moderatePALPrevalence: 100, + intensePALPrevalence: 0, + }, + adultPAL: undefined, + maternity18To29: undefined, + maternity30To59: undefined, + })).toStrictEqual({ + group: { + age: age.a13, + sex: sex.Male, + medianWeight: 37, + population: 6, + }, + perCapita: 2325, + total: 13952, + }); + }); + it('Varones sin pasar data de actividad fisica', () => { + expect(() => { + ERCalculator.calculate6To17Years({ + age: age.a13, + sex: sex.Male, + medianWeight: 37, + population: 6, + }, + [310.2, 63.3, -0.263, 33, -15, 15], + { + minorPAL: undefined, + adultPAL: undefined, + maternity18To29: undefined, + maternity30To59: undefined, + }); + }).toThrow(Error('Missing data')); + }); +}); + +describe('Verificar si funciona calculo del RE para personas de 18 a 29 años', () => { + it('Mujeres', () => { + expect(ERCalculator.calculate18To29Years({ + age: age.a18_29, + sex: sex.Female, + medianWeight: 70, + population: 10, + }, + [14.818, 486.6, 1.95, 1.65, 1.85, 1.55, 208, 251], + { + minorPAL: undefined, + adultPAL: { + urbanPercentage: 70, + activeUrbanPAL: 36, + lowUrbanPAL: 64, + ruralPercentage: 30, + activeRuralPAL: 74, + lowRuralPAL: 26, + }, + maternity18To29: { + pregnantWomen: 1, + lactatingWomen: 2, + }, + maternity30To59: undefined, + })).toStrictEqual({ + group: { + age: age.a18_29, + sex: sex.Female, + medianWeight: 70, + population: 10, + }, + perCapita: 2695, + total: 26954, + }); + }); + it('Varones', () => { + expect(ERCalculator.calculate18To29Years({ + age: age.a18_29, + sex: sex.Male, + medianWeight: 83, + population: 6, + }, + [15.057, 692.2, 1.95, 1.65, 1.85, 1.55], + { + minorPAL: undefined, + adultPAL: { + urbanPercentage: 70, + activeUrbanPAL: 36, + lowUrbanPAL: 64, + ruralPercentage: 30, + activeRuralPAL: 74, + lowRuralPAL: 26, + }, + maternity18To29: undefined, + maternity30To59: undefined, + })).toStrictEqual({ + group: { + age: age.a18_29, + sex: sex.Male, + medianWeight: 83, + population: 6, + }, + perCapita: 3344, + total: 20066, + }); + }); + it('Mujeres sin pasar data de maternidad', () => { + expect(() => { + ERCalculator.calculate18To29Years({ + age: age.a18_29, + sex: sex.Female, + medianWeight: 70, + population: 10, + }, + [14.818, 486.6, 1.95, 1.65, 1.85, 1.55, 208, 251], + { + minorPAL: undefined, + adultPAL: { + urbanPercentage: 70, + activeUrbanPAL: 36, + lowUrbanPAL: 64, + ruralPercentage: 30, + activeRuralPAL: 74, + lowRuralPAL: 26, + }, + maternity18To29: undefined, + maternity30To59: undefined, + }); + }).toThrow(Error('Missing data')); + }); + it('Hombres sin pasar data de NAF', () => { + expect(() => { + ERCalculator.calculate18To29Years({ + age: age.a18_29, + sex: sex.Male, + medianWeight: 70, + population: 10, + }, + [14.818, 486.6, 1.95, 1.65, 1.85, 1.55, 208, 251], + { + minorPAL: undefined, + adultPAL: undefined, + maternity18To29: undefined, + maternity30To59: undefined, + }); + }).toThrow(Error('Missing data')); + }); +}); + +describe('Verificar si funciona calculo del RE para personas de 30 a 59 años', () => { + it('Mujeres', () => { + expect(ERCalculator.calculate30To59Years({ + age: age.a30_59, + sex: sex.Female, + medianWeight: 76, + population: 10, + }, + [8.126, 845.6, 1.95, 1.65, 1.85, 1.55, 208, 251], + { + minorPAL: undefined, + adultPAL: { + urbanPercentage: 70, + activeUrbanPAL: 36, + lowUrbanPAL: 64, + ruralPercentage: 30, + activeRuralPAL: 74, + lowRuralPAL: 26, + }, + maternity18To29: undefined, + maternity30To59: { + pregnantWomen: 0, + lactatingWomen: 0, + }, + })).toStrictEqual({ + group: { + age: age.a30_59, + sex: sex.Female, + medianWeight: 76, + population: 10, + }, + perCapita: 2520, + total: 25199, + }); + }); + it('Varones', () => { + expect(ERCalculator.calculate30To59Years({ + age: age.a30_59, + sex: sex.Male, + medianWeight: 83, + population: 6, + }, + [11.472, 873.1, 1.95, 1.65, 1.85, 1.55], + { + minorPAL: undefined, + adultPAL: { + urbanPercentage: 70, + activeUrbanPAL: 36, + lowUrbanPAL: 64, + ruralPercentage: 30, + activeRuralPAL: 74, + lowRuralPAL: 26, + }, + maternity18To29: undefined, + maternity30To59: undefined, + })).toStrictEqual({ + group: { + age: age.a30_59, + sex: sex.Male, + medianWeight: 83, + population: 6, + }, + perCapita: 3143, + total: 18861, + }); + }); + it('Mujeres sin pasar data de maternidad', () => { + expect(() => { + ERCalculator.calculate30To59Years({ + age: age.a30_59, + sex: sex.Female, + medianWeight: 70, + population: 10, + }, + [14.818, 486.6, 1.95, 1.65, 1.85, 1.55, 208, 251], + { + minorPAL: undefined, + adultPAL: { + urbanPercentage: 70, + activeUrbanPAL: 36, + lowUrbanPAL: 64, + ruralPercentage: 30, + activeRuralPAL: 74, + lowRuralPAL: 26, + }, + maternity18To29: undefined, + maternity30To59: undefined, + }); + }).toThrow(Error('Missing data')); + }); + it('Hombres sin pasar data de NAF', () => { + expect(() => { + ERCalculator.calculate30To59Years({ + age: age.a30_59, + sex: sex.Male, + medianWeight: 70, + population: 10, + }, + [14.818, 486.6, 1.95, 1.65, 1.85, 1.55, 208, 251], + { + minorPAL: undefined, + adultPAL: undefined, + maternity18To29: undefined, + maternity30To59: undefined, + }); + }).toThrow(Error('Missing data')); + }); +}); + +describe('Verificar si funciona calculo del RE para personas de mas de 60 años', () => { + it('Mujeres', () => { + expect(ERCalculator.calculate60PlusYears({ + age: age.a60, + sex: sex.Female, + medianWeight: 70, + population: 10, + }, + [9.082, 658.5, 1.95, 1.65, 1.85, 1.55], + { + minorPAL: undefined, + adultPAL: { + urbanPercentage: 70, + activeUrbanPAL: 36, + lowUrbanPAL: 64, + ruralPercentage: 30, + activeRuralPAL: 74, + lowRuralPAL: 26, + }, + maternity18To29: undefined, + maternity30To59: undefined, + })).toStrictEqual({ + group: { + age: age.a60, + sex: sex.Female, + medianWeight: 70, + population: 10, + }, + perCapita: 2229, + total: 22289, + }); + }); + it('Varones', () => { + expect(ERCalculator.calculate60PlusYears({ + age: age.a60, + sex: sex.Male, + medianWeight: 75, + population: 6, + }, + [11.711, 587.7, 1.95, 1.65, 1.85, 1.55], + { + minorPAL: undefined, + adultPAL: { + urbanPercentage: 70, + activeUrbanPAL: 36, + lowUrbanPAL: 64, + ruralPercentage: 30, + activeRuralPAL: 74, + lowRuralPAL: 26, + }, + maternity18To29: undefined, + maternity30To59: undefined, + })).toStrictEqual({ + group: { + age: age.a60, + sex: sex.Male, + medianWeight: 75, + population: 6, + }, + perCapita: 2525, + total: 15149, + }); + }); + it('Mujeres sin pasar data de NAF', () => { + expect(() => { + ERCalculator.calculate60PlusYears({ + age: age.a60, + sex: sex.Female, + medianWeight: 70, + population: 10, + }, + [9.082, 658.5, 1.95, 1.65, 1.85, 1.55], + { + minorPAL: undefined, + adultPAL: undefined, + maternity18To29: undefined, + maternity30To59: undefined, + }); + }).toThrow(Error('Missing data')); + }); +}); diff --git a/coverage/clover.xml b/coverage/clover.xml new file mode 100644 index 0000000..ce0df9f --- /dev/null +++ b/coverage/clover.xml @@ -0,0 +1,142 @@ +<?xml version="1.0" encoding="UTF-8"?> +<coverage generated="1633048886724" clover="3.2.0"> + <project timestamp="1633048886725" name="All files"> + <metrics statements="118" coveredstatements="87" conditionals="55" coveredconditionals="20" methods="17" coveredmethods="13" elements="190" coveredelements="120" complexity="0" loc="118" ncloc="118" packages="2" files="4" classes="4"/> + <package name="Enum"> + <metrics statements="0" coveredstatements="0" conditionals="0" coveredconditionals="0" methods="0" coveredmethods="0"/> + <file name="AgeBracket.ts" path="C:\Users\Agustin\Desktop\repp_backend\src\Enum\AgeBracket.ts"> + <metrics statements="0" coveredstatements="0" conditionals="0" coveredconditionals="0" methods="0" coveredmethods="0"/> + </file> + <file name="Sex.ts" path="C:\Users\Agustin\Desktop\repp_backend\src\Enum\Sex.ts"> + <metrics statements="0" coveredstatements="0" conditionals="0" coveredconditionals="0" methods="0" coveredmethods="0"/> + </file> + </package> + <package name="Services"> + <metrics statements="118" coveredstatements="87" conditionals="55" coveredconditionals="20" methods="17" coveredmethods="13"/> + <file name="ERCalculator.ts" path="C:\Users\Agustin\Desktop\repp_backend\src\Services\ERCalculator.ts"> + <metrics statements="109" coveredstatements="83" conditionals="55" coveredconditionals="20" methods="14" coveredmethods="12"/> + <line num="15" count="1" type="stmt"/> + <line num="16" count="4" type="cond" truecount="2" falsecount="0"/> + <line num="17" count="3" type="stmt"/> + <line num="19" count="1" type="stmt"/> + <line num="23" count="1" type="stmt"/> + <line num="24" count="5" type="stmt"/> + <line num="28" count="5" type="stmt"/> + <line num="29" count="5" type="stmt"/> + <line num="31" count="5" type="stmt"/> + <line num="35" count="5" type="stmt"/> + <line num="39" count="1" type="stmt"/> + <line num="40" count="11" type="stmt"/> + <line num="41" count="11" type="stmt"/> + <line num="45" count="1" type="stmt"/> + <line num="46" count="11" type="stmt"/> + <line num="48" count="11" type="stmt"/> + <line num="51" count="11" type="stmt"/> + <line num="53" count="11" type="stmt"/> + <line num="57" count="1" type="stmt"/> + <line num="58" count="6" type="stmt"/> + <line num="59" count="6" type="stmt"/> + <line num="61" count="6" type="stmt"/> + <line num="62" count="6" type="stmt"/> + <line num="63" count="6" type="stmt"/> + <line num="65" count="6" type="stmt"/> + <line num="69" count="1" type="stmt"/> + <line num="70" count="2" type="stmt"/> + <line num="72" count="2" type="stmt"/> + <line num="73" count="2" type="stmt"/> + <line num="75" count="2" type="stmt"/> + <line num="76" count="2" type="stmt"/> + <line num="77" count="2" type="stmt"/> + <line num="79" count="2" type="stmt"/> + <line num="82" count="1" type="stmt"/> + <line num="83" count="2" type="stmt"/> + <line num="85" count="2" type="stmt"/> + <line num="91" count="2" type="stmt"/> + <line num="94" count="1" type="stmt"/> + <line num="95" count="2" type="stmt"/> + <line num="100" count="2" type="stmt"/> + <line num="106" count="2" type="stmt"/> + <line num="110" count="1" type="stmt"/> + <line num="112" count="3" type="cond" truecount="2" falsecount="0"/> + <line num="113" count="1" type="stmt"/> + <line num="115" count="2" type="stmt"/> + <line num="118" count="2" type="stmt"/> + <line num="120" count="2" type="stmt"/> + <line num="126" count="2" type="stmt"/> + <line num="130" count="1" type="stmt"/> + <line num="133" count="4" type="cond" truecount="2" falsecount="0"/> + <line num="134" count="1" type="stmt"/> + <line num="136" count="3" type="stmt"/> + <line num="137" count="3" type="stmt"/> + <line num="140" count="3" type="stmt"/> + <line num="144" count="3" type="cond" truecount="2" falsecount="0"/> + <line num="145" count="2" type="cond" truecount="2" falsecount="0"/> + <line num="146" count="1" type="stmt"/> + <line num="147" count="1" type="cond" truecount="1" falsecount="1"/> + <line num="148" count="1" type="stmt"/> + <line num="150" count="0" type="stmt"/> + <line num="154" count="2" type="stmt"/> + <line num="160" count="2" type="stmt"/> + <line num="164" count="1" type="stmt"/> + <line num="167" count="4" type="cond" truecount="2" falsecount="0"/> + <line num="168" count="1" type="stmt"/> + <line num="170" count="3" type="stmt"/> + <line num="171" count="3" type="stmt"/> + <line num="174" count="3" type="stmt"/> + <line num="178" count="3" type="cond" truecount="2" falsecount="0"/> + <line num="179" count="2" type="cond" truecount="2" falsecount="0"/> + <line num="180" count="1" type="stmt"/> + <line num="181" count="1" type="cond" truecount="1" falsecount="1"/> + <line num="182" count="1" type="stmt"/> + <line num="184" count="0" type="stmt"/> + <line num="188" count="2" type="stmt"/> + <line num="194" count="2" type="stmt"/> + <line num="198" count="1" type="stmt"/> + <line num="201" count="3" type="cond" truecount="2" falsecount="0"/> + <line num="202" count="1" type="stmt"/> + <line num="204" count="2" type="stmt"/> + <line num="205" count="2" type="stmt"/> + <line num="208" count="2" type="stmt"/> + <line num="210" count="2" type="stmt"/> + <line num="216" count="2" type="stmt"/> + <line num="220" count="1" type="stmt"/> + <line num="221" count="0" type="stmt"/> + <line num="222" count="0" type="stmt"/> + <line num="224" count="0" type="stmt"/> + <line num="226" count="0" type="stmt"/> + <line num="227" count="0" type="stmt"/> + <line num="229" count="0" type="cond" truecount="0" falsecount="33"/> + <line num="242" count="0" type="stmt"/> + <line num="243" count="0" type="stmt"/> + <line num="250" count="0" type="stmt"/> + <line num="251" count="0" type="stmt"/> + <line num="265" count="0" type="stmt"/> + <line num="266" count="0" type="stmt"/> + <line num="269" count="0" type="stmt"/> + <line num="270" count="0" type="stmt"/> + <line num="273" count="0" type="stmt"/> + <line num="274" count="0" type="stmt"/> + <line num="277" count="0" type="stmt"/> + <line num="278" count="0" type="stmt"/> + <line num="281" count="0" type="stmt"/> + <line num="284" count="0" type="stmt"/> + <line num="285" count="0" type="stmt"/> + <line num="288" count="0" type="stmt"/> + <line num="294" count="0" type="stmt"/> + <line num="299" count="0" type="stmt"/> + </file> + <file name="ParserService.ts" path="C:\Users\Agustin\Desktop\repp_backend\src\Services\ParserService.ts"> + <metrics statements="9" coveredstatements="4" conditionals="0" coveredconditionals="0" methods="3" coveredmethods="1"/> + <line num="162" count="1" type="stmt"/> + <line num="163" count="0" type="stmt"/> + <line num="164" count="0" type="stmt"/> + <line num="165" count="0" type="stmt"/> + <line num="171" count="0" type="stmt"/> + <line num="173" count="0" type="stmt"/> + <line num="176" count="1" type="stmt"/> + <line num="177" count="12" type="stmt"/> + <line num="183" count="12" type="stmt"/> + </file> + </package> + </project> +</coverage> diff --git a/coverage/coverage-final.json b/coverage/coverage-final.json new file mode 100644 index 0000000..8a108cf --- /dev/null +++ b/coverage/coverage-final.json @@ -0,0 +1,5 @@ +{"C:\\Users\\Agustin\\Desktop\\repp_backend\\src\\Enum\\AgeBracket.ts": {"path":"C:\\Users\\Agustin\\Desktop\\repp_backend\\src\\Enum\\AgeBracket.ts","statementMap":{},"fnMap":{},"branchMap":{},"s":{},"f":{},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"4d1572768c9800acdc65f0f029569b690a821c51"} +,"C:\\Users\\Agustin\\Desktop\\repp_backend\\src\\Enum\\Sex.ts": {"path":"C:\\Users\\Agustin\\Desktop\\repp_backend\\src\\Enum\\Sex.ts","statementMap":{},"fnMap":{},"branchMap":{},"s":{},"f":{},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"fa1b26e19270070ac2ee0d6a64b5d36a79852d1d"} +,"C:\\Users\\Agustin\\Desktop\\repp_backend\\src\\Services\\ERCalculator.ts": {"path":"C:\\Users\\Agustin\\Desktop\\repp_backend\\src\\Services\\ERCalculator.ts","statementMap":{"0":{"start":{"line":15,"column":30},"end":{"line":20,"column":1}},"1":{"start":{"line":16,"column":2},"end":{"line":18,"column":3}},"2":{"start":{"line":17,"column":4},"end":{"line":17,"column":16}},"3":{"start":{"line":19,"column":2},"end":{"line":19,"column":15}},"4":{"start":{"line":23,"column":21},"end":{"line":36,"column":1}},"5":{"start":{"line":24,"column":30},"end":{"line":26,"column":57}},"6":{"start":{"line":28,"column":25},"end":{"line":28,"column":70}},"7":{"start":{"line":29,"column":29},"end":{"line":29,"column":74}},"8":{"start":{"line":31,"column":22},"end":{"line":33,"column":52}},"9":{"start":{"line":35,"column":2},"end":{"line":35,"column":13}},"10":{"start":{"line":39,"column":21},"end":{"line":42,"column":1}},"11":{"start":{"line":40,"column":22},"end":{"line":40,"column":64}},"12":{"start":{"line":41,"column":2},"end":{"line":41,"column":13}},"13":{"start":{"line":45,"column":21},"end":{"line":54,"column":1}},"14":{"start":{"line":46,"column":27},"end":{"line":47,"column":43}},"15":{"start":{"line":48,"column":27},"end":{"line":49,"column":43}},"16":{"start":{"line":51,"column":14},"end":{"line":52,"column":46}},"17":{"start":{"line":53,"column":2},"end":{"line":53,"column":13}},"18":{"start":{"line":57,"column":35},"end":{"line":66,"column":1}},"19":{"start":{"line":58,"column":31},"end":{"line":58,"column":79}},"20":{"start":{"line":59,"column":32},"end":{"line":59,"column":81}},"21":{"start":{"line":61,"column":27},"end":{"line":61,"column":75}},"22":{"start":{"line":62,"column":28},"end":{"line":62,"column":77}},"23":{"start":{"line":63,"column":25},"end":{"line":63,"column":91}},"24":{"start":{"line":65,"column":2},"end":{"line":65,"column":63}},"25":{"start":{"line":69,"column":35},"end":{"line":80,"column":1}},"26":{"start":{"line":70,"column":23},"end":{"line":70,"column":84}},"27":{"start":{"line":72,"column":31},"end":{"line":72,"column":83}},"28":{"start":{"line":73,"column":32},"end":{"line":73,"column":84}},"29":{"start":{"line":75,"column":27},"end":{"line":75,"column":75}},"30":{"start":{"line":76,"column":28},"end":{"line":76,"column":77}},"31":{"start":{"line":77,"column":25},"end":{"line":77,"column":91}},"32":{"start":{"line":79,"column":2},"end":{"line":79,"column":63}},"33":{"start":{"line":82,"column":31},"end":{"line":92,"column":1}},"34":{"start":{"line":83,"column":22},"end":{"line":83,"column":78}},"35":{"start":{"line":85,"column":54},"end":{"line":89,"column":3}},"36":{"start":{"line":91,"column":2},"end":{"line":91,"column":26}},"37":{"start":{"line":94,"column":27},"end":{"line":107,"column":1}},"38":{"start":{"line":95,"column":22},"end":{"line":98,"column":13}},"39":{"start":{"line":100,"column":54},"end":{"line":104,"column":3}},"40":{"start":{"line":106,"column":2},"end":{"line":106,"column":26}},"41":{"start":{"line":110,"column":28},"end":{"line":127,"column":1}},"42":{"start":{"line":112,"column":2},"end":{"line":116,"column":3}},"43":{"start":{"line":113,"column":4},"end":{"line":113,"column":36}},"44":{"start":{"line":115,"column":4},"end":{"line":115,"column":53}},"45":{"start":{"line":118,"column":22},"end":{"line":118,"column":37}},"46":{"start":{"line":120,"column":54},"end":{"line":124,"column":3}},"47":{"start":{"line":126,"column":2},"end":{"line":126,"column":26}},"48":{"start":{"line":130,"column":29},"end":{"line":161,"column":1}},"49":{"start":{"line":133,"column":2},"end":{"line":138,"column":3}},"50":{"start":{"line":134,"column":4},"end":{"line":134,"column":36}},"51":{"start":{"line":136,"column":4},"end":{"line":136,"column":38}},"52":{"start":{"line":137,"column":4},"end":{"line":137,"column":46}},"53":{"start":{"line":140,"column":28},"end":{"line":140,"column":37}},"54":{"start":{"line":144,"column":2},"end":{"line":152,"column":3}},"55":{"start":{"line":145,"column":4},"end":{"line":151,"column":5}},"56":{"start":{"line":146,"column":6},"end":{"line":146,"column":38}},"57":{"start":{"line":147,"column":11},"end":{"line":151,"column":5}},"58":{"start":{"line":148,"column":6},"end":{"line":148,"column":97}},"59":{"start":{"line":150,"column":6},"end":{"line":150,"column":90}},"60":{"start":{"line":154,"column":54},"end":{"line":158,"column":3}},"61":{"start":{"line":160,"column":2},"end":{"line":160,"column":26}},"62":{"start":{"line":164,"column":29},"end":{"line":195,"column":1}},"63":{"start":{"line":167,"column":2},"end":{"line":172,"column":3}},"64":{"start":{"line":168,"column":4},"end":{"line":168,"column":36}},"65":{"start":{"line":170,"column":4},"end":{"line":170,"column":38}},"66":{"start":{"line":171,"column":4},"end":{"line":171,"column":46}},"67":{"start":{"line":174,"column":28},"end":{"line":174,"column":37}},"68":{"start":{"line":178,"column":2},"end":{"line":186,"column":3}},"69":{"start":{"line":179,"column":4},"end":{"line":185,"column":5}},"70":{"start":{"line":180,"column":6},"end":{"line":180,"column":38}},"71":{"start":{"line":181,"column":11},"end":{"line":185,"column":5}},"72":{"start":{"line":182,"column":6},"end":{"line":182,"column":97}},"73":{"start":{"line":184,"column":6},"end":{"line":184,"column":90}},"74":{"start":{"line":188,"column":54},"end":{"line":192,"column":3}},"75":{"start":{"line":194,"column":2},"end":{"line":194,"column":26}},"76":{"start":{"line":198,"column":29},"end":{"line":217,"column":1}},"77":{"start":{"line":201,"column":2},"end":{"line":206,"column":3}},"78":{"start":{"line":202,"column":4},"end":{"line":202,"column":36}},"79":{"start":{"line":204,"column":4},"end":{"line":204,"column":38}},"80":{"start":{"line":205,"column":4},"end":{"line":205,"column":46}},"81":{"start":{"line":208,"column":30},"end":{"line":208,"column":39}},"82":{"start":{"line":210,"column":54},"end":{"line":214,"column":3}},"83":{"start":{"line":216,"column":2},"end":{"line":216,"column":26}},"84":{"start":{"line":220,"column":20},"end":{"line":300,"column":1}},"85":{"start":{"line":221,"column":22},"end":{"line":221,"column":23}},"86":{"start":{"line":222,"column":25},"end":{"line":222,"column":26}},"87":{"start":{"line":224,"column":52},"end":{"line":224,"column":54}},"88":{"start":{"line":226,"column":2},"end":{"line":286,"column":5}},"89":{"start":{"line":227,"column":4},"end":{"line":227,"column":38}},"90":{"start":{"line":229,"column":4},"end":{"line":283,"column":5}},"91":{"start":{"line":242,"column":8},"end":{"line":242,"column":65}},"92":{"start":{"line":243,"column":8},"end":{"line":243,"column":14}},"93":{"start":{"line":250,"column":8},"end":{"line":250,"column":61}},"94":{"start":{"line":251,"column":8},"end":{"line":251,"column":14}},"95":{"start":{"line":265,"column":8},"end":{"line":265,"column":68}},"96":{"start":{"line":266,"column":8},"end":{"line":266,"column":14}},"97":{"start":{"line":269,"column":8},"end":{"line":269,"column":69}},"98":{"start":{"line":270,"column":8},"end":{"line":270,"column":14}},"99":{"start":{"line":273,"column":8},"end":{"line":273,"column":69}},"100":{"start":{"line":274,"column":8},"end":{"line":274,"column":14}},"101":{"start":{"line":277,"column":8},"end":{"line":277,"column":69}},"102":{"start":{"line":278,"column":8},"end":{"line":278,"column":14}},"103":{"start":{"line":281,"column":8},"end":{"line":281,"column":81}},"104":{"start":{"line":284,"column":4},"end":{"line":284,"column":47}},"105":{"start":{"line":285,"column":4},"end":{"line":285,"column":40}},"106":{"start":{"line":288,"column":40},"end":{"line":292,"column":3}},"107":{"start":{"line":294,"column":37},"end":{"line":297,"column":3}},"108":{"start":{"line":299,"column":2},"end":{"line":299,"column":16}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":15,"column":30},"end":{"line":15,"column":31}},"loc":{"start":{"line":15,"column":110},"end":{"line":20,"column":1}},"line":15},"1":{"name":"(anonymous_1)","decl":{"start":{"line":23,"column":21},"end":{"line":23,"column":22}},"loc":{"start":{"line":23,"column":86},"end":{"line":36,"column":1}},"line":23},"2":{"name":"(anonymous_2)","decl":{"start":{"line":39,"column":21},"end":{"line":39,"column":22}},"loc":{"start":{"line":39,"column":68},"end":{"line":42,"column":1}},"line":39},"3":{"name":"(anonymous_3)","decl":{"start":{"line":45,"column":21},"end":{"line":45,"column":22}},"loc":{"start":{"line":45,"column":70},"end":{"line":54,"column":1}},"line":45},"4":{"name":"(anonymous_4)","decl":{"start":{"line":57,"column":35},"end":{"line":57,"column":36}},"loc":{"start":{"line":57,"column":125},"end":{"line":66,"column":1}},"line":57},"5":{"name":"(anonymous_5)","decl":{"start":{"line":69,"column":35},"end":{"line":69,"column":36}},"loc":{"start":{"line":69,"column":108},"end":{"line":80,"column":1}},"line":69},"6":{"name":"(anonymous_6)","decl":{"start":{"line":82,"column":31},"end":{"line":82,"column":32}},"loc":{"start":{"line":82,"column":97},"end":{"line":92,"column":1}},"line":82},"7":{"name":"(anonymous_7)","decl":{"start":{"line":94,"column":27},"end":{"line":94,"column":28}},"loc":{"start":{"line":94,"column":93},"end":{"line":107,"column":1}},"line":94},"8":{"name":"(anonymous_8)","decl":{"start":{"line":110,"column":28},"end":{"line":110,"column":29}},"loc":{"start":{"line":110,"column":111},"end":{"line":127,"column":1}},"line":110},"9":{"name":"(anonymous_9)","decl":{"start":{"line":130,"column":29},"end":{"line":130,"column":30}},"loc":{"start":{"line":130,"column":112},"end":{"line":161,"column":1}},"line":130},"10":{"name":"(anonymous_10)","decl":{"start":{"line":164,"column":29},"end":{"line":164,"column":30}},"loc":{"start":{"line":164,"column":112},"end":{"line":195,"column":1}},"line":164},"11":{"name":"(anonymous_11)","decl":{"start":{"line":198,"column":29},"end":{"line":198,"column":30}},"loc":{"start":{"line":198,"column":112},"end":{"line":217,"column":1}},"line":198},"12":{"name":"(anonymous_12)","decl":{"start":{"line":220,"column":20},"end":{"line":220,"column":21}},"loc":{"start":{"line":220,"column":103},"end":{"line":300,"column":1}},"line":220},"13":{"name":"(anonymous_13)","decl":{"start":{"line":226,"column":26},"end":{"line":226,"column":27}},"loc":{"start":{"line":226,"column":65},"end":{"line":286,"column":3}},"line":226}},"branchMap":{"0":{"loc":{"start":{"line":16,"column":2},"end":{"line":18,"column":3}},"type":"if","locations":[{"start":{"line":16,"column":2},"end":{"line":18,"column":3}},{"start":{"line":16,"column":2},"end":{"line":18,"column":3}}],"line":16},"1":{"loc":{"start":{"line":112,"column":2},"end":{"line":116,"column":3}},"type":"if","locations":[{"start":{"line":112,"column":2},"end":{"line":116,"column":3}},{"start":{"line":112,"column":2},"end":{"line":116,"column":3}}],"line":112},"2":{"loc":{"start":{"line":133,"column":2},"end":{"line":138,"column":3}},"type":"if","locations":[{"start":{"line":133,"column":2},"end":{"line":138,"column":3}},{"start":{"line":133,"column":2},"end":{"line":138,"column":3}}],"line":133},"3":{"loc":{"start":{"line":144,"column":2},"end":{"line":152,"column":3}},"type":"if","locations":[{"start":{"line":144,"column":2},"end":{"line":152,"column":3}},{"start":{"line":144,"column":2},"end":{"line":152,"column":3}}],"line":144},"4":{"loc":{"start":{"line":145,"column":4},"end":{"line":151,"column":5}},"type":"if","locations":[{"start":{"line":145,"column":4},"end":{"line":151,"column":5}},{"start":{"line":145,"column":4},"end":{"line":151,"column":5}}],"line":145},"5":{"loc":{"start":{"line":147,"column":11},"end":{"line":151,"column":5}},"type":"if","locations":[{"start":{"line":147,"column":11},"end":{"line":151,"column":5}},{"start":{"line":147,"column":11},"end":{"line":151,"column":5}}],"line":147},"6":{"loc":{"start":{"line":167,"column":2},"end":{"line":172,"column":3}},"type":"if","locations":[{"start":{"line":167,"column":2},"end":{"line":172,"column":3}},{"start":{"line":167,"column":2},"end":{"line":172,"column":3}}],"line":167},"7":{"loc":{"start":{"line":178,"column":2},"end":{"line":186,"column":3}},"type":"if","locations":[{"start":{"line":178,"column":2},"end":{"line":186,"column":3}},{"start":{"line":178,"column":2},"end":{"line":186,"column":3}}],"line":178},"8":{"loc":{"start":{"line":179,"column":4},"end":{"line":185,"column":5}},"type":"if","locations":[{"start":{"line":179,"column":4},"end":{"line":185,"column":5}},{"start":{"line":179,"column":4},"end":{"line":185,"column":5}}],"line":179},"9":{"loc":{"start":{"line":181,"column":11},"end":{"line":185,"column":5}},"type":"if","locations":[{"start":{"line":181,"column":11},"end":{"line":185,"column":5}},{"start":{"line":181,"column":11},"end":{"line":185,"column":5}}],"line":181},"10":{"loc":{"start":{"line":201,"column":2},"end":{"line":206,"column":3}},"type":"if","locations":[{"start":{"line":201,"column":2},"end":{"line":206,"column":3}},{"start":{"line":201,"column":2},"end":{"line":206,"column":3}}],"line":201},"11":{"loc":{"start":{"line":229,"column":4},"end":{"line":283,"column":5}},"type":"switch","locations":[{"start":{"line":230,"column":6},"end":{"line":230,"column":25}},{"start":{"line":231,"column":6},"end":{"line":231,"column":25}},{"start":{"line":232,"column":6},"end":{"line":232,"column":25}},{"start":{"line":233,"column":6},"end":{"line":233,"column":25}},{"start":{"line":234,"column":6},"end":{"line":234,"column":25}},{"start":{"line":235,"column":6},"end":{"line":235,"column":25}},{"start":{"line":236,"column":6},"end":{"line":236,"column":25}},{"start":{"line":237,"column":6},"end":{"line":237,"column":25}},{"start":{"line":238,"column":6},"end":{"line":238,"column":25}},{"start":{"line":239,"column":6},"end":{"line":239,"column":25}},{"start":{"line":240,"column":6},"end":{"line":240,"column":26}},{"start":{"line":241,"column":6},"end":{"line":244,"column":7}},{"start":{"line":245,"column":6},"end":{"line":245,"column":25}},{"start":{"line":246,"column":6},"end":{"line":246,"column":25}},{"start":{"line":247,"column":6},"end":{"line":247,"column":25}},{"start":{"line":248,"column":6},"end":{"line":248,"column":25}},{"start":{"line":249,"column":6},"end":{"line":252,"column":7}},{"start":{"line":253,"column":6},"end":{"line":253,"column":25}},{"start":{"line":254,"column":6},"end":{"line":254,"column":25}},{"start":{"line":255,"column":6},"end":{"line":255,"column":25}},{"start":{"line":256,"column":6},"end":{"line":256,"column":25}},{"start":{"line":257,"column":6},"end":{"line":257,"column":26}},{"start":{"line":258,"column":6},"end":{"line":258,"column":26}},{"start":{"line":259,"column":6},"end":{"line":259,"column":26}},{"start":{"line":260,"column":6},"end":{"line":260,"column":26}},{"start":{"line":261,"column":6},"end":{"line":261,"column":26}},{"start":{"line":262,"column":6},"end":{"line":262,"column":26}},{"start":{"line":263,"column":6},"end":{"line":263,"column":26}},{"start":{"line":264,"column":6},"end":{"line":267,"column":7}},{"start":{"line":268,"column":6},"end":{"line":271,"column":7}},{"start":{"line":272,"column":6},"end":{"line":275,"column":7}},{"start":{"line":276,"column":6},"end":{"line":279,"column":7}},{"start":{"line":280,"column":6},"end":{"line":282,"column":7}}],"line":229}},"s":{"0":1,"1":4,"2":3,"3":1,"4":1,"5":5,"6":5,"7":5,"8":5,"9":5,"10":1,"11":11,"12":11,"13":1,"14":11,"15":11,"16":11,"17":11,"18":1,"19":6,"20":6,"21":6,"22":6,"23":6,"24":6,"25":1,"26":2,"27":2,"28":2,"29":2,"30":2,"31":2,"32":2,"33":1,"34":2,"35":2,"36":2,"37":1,"38":2,"39":2,"40":2,"41":1,"42":3,"43":1,"44":2,"45":2,"46":2,"47":2,"48":1,"49":4,"50":1,"51":3,"52":3,"53":3,"54":3,"55":2,"56":1,"57":1,"58":1,"59":0,"60":2,"61":2,"62":1,"63":4,"64":1,"65":3,"66":3,"67":3,"68":3,"69":2,"70":1,"71":1,"72":1,"73":0,"74":2,"75":2,"76":1,"77":3,"78":1,"79":2,"80":2,"81":2,"82":2,"83":2,"84":1,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0},"f":{"0":4,"1":5,"2":11,"3":11,"4":6,"5":2,"6":2,"7":2,"8":3,"9":4,"10":4,"11":3,"12":0,"13":0},"b":{"0":[3,1],"1":[1,2],"2":[1,3],"3":[2,1],"4":[1,1],"5":[1,0],"6":[1,3],"7":[2,1],"8":[1,1],"9":[1,0],"10":[1,2],"11":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"b097bc14cc9b65777b3ff72a3996f7fee6258a50"} +,"C:\\Users\\Agustin\\Desktop\\repp_backend\\src\\Services\\ParserService.ts": {"path":"C:\\Users\\Agustin\\Desktop\\repp_backend\\src\\Services\\ParserService.ts","statementMap":{"0":{"start":{"line":162,"column":20},"end":{"line":174,"column":1}},"1":{"start":{"line":163,"column":32},"end":{"line":163,"column":34}},"2":{"start":{"line":164,"column":2},"end":{"line":172,"column":5}},"3":{"start":{"line":165,"column":28},"end":{"line":170,"column":5}},"4":{"start":{"line":171,"column":4},"end":{"line":171,"column":26}},"5":{"start":{"line":173,"column":2},"end":{"line":173,"column":19}},"6":{"start":{"line":176,"column":21},"end":{"line":184,"column":1}},"7":{"start":{"line":177,"column":33},"end":{"line":182,"column":3}},"8":{"start":{"line":183,"column":2},"end":{"line":183,"column":18}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":162,"column":20},"end":{"line":162,"column":21}},"loc":{"start":{"line":162,"column":60},"end":{"line":174,"column":1}},"line":162},"1":{"name":"(anonymous_1)","decl":{"start":{"line":164,"column":17},"end":{"line":164,"column":18}},"loc":{"start":{"line":164,"column":45},"end":{"line":172,"column":3}},"line":164},"2":{"name":"(anonymous_2)","decl":{"start":{"line":176,"column":21},"end":{"line":176,"column":22}},"loc":{"start":{"line":176,"column":56},"end":{"line":184,"column":1}},"line":176}},"branchMap":{},"s":{"0":1,"1":0,"2":0,"3":0,"4":0,"5":0,"6":1,"7":12,"8":12},"f":{"0":0,"1":0,"2":12},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"328b4ec746ba2767071ea49b7d3eb3eece8ff87f"} +} diff --git a/coverage/lcov-report/Enum/AgeBracket.ts.html b/coverage/lcov-report/Enum/AgeBracket.ts.html new file mode 100644 index 0000000..a02c3af --- /dev/null +++ b/coverage/lcov-report/Enum/AgeBracket.ts.html @@ -0,0 +1,188 @@ + +<!doctype html> +<html lang="en"> + +<head> + <title>Code coverage report for Enum/AgeBracket.ts</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="../prettify.css" /> + <link rel="stylesheet" href="../base.css" /> + <link rel="shortcut icon" type="image/x-icon" href="../favicon.png" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style type='text/css'> + .coverage-summary .sorter { + background-image: url(../sort-arrow-sprite.png); + } + </style> +</head> + +<body> +<div class='wrapper'> + <div class='pad1'> + <h1><a href="../index.html">All files</a> / <a href="index.html">Enum</a> AgeBracket.ts</h1> + <div class='clearfix'> + + <div class='fl pad1y space-right2'> + <span class="strong">0% </span> + <span class="quiet">Statements</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">0% </span> + <span class="quiet">Branches</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">0% </span> + <span class="quiet">Functions</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">0% </span> + <span class="quiet">Lines</span> + <span class='fraction'>0/0</span> + </div> + + + </div> + <p class="quiet"> + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + </p> + </div> + <div class='status-line low'></div> + <pre><table class="coverage"> +<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> +<a name='L2'></a><a href='#L2'>2</a> +<a name='L3'></a><a href='#L3'>3</a> +<a name='L4'></a><a href='#L4'>4</a> +<a name='L5'></a><a href='#L5'>5</a> +<a name='L6'></a><a href='#L6'>6</a> +<a name='L7'></a><a href='#L7'>7</a> +<a name='L8'></a><a href='#L8'>8</a> +<a name='L9'></a><a href='#L9'>9</a> +<a name='L10'></a><a href='#L10'>10</a> +<a name='L11'></a><a href='#L11'>11</a> +<a name='L12'></a><a href='#L12'>12</a> +<a name='L13'></a><a href='#L13'>13</a> +<a name='L14'></a><a href='#L14'>14</a> +<a name='L15'></a><a href='#L15'>15</a> +<a name='L16'></a><a href='#L16'>16</a> +<a name='L17'></a><a href='#L17'>17</a> +<a name='L18'></a><a href='#L18'>18</a> +<a name='L19'></a><a href='#L19'>19</a> +<a name='L20'></a><a href='#L20'>20</a> +<a name='L21'></a><a href='#L21'>21</a> +<a name='L22'></a><a href='#L22'>22</a> +<a name='L23'></a><a href='#L23'>23</a> +<a name='L24'></a><a href='#L24'>24</a> +<a name='L25'></a><a href='#L25'>25</a> +<a name='L26'></a><a href='#L26'>26</a> +<a name='L27'></a><a href='#L27'>27</a> +<a name='L28'></a><a href='#L28'>28</a> +<a name='L29'></a><a href='#L29'>29</a> +<a name='L30'></a><a href='#L30'>30</a> +<a name='L31'></a><a href='#L31'>31</a> +<a name='L32'></a><a href='#L32'>32</a> +<a name='L33'></a><a href='#L33'>33</a> +<a name='L34'></a><a href='#L34'>34</a> +<a name='L35'></a><a href='#L35'>35</a> +<a name='L36'></a><a href='#L36'>36</a> +<a name='L37'></a><a href='#L37'>37</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">enum AgeBracket { + m0 = '0 meses', + m1 = '1 meses', + m2 = '2 meses', + m3 = '3 meses', + m4 = '4 meses', + m5 = '5 meses', + m6 = '6 meses', + m7 = '7 meses', + m8 = '8 meses', + m9 = '9 meses', + m10 = '10 meses', + m11 = '11 meses', + a1 = '1 años', + a2 = '2 años', + a3 = '3 años', + a4 = '4 años', + a5 = '5 años', + a6 = '6 años', + a7 = '7 años', + a8 = '8 años', + a9 = '9 años', + a10 = '10 años', + a11 = '11 años', + a12 = '12 años', + a13 = '13 años', + a14 = '14 años', + a15 = '15 años', + a16 = '16 años', + a17 = '17 años', + a18_29 = '18-29 años', + a30_59 = '30-59 años', + a60 = '60+ años', +} + +export default AgeBracket; + </pre></td></tr></table></pre> + + <div class='push'></div><!-- for sticky footer --> + </div><!-- /wrapper --> + <div class='footer quiet pad2 space-top1 center small'> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank">istanbul</a> + at Thu Sep 30 2021 21:41:26 GMT-0300 (hora estándar de Uruguay) + </div> + </div> + <script src="../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../sorter.js"></script> + <script src="../block-navigation.js"></script> + </body> +</html> + \ No newline at end of file diff --git a/coverage/lcov-report/Enum/Sex.ts.html b/coverage/lcov-report/Enum/Sex.ts.html new file mode 100644 index 0000000..a817541 --- /dev/null +++ b/coverage/lcov-report/Enum/Sex.ts.html @@ -0,0 +1,98 @@ + +<!doctype html> +<html lang="en"> + +<head> + <title>Code coverage report for Enum/Sex.ts</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="../prettify.css" /> + <link rel="stylesheet" href="../base.css" /> + <link rel="shortcut icon" type="image/x-icon" href="../favicon.png" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style type='text/css'> + .coverage-summary .sorter { + background-image: url(../sort-arrow-sprite.png); + } + </style> +</head> + +<body> +<div class='wrapper'> + <div class='pad1'> + <h1><a href="../index.html">All files</a> / <a href="index.html">Enum</a> Sex.ts</h1> + <div class='clearfix'> + + <div class='fl pad1y space-right2'> + <span class="strong">0% </span> + <span class="quiet">Statements</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">0% </span> + <span class="quiet">Branches</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">0% </span> + <span class="quiet">Functions</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">0% </span> + <span class="quiet">Lines</span> + <span class='fraction'>0/0</span> + </div> + + + </div> + <p class="quiet"> + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + </p> + </div> + <div class='status-line low'></div> + <pre><table class="coverage"> +<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> +<a name='L2'></a><a href='#L2'>2</a> +<a name='L3'></a><a href='#L3'>3</a> +<a name='L4'></a><a href='#L4'>4</a> +<a name='L5'></a><a href='#L5'>5</a> +<a name='L6'></a><a href='#L6'>6</a> +<a name='L7'></a><a href='#L7'>7</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">enum Sex { + Male = 'Masculino', + Female = 'Femenino', +} + +export default Sex; + </pre></td></tr></table></pre> + + <div class='push'></div><!-- for sticky footer --> + </div><!-- /wrapper --> + <div class='footer quiet pad2 space-top1 center small'> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank">istanbul</a> + at Thu Sep 30 2021 21:41:26 GMT-0300 (hora estándar de Uruguay) + </div> + </div> + <script src="../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../sorter.js"></script> + <script src="../block-navigation.js"></script> + </body> +</html> + \ No newline at end of file diff --git a/coverage/lcov-report/Enum/index.html b/coverage/lcov-report/Enum/index.html new file mode 100644 index 0000000..7ef6aa3 --- /dev/null +++ b/coverage/lcov-report/Enum/index.html @@ -0,0 +1,126 @@ + +<!doctype html> +<html lang="en"> + +<head> + <title>Code coverage report for Enum</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="../prettify.css" /> + <link rel="stylesheet" href="../base.css" /> + <link rel="shortcut icon" type="image/x-icon" href="../favicon.png" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style type='text/css'> + .coverage-summary .sorter { + background-image: url(../sort-arrow-sprite.png); + } + </style> +</head> + +<body> +<div class='wrapper'> + <div class='pad1'> + <h1><a href="../index.html">All files</a> Enum</h1> + <div class='clearfix'> + + <div class='fl pad1y space-right2'> + <span class="strong">0% </span> + <span class="quiet">Statements</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">0% </span> + <span class="quiet">Branches</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">0% </span> + <span class="quiet">Functions</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">0% </span> + <span class="quiet">Lines</span> + <span class='fraction'>0/0</span> + </div> + + + </div> + <p class="quiet"> + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + </p> + </div> + <div class='status-line low'></div> + <div class="pad1"> +<table class="coverage-summary"> +<thead> +<tr> + <th data-col="file" data-fmt="html" data-html="true" class="file">File</th> + <th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th> + <th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th> + <th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th> + <th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th> + <th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th> + <th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th> + <th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th> + <th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th> + <th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th> +</tr> +</thead> +<tbody><tr> + <td class="file empty" data-value="AgeBracket.ts"><a href="AgeBracket.ts.html">AgeBracket.ts</a></td> + <td data-value="0" class="pic empty"> + <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div> + </td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + </tr> + +<tr> + <td class="file empty" data-value="Sex.ts"><a href="Sex.ts.html">Sex.ts</a></td> + <td data-value="0" class="pic empty"> + <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div> + </td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + </tr> + +</tbody> +</table> +</div> + <div class='push'></div><!-- for sticky footer --> + </div><!-- /wrapper --> + <div class='footer quiet pad2 space-top1 center small'> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank">istanbul</a> + at Thu Sep 30 2021 21:41:26 GMT-0300 (hora estándar de Uruguay) + </div> + </div> + <script src="../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../sorter.js"></script> + <script src="../block-navigation.js"></script> + </body> +</html> + \ No newline at end of file diff --git a/coverage/lcov-report/Services/ERCalculator.ts.html b/coverage/lcov-report/Services/ERCalculator.ts.html new file mode 100644 index 0000000..73fae76 --- /dev/null +++ b/coverage/lcov-report/Services/ERCalculator.ts.html @@ -0,0 +1,1028 @@ + +<!doctype html> +<html lang="en"> + +<head> + <title>Code coverage report for Services/ERCalculator.ts</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="../prettify.css" /> + <link rel="stylesheet" href="../base.css" /> + <link rel="shortcut icon" type="image/x-icon" href="../favicon.png" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style type='text/css'> + .coverage-summary .sorter { + background-image: url(../sort-arrow-sprite.png); + } + </style> +</head> + +<body> +<div class='wrapper'> + <div class='pad1'> + <h1><a href="../index.html">All files</a> / <a href="index.html">Services</a> ERCalculator.ts</h1> + <div class='clearfix'> + + <div class='fl pad1y space-right2'> + <span class="strong">76.14% </span> + <span class="quiet">Statements</span> + <span class='fraction'>83/109</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">36.36% </span> + <span class="quiet">Branches</span> + <span class='fraction'>20/55</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">85.71% </span> + <span class="quiet">Functions</span> + <span class='fraction'>12/14</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">76.14% </span> + <span class="quiet">Lines</span> + <span class='fraction'>83/109</span> + </div> + + + </div> + <p class="quiet"> + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + </p> + </div> + <div class='status-line medium'></div> + <pre><table class="coverage"> +<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> +<a name='L2'></a><a href='#L2'>2</a> +<a name='L3'></a><a href='#L3'>3</a> +<a name='L4'></a><a href='#L4'>4</a> +<a name='L5'></a><a href='#L5'>5</a> +<a name='L6'></a><a href='#L6'>6</a> +<a name='L7'></a><a href='#L7'>7</a> +<a name='L8'></a><a href='#L8'>8</a> +<a name='L9'></a><a href='#L9'>9</a> +<a name='L10'></a><a href='#L10'>10</a> +<a name='L11'></a><a href='#L11'>11</a> +<a name='L12'></a><a href='#L12'>12</a> +<a name='L13'></a><a href='#L13'>13</a> +<a name='L14'></a><a href='#L14'>14</a> +<a name='L15'></a><a href='#L15'>15</a> +<a name='L16'></a><a href='#L16'>16</a> +<a name='L17'></a><a href='#L17'>17</a> +<a name='L18'></a><a href='#L18'>18</a> +<a name='L19'></a><a href='#L19'>19</a> +<a name='L20'></a><a href='#L20'>20</a> +<a name='L21'></a><a href='#L21'>21</a> +<a name='L22'></a><a href='#L22'>22</a> +<a name='L23'></a><a href='#L23'>23</a> +<a name='L24'></a><a href='#L24'>24</a> +<a name='L25'></a><a href='#L25'>25</a> +<a name='L26'></a><a href='#L26'>26</a> +<a name='L27'></a><a href='#L27'>27</a> +<a name='L28'></a><a href='#L28'>28</a> +<a name='L29'></a><a href='#L29'>29</a> +<a name='L30'></a><a href='#L30'>30</a> +<a name='L31'></a><a href='#L31'>31</a> +<a name='L32'></a><a href='#L32'>32</a> +<a name='L33'></a><a href='#L33'>33</a> +<a name='L34'></a><a href='#L34'>34</a> +<a name='L35'></a><a href='#L35'>35</a> +<a name='L36'></a><a href='#L36'>36</a> +<a name='L37'></a><a href='#L37'>37</a> +<a name='L38'></a><a href='#L38'>38</a> +<a name='L39'></a><a href='#L39'>39</a> +<a name='L40'></a><a href='#L40'>40</a> +<a name='L41'></a><a href='#L41'>41</a> +<a name='L42'></a><a href='#L42'>42</a> +<a name='L43'></a><a href='#L43'>43</a> +<a name='L44'></a><a href='#L44'>44</a> +<a name='L45'></a><a href='#L45'>45</a> +<a name='L46'></a><a href='#L46'>46</a> +<a name='L47'></a><a href='#L47'>47</a> +<a name='L48'></a><a href='#L48'>48</a> +<a name='L49'></a><a href='#L49'>49</a> +<a name='L50'></a><a href='#L50'>50</a> +<a name='L51'></a><a href='#L51'>51</a> +<a name='L52'></a><a href='#L52'>52</a> +<a name='L53'></a><a href='#L53'>53</a> +<a name='L54'></a><a href='#L54'>54</a> +<a name='L55'></a><a href='#L55'>55</a> +<a name='L56'></a><a href='#L56'>56</a> +<a name='L57'></a><a href='#L57'>57</a> +<a name='L58'></a><a href='#L58'>58</a> +<a name='L59'></a><a href='#L59'>59</a> +<a name='L60'></a><a href='#L60'>60</a> +<a name='L61'></a><a href='#L61'>61</a> +<a name='L62'></a><a href='#L62'>62</a> +<a name='L63'></a><a href='#L63'>63</a> +<a name='L64'></a><a href='#L64'>64</a> +<a name='L65'></a><a href='#L65'>65</a> +<a name='L66'></a><a href='#L66'>66</a> +<a name='L67'></a><a href='#L67'>67</a> +<a name='L68'></a><a href='#L68'>68</a> +<a name='L69'></a><a href='#L69'>69</a> +<a name='L70'></a><a href='#L70'>70</a> +<a name='L71'></a><a href='#L71'>71</a> +<a name='L72'></a><a href='#L72'>72</a> +<a name='L73'></a><a href='#L73'>73</a> +<a name='L74'></a><a href='#L74'>74</a> +<a name='L75'></a><a href='#L75'>75</a> +<a name='L76'></a><a href='#L76'>76</a> +<a name='L77'></a><a href='#L77'>77</a> +<a name='L78'></a><a href='#L78'>78</a> +<a name='L79'></a><a href='#L79'>79</a> +<a name='L80'></a><a href='#L80'>80</a> +<a name='L81'></a><a href='#L81'>81</a> +<a name='L82'></a><a href='#L82'>82</a> +<a name='L83'></a><a href='#L83'>83</a> +<a name='L84'></a><a href='#L84'>84</a> +<a name='L85'></a><a href='#L85'>85</a> +<a name='L86'></a><a href='#L86'>86</a> +<a name='L87'></a><a href='#L87'>87</a> +<a name='L88'></a><a href='#L88'>88</a> +<a name='L89'></a><a href='#L89'>89</a> +<a name='L90'></a><a href='#L90'>90</a> +<a name='L91'></a><a href='#L91'>91</a> +<a name='L92'></a><a href='#L92'>92</a> +<a name='L93'></a><a href='#L93'>93</a> +<a name='L94'></a><a href='#L94'>94</a> +<a name='L95'></a><a href='#L95'>95</a> +<a name='L96'></a><a href='#L96'>96</a> +<a name='L97'></a><a href='#L97'>97</a> +<a name='L98'></a><a href='#L98'>98</a> +<a name='L99'></a><a href='#L99'>99</a> +<a name='L100'></a><a href='#L100'>100</a> +<a name='L101'></a><a href='#L101'>101</a> +<a name='L102'></a><a href='#L102'>102</a> +<a name='L103'></a><a href='#L103'>103</a> +<a name='L104'></a><a href='#L104'>104</a> +<a name='L105'></a><a href='#L105'>105</a> +<a name='L106'></a><a href='#L106'>106</a> +<a name='L107'></a><a href='#L107'>107</a> +<a name='L108'></a><a href='#L108'>108</a> +<a name='L109'></a><a href='#L109'>109</a> +<a name='L110'></a><a href='#L110'>110</a> +<a name='L111'></a><a href='#L111'>111</a> +<a name='L112'></a><a href='#L112'>112</a> +<a name='L113'></a><a href='#L113'>113</a> +<a name='L114'></a><a href='#L114'>114</a> +<a name='L115'></a><a href='#L115'>115</a> +<a name='L116'></a><a href='#L116'>116</a> +<a name='L117'></a><a href='#L117'>117</a> +<a name='L118'></a><a href='#L118'>118</a> +<a name='L119'></a><a href='#L119'>119</a> +<a name='L120'></a><a href='#L120'>120</a> +<a name='L121'></a><a href='#L121'>121</a> +<a name='L122'></a><a href='#L122'>122</a> +<a name='L123'></a><a href='#L123'>123</a> +<a name='L124'></a><a href='#L124'>124</a> +<a name='L125'></a><a href='#L125'>125</a> +<a name='L126'></a><a href='#L126'>126</a> +<a name='L127'></a><a href='#L127'>127</a> +<a name='L128'></a><a href='#L128'>128</a> +<a name='L129'></a><a href='#L129'>129</a> +<a name='L130'></a><a href='#L130'>130</a> +<a name='L131'></a><a href='#L131'>131</a> +<a name='L132'></a><a href='#L132'>132</a> +<a name='L133'></a><a href='#L133'>133</a> +<a name='L134'></a><a href='#L134'>134</a> +<a name='L135'></a><a href='#L135'>135</a> +<a name='L136'></a><a href='#L136'>136</a> +<a name='L137'></a><a href='#L137'>137</a> +<a name='L138'></a><a href='#L138'>138</a> +<a name='L139'></a><a href='#L139'>139</a> +<a name='L140'></a><a href='#L140'>140</a> +<a name='L141'></a><a href='#L141'>141</a> +<a name='L142'></a><a href='#L142'>142</a> +<a name='L143'></a><a href='#L143'>143</a> +<a name='L144'></a><a href='#L144'>144</a> +<a name='L145'></a><a href='#L145'>145</a> +<a name='L146'></a><a href='#L146'>146</a> +<a name='L147'></a><a href='#L147'>147</a> +<a name='L148'></a><a href='#L148'>148</a> +<a name='L149'></a><a href='#L149'>149</a> +<a name='L150'></a><a href='#L150'>150</a> +<a name='L151'></a><a href='#L151'>151</a> +<a name='L152'></a><a href='#L152'>152</a> +<a name='L153'></a><a href='#L153'>153</a> +<a name='L154'></a><a href='#L154'>154</a> +<a name='L155'></a><a href='#L155'>155</a> +<a name='L156'></a><a href='#L156'>156</a> +<a name='L157'></a><a href='#L157'>157</a> +<a name='L158'></a><a href='#L158'>158</a> +<a name='L159'></a><a href='#L159'>159</a> +<a name='L160'></a><a href='#L160'>160</a> +<a name='L161'></a><a href='#L161'>161</a> +<a name='L162'></a><a href='#L162'>162</a> +<a name='L163'></a><a href='#L163'>163</a> +<a name='L164'></a><a href='#L164'>164</a> +<a name='L165'></a><a href='#L165'>165</a> +<a name='L166'></a><a href='#L166'>166</a> +<a name='L167'></a><a href='#L167'>167</a> +<a name='L168'></a><a href='#L168'>168</a> +<a name='L169'></a><a href='#L169'>169</a> +<a name='L170'></a><a href='#L170'>170</a> +<a name='L171'></a><a href='#L171'>171</a> +<a name='L172'></a><a href='#L172'>172</a> +<a name='L173'></a><a href='#L173'>173</a> +<a name='L174'></a><a href='#L174'>174</a> +<a name='L175'></a><a href='#L175'>175</a> +<a name='L176'></a><a href='#L176'>176</a> +<a name='L177'></a><a href='#L177'>177</a> +<a name='L178'></a><a href='#L178'>178</a> +<a name='L179'></a><a href='#L179'>179</a> +<a name='L180'></a><a href='#L180'>180</a> +<a name='L181'></a><a href='#L181'>181</a> +<a name='L182'></a><a href='#L182'>182</a> +<a name='L183'></a><a href='#L183'>183</a> +<a name='L184'></a><a href='#L184'>184</a> +<a name='L185'></a><a href='#L185'>185</a> +<a name='L186'></a><a href='#L186'>186</a> +<a name='L187'></a><a href='#L187'>187</a> +<a name='L188'></a><a href='#L188'>188</a> +<a name='L189'></a><a href='#L189'>189</a> +<a name='L190'></a><a href='#L190'>190</a> +<a name='L191'></a><a href='#L191'>191</a> +<a name='L192'></a><a href='#L192'>192</a> +<a name='L193'></a><a href='#L193'>193</a> +<a name='L194'></a><a href='#L194'>194</a> +<a name='L195'></a><a href='#L195'>195</a> +<a name='L196'></a><a href='#L196'>196</a> +<a name='L197'></a><a href='#L197'>197</a> +<a name='L198'></a><a href='#L198'>198</a> +<a name='L199'></a><a href='#L199'>199</a> +<a name='L200'></a><a href='#L200'>200</a> +<a name='L201'></a><a href='#L201'>201</a> +<a name='L202'></a><a href='#L202'>202</a> +<a name='L203'></a><a href='#L203'>203</a> +<a name='L204'></a><a href='#L204'>204</a> +<a name='L205'></a><a href='#L205'>205</a> +<a name='L206'></a><a href='#L206'>206</a> +<a name='L207'></a><a href='#L207'>207</a> +<a name='L208'></a><a href='#L208'>208</a> +<a name='L209'></a><a href='#L209'>209</a> +<a name='L210'></a><a href='#L210'>210</a> +<a name='L211'></a><a href='#L211'>211</a> +<a name='L212'></a><a href='#L212'>212</a> +<a name='L213'></a><a href='#L213'>213</a> +<a name='L214'></a><a href='#L214'>214</a> +<a name='L215'></a><a href='#L215'>215</a> +<a name='L216'></a><a href='#L216'>216</a> +<a name='L217'></a><a href='#L217'>217</a> +<a name='L218'></a><a href='#L218'>218</a> +<a name='L219'></a><a href='#L219'>219</a> +<a name='L220'></a><a href='#L220'>220</a> +<a name='L221'></a><a href='#L221'>221</a> +<a name='L222'></a><a href='#L222'>222</a> +<a name='L223'></a><a href='#L223'>223</a> +<a name='L224'></a><a href='#L224'>224</a> +<a name='L225'></a><a href='#L225'>225</a> +<a name='L226'></a><a href='#L226'>226</a> +<a name='L227'></a><a href='#L227'>227</a> +<a name='L228'></a><a href='#L228'>228</a> +<a name='L229'></a><a href='#L229'>229</a> +<a name='L230'></a><a href='#L230'>230</a> +<a name='L231'></a><a href='#L231'>231</a> +<a name='L232'></a><a href='#L232'>232</a> +<a name='L233'></a><a href='#L233'>233</a> +<a name='L234'></a><a href='#L234'>234</a> +<a name='L235'></a><a href='#L235'>235</a> +<a name='L236'></a><a href='#L236'>236</a> +<a name='L237'></a><a href='#L237'>237</a> +<a name='L238'></a><a href='#L238'>238</a> +<a name='L239'></a><a href='#L239'>239</a> +<a name='L240'></a><a href='#L240'>240</a> +<a name='L241'></a><a href='#L241'>241</a> +<a name='L242'></a><a href='#L242'>242</a> +<a name='L243'></a><a href='#L243'>243</a> +<a name='L244'></a><a href='#L244'>244</a> +<a name='L245'></a><a href='#L245'>245</a> +<a name='L246'></a><a href='#L246'>246</a> +<a name='L247'></a><a href='#L247'>247</a> +<a name='L248'></a><a href='#L248'>248</a> +<a name='L249'></a><a href='#L249'>249</a> +<a name='L250'></a><a href='#L250'>250</a> +<a name='L251'></a><a href='#L251'>251</a> +<a name='L252'></a><a href='#L252'>252</a> +<a name='L253'></a><a href='#L253'>253</a> +<a name='L254'></a><a href='#L254'>254</a> +<a name='L255'></a><a href='#L255'>255</a> +<a name='L256'></a><a href='#L256'>256</a> +<a name='L257'></a><a href='#L257'>257</a> +<a name='L258'></a><a href='#L258'>258</a> +<a name='L259'></a><a href='#L259'>259</a> +<a name='L260'></a><a href='#L260'>260</a> +<a name='L261'></a><a href='#L261'>261</a> +<a name='L262'></a><a href='#L262'>262</a> +<a name='L263'></a><a href='#L263'>263</a> +<a name='L264'></a><a href='#L264'>264</a> +<a name='L265'></a><a href='#L265'>265</a> +<a name='L266'></a><a href='#L266'>266</a> +<a name='L267'></a><a href='#L267'>267</a> +<a name='L268'></a><a href='#L268'>268</a> +<a name='L269'></a><a href='#L269'>269</a> +<a name='L270'></a><a href='#L270'>270</a> +<a name='L271'></a><a href='#L271'>271</a> +<a name='L272'></a><a href='#L272'>272</a> +<a name='L273'></a><a href='#L273'>273</a> +<a name='L274'></a><a href='#L274'>274</a> +<a name='L275'></a><a href='#L275'>275</a> +<a name='L276'></a><a href='#L276'>276</a> +<a name='L277'></a><a href='#L277'>277</a> +<a name='L278'></a><a href='#L278'>278</a> +<a name='L279'></a><a href='#L279'>279</a> +<a name='L280'></a><a href='#L280'>280</a> +<a name='L281'></a><a href='#L281'>281</a> +<a name='L282'></a><a href='#L282'>282</a> +<a name='L283'></a><a href='#L283'>283</a> +<a name='L284'></a><a href='#L284'>284</a> +<a name='L285'></a><a href='#L285'>285</a> +<a name='L286'></a><a href='#L286'>286</a> +<a name='L287'></a><a href='#L287'>287</a> +<a name='L288'></a><a href='#L288'>288</a> +<a name='L289'></a><a href='#L289'>289</a> +<a name='L290'></a><a href='#L290'>290</a> +<a name='L291'></a><a href='#L291'>291</a> +<a name='L292'></a><a href='#L292'>292</a> +<a name='L293'></a><a href='#L293'>293</a> +<a name='L294'></a><a href='#L294'>294</a> +<a name='L295'></a><a href='#L295'>295</a> +<a name='L296'></a><a href='#L296'>296</a> +<a name='L297'></a><a href='#L297'>297</a> +<a name='L298'></a><a href='#L298'>298</a> +<a name='L299'></a><a href='#L299'>299</a> +<a name='L300'></a><a href='#L300'>300</a> +<a name='L301'></a><a href='#L301'>301</a> +<a name='L302'></a><a href='#L302'>302</a> +<a name='L303'></a><a href='#L303'>303</a> +<a name='L304'></a><a href='#L304'>304</a> +<a name='L305'></a><a href='#L305'>305</a> +<a name='L306'></a><a href='#L306'>306</a> +<a name='L307'></a><a href='#L307'>307</a> +<a name='L308'></a><a href='#L308'>308</a> +<a name='L309'></a><a href='#L309'>309</a> +<a name='L310'></a><a href='#L310'>310</a> +<a name='L311'></a><a href='#L311'>311</a> +<a name='L312'></a><a href='#L312'>312</a> +<a name='L313'></a><a href='#L313'>313</a> +<a name='L314'></a><a href='#L314'>314</a> +<a name='L315'></a><a href='#L315'>315</a> +<a name='L316'></a><a href='#L316'>316</a> +<a name='L317'></a><a href='#L317'>317</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-yes">4x</span> +<span class="cline-any cline-yes">3x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-yes">5x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">5x</span> +<span class="cline-any cline-yes">5x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">5x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">5x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-yes">11x</span> +<span class="cline-any cline-yes">11x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-yes">11x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">11x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">11x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">11x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-yes">6x</span> +<span class="cline-any cline-yes">6x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">6x</span> +<span class="cline-any cline-yes">6x</span> +<span class="cline-any cline-yes">6x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">6x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-yes">2x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">2x</span> +<span class="cline-any cline-yes">2x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">2x</span> +<span class="cline-any cline-yes">2x</span> +<span class="cline-any cline-yes">2x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">2x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-yes">2x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">2x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">2x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-yes">2x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">2x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">2x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">3x</span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">2x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">2x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">2x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">2x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">4x</span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">3x</span> +<span class="cline-any cline-yes">3x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">3x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">3x</span> +<span class="cline-any cline-yes">2x</span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">2x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">2x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">4x</span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">3x</span> +<span class="cline-any cline-yes">3x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">3x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">3x</span> +<span class="cline-any cline-yes">2x</span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">2x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">2x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">3x</span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">2x</span> +<span class="cline-any cline-yes">2x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">2x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">2x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">2x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import AgeGroup from '../DTOs/AgeGroupDTO'; +import EnergeticRequirement from '../DTOs/EnergeticRequirementDTO'; +import CalculatorResponse from '../DTOs/CalculatorResponseDTO'; +import GroupEnergeticRequirement from '../DTOs/GroupEnergeticRequirementDTO'; +import ExtraData from '../DTOs/ExtraDataDTO'; +import MinorPAL from '../DTOs/MinorPALDTO'; +import AdultPAL from '../DTOs/AdultPALDTO'; +import IndividualMaternity from '../DTOs/IndividualMaternityDTO'; +import PopulationMaternity from '../DTOs/PopulationMaternityDTO'; +import Sex from '../Enum/Sex'; +import AgeBracket from '../Enum/AgeBracket'; +import ParserService from './ParserService'; + +// eslint-disable-next-line max-len +const isIndividualMaternity = (obj: IndividualMaternity | PopulationMaternity): obj is IndividualMaternity => { + if ((obj as IndividualMaternity).pregnantWomen !== undefined) { + return true; + } + return false; +}; + +// TEE (Total Energetic Expenditure) = GET (Gasto Energetico Total) +const calculateTEE = (group: AgeGroup, params: number[], preval: MinorPAL): number => { + const teeModerate: number = params[0] + + (params[1] * group.medianWeight) + + params[2] * (group.medianWeight * group.medianWeight); + + const teeLow: number = teeModerate + (teeModerate * params[4]) / 100; + const teeIntense: number = teeModerate + (teeModerate * params[5]) / 100; + + const ret: number = (teeLow * preval.lowPALPrevalence) / 100 + + (teeModerate * preval.moderatePALPrevalence) / 100 + + (teeIntense * preval.intensePALPrevalence) / 100; + + return ret; +}; + +// BMR (Basal Metabolic Rate) = TMB (Tasa Metabolica Basal) +const calculateBMR = (group: AgeGroup, params: number[]): number => { + const ret: number = params[0] * group.medianWeight + params[1]; + return ret; +}; + +// PAL (Physical Activity Level) = NAF (Nivel de Actividad Fisica) +const calculatePAL = (params: number[], popData: AdultPAL): number => { + const ruralPAL: number = (popData.activeRuralPAL * params[2]) / 100 + + (popData.lowRuralPAL * params[3]) / 100; + const urbanPAL: number = (popData.activeUrbanPAL * params[4]) / 100 + + (popData.lowUrbanPAL * params[5]) / 100; + + const ret = (ruralPAL * popData.ruralPercentage) / 100 + + (urbanPAL * popData.urbanPercentage) / 100; + return ret; +}; + +// eslint-disable-next-line max-len +const calculateERWomenIndividual = (group: AgeGroup, params: number[], popData: IndividualMaternity, req: number): number => { + const percentPregnantWomen = (popData.pregnantWomen * 100) / group.population; + const percentLactatingWomen = (popData.lactatingWomen * 100) / group.population; + + const reqPregnantWomen = (percentPregnantWomen * (req + params[6])) / 100; + const reqLactatingWomen = (percentLactatingWomen * (req + params[7])) / 100; + const reqRestOfWomen = ((100 - percentPregnantWomen - percentLactatingWomen) * req) / 100; + + return reqPregnantWomen + reqLactatingWomen + reqRestOfWomen; +}; + +// eslint-disable-next-line max-len +const calculateERWomenPopulation = (params: number[], popData: PopulationMaternity, req: number): number => { + const annualBirths = (popData.countryBirthRate * popData.countryPopulation) / 1000; + + const percentPregnantWomen = (annualBirths * 75) / popData.countryWomenInAgeGroup; + const percentLactatingWomen = (annualBirths * 50) / popData.countryWomenInAgeGroup; + + const reqPregnantWomen = (percentPregnantWomen * (req + params[6])) / 100; + const reqLactatingWomen = (percentLactatingWomen * (req + params[7])) / 100; + const reqRestOfWomen = ((100 - percentPregnantWomen - percentLactatingWomen) * req) / 100; + + return reqPregnantWomen + reqLactatingWomen + reqRestOfWomen; +}; + +const calculateLessThanAYear = (group: AgeGroup, params: number[]): GroupEnergeticRequirement => { + const requirement = params[0] + (params[1] * group.medianWeight) + params[2]; + + const groupRequirement: GroupEnergeticRequirement = { + group: ParserService.unparseGroup(group), + perCapita: Math.round(requirement), + total: Math.round(requirement * group.population), + }; + + return groupRequirement; +}; + +const calculate1To5Years = (group: AgeGroup, params: number[]): GroupEnergeticRequirement => { + const requirement = params[0] + + (params[1] * group.medianWeight) + + (params[2] * (group.medianWeight ** 2)) + + params[3]; + + const groupRequirement: GroupEnergeticRequirement = { + group: ParserService.unparseGroup(group), + perCapita: Math.round(requirement), + total: Math.round(requirement * group.population), + }; + + return groupRequirement; +}; + +// eslint-disable-next-line max-len +const calculate6To17Years = (group: AgeGroup, params: number[], data: ExtraData): GroupEnergeticRequirement => { + let tee: number; + if (typeof (data.minorPAL) === 'undefined') { + throw new Error('Missing data'); + } else { + tee = calculateTEE(group, params, data.minorPAL); + } + + const requirement = tee + params[3]; + + const groupRequirement: GroupEnergeticRequirement = { + group: ParserService.unparseGroup(group), + perCapita: Math.round(requirement), + total: Math.round(requirement * group.population), + }; + + return groupRequirement; +}; + +// eslint-disable-next-line max-len +const calculate18To29Years = (group: AgeGroup, params: number[], data: ExtraData): GroupEnergeticRequirement => { + let bmr: number; + let pal: number; + if (typeof (data.adultPAL) === 'undefined') { + throw new Error('Missing data'); + } else { + bmr = calculateBMR(group, params); + pal = calculatePAL(params, data.adultPAL); + } + + let requirement: number = bmr * pal; + + // If the group's sex is Female, then you have to take into account + // the extra energy required by women that are pregnant or lactating + if (group.sex === Sex.Female) { + if (data.maternity18To29 === undefined) { + throw new Error('Missing data'); + } else <span class="missing-if-branch" title="else path not taken" >E</span>if (isIndividualMaternity(data.maternity18To29)) { + requirement = calculateERWomenIndividual(group, params, data.maternity18To29, requirement); + } else { +<span class="cstat-no" title="statement not covered" > requirement = calculateERWomenPopulation(params, data.maternity18To29, requirement);</span> + } + } + + const groupRequirement: GroupEnergeticRequirement = { + group: ParserService.unparseGroup(group), + perCapita: Math.round(requirement), + total: Math.round(requirement * group.population), + }; + + return groupRequirement; +}; + +// eslint-disable-next-line max-len +const calculate30To59Years = (group: AgeGroup, params: number[], data: ExtraData): GroupEnergeticRequirement => { + let bmr: number; + let pal: number; + if (typeof (data.adultPAL) === 'undefined') { + throw new Error('Missing data'); + } else { + bmr = calculateBMR(group, params); + pal = calculatePAL(params, data.adultPAL); + } + + let requirement: number = bmr * pal; + + // If the group's sex is Female, then you have to take into account + // the extra energy required by women that are pregnant or lactating + if (group.sex === Sex.Female) { + if (typeof (data.maternity30To59) === 'undefined') { + throw new Error('Missing data'); + } else <span class="missing-if-branch" title="else path not taken" >E</span>if (isIndividualMaternity(data.maternity30To59)) { + requirement = calculateERWomenIndividual(group, params, data.maternity30To59, requirement); + } else { +<span class="cstat-no" title="statement not covered" > requirement = calculateERWomenPopulation(params, data.maternity30To59, requirement);</span> + } + } + + const groupRequirement: GroupEnergeticRequirement = { + group: ParserService.unparseGroup(group), + perCapita: Math.round(requirement), + total: Math.round(requirement * group.population), + }; + + return groupRequirement; +}; + +// eslint-disable-next-line max-len +const calculate60PlusYears = (group: AgeGroup, params: number[], data: ExtraData): GroupEnergeticRequirement => { + let bmr: number; + let pal: number; + if (typeof (data.adultPAL) === 'undefined') { + throw new Error('Missing data'); + } else { + bmr = calculateBMR(group, params); + pal = calculatePAL(params, data.adultPAL); + } + + const requirement: number = bmr * pal; + + const groupRequirement: GroupEnergeticRequirement = { + group: ParserService.unparseGroup(group), + perCapita: Math.round(requirement), + total: Math.round(requirement * group.population), + }; + + return groupRequirement; +}; + +// eslint-disable-next-line max-len +const calculateER = <span class="fstat-no" title="function not covered" >(g</span>roupParameters: Map<number[], AgeGroup>, data: ExtraData): CalculatorResponse => { + let totalOfPeople = <span class="cstat-no" title="statement not covered" >0;</span> + let totalRequirement = <span class="cstat-no" title="statement not covered" >0;</span> + + const requirements: GroupEnergeticRequirement[] = <span class="cstat-no" title="statement not covered" >[];</span> + +<span class="cstat-no" title="statement not covered" > groupParameters.forEach(<span class="fstat-no" title="function not covered" >(g</span>roup: AgeGroup, params: number[]) => {</span> +<span class="cstat-no" title="statement not covered" > totalOfPeople += group.population;</span> + let groupRequirement: GroupEnergeticRequirement; +<span class="cstat-no" title="statement not covered" > switch (group.age) {</span> + case AgeBracket.m0: + case AgeBracket.m1: + case AgeBracket.m2: + case AgeBracket.m3: + case AgeBracket.m4: + case AgeBracket.m5: + case AgeBracket.m6: + case AgeBracket.m7: + case AgeBracket.m8: + case AgeBracket.m9: + case AgeBracket.m10: + case AgeBracket.m11: { +<span class="cstat-no" title="statement not covered" > groupRequirement = calculateLessThanAYear(group, params);</span> +<span class="cstat-no" title="statement not covered" > break;</span> + } + case AgeBracket.a1: + case AgeBracket.a2: + case AgeBracket.a3: + case AgeBracket.a4: + case AgeBracket.a5: { +<span class="cstat-no" title="statement not covered" > groupRequirement = calculate1To5Years(group, params);</span> +<span class="cstat-no" title="statement not covered" > break;</span> + } + case AgeBracket.a6: + case AgeBracket.a7: + case AgeBracket.a8: + case AgeBracket.a9: + case AgeBracket.a10: + case AgeBracket.a11: + case AgeBracket.a12: + case AgeBracket.a13: + case AgeBracket.a14: + case AgeBracket.a15: + case AgeBracket.a16: + case AgeBracket.a17: { +<span class="cstat-no" title="statement not covered" > groupRequirement = calculate6To17Years(group, params, data);</span> +<span class="cstat-no" title="statement not covered" > break;</span> + } + case AgeBracket.a18_29: { +<span class="cstat-no" title="statement not covered" > groupRequirement = calculate18To29Years(group, params, data);</span> +<span class="cstat-no" title="statement not covered" > break;</span> + } + case AgeBracket.a30_59: { +<span class="cstat-no" title="statement not covered" > groupRequirement = calculate30To59Years(group, params, data);</span> +<span class="cstat-no" title="statement not covered" > break;</span> + } + case AgeBracket.a60: { +<span class="cstat-no" title="statement not covered" > groupRequirement = calculate60PlusYears(group, params, data);</span> +<span class="cstat-no" title="statement not covered" > break;</span> + } + default: { +<span class="cstat-no" title="statement not covered" > throw new Error('Parsing error, attribute edad does not respect format');</span> + } + } +<span class="cstat-no" title="statement not covered" > totalRequirement += groupRequirement.total;</span> +<span class="cstat-no" title="statement not covered" > requirements.push(groupRequirement);</span> + }); + + const totalER: EnergeticRequirement = <span class="cstat-no" title="statement not covered" >{</span> + perCapita: totalRequirement / totalOfPeople, + total: totalRequirement, + totalPopulation: totalOfPeople, + }; + + const result: CalculatorResponse = <span class="cstat-no" title="statement not covered" >{</span> + groupsRequirements: requirements, + totalRequirement: totalER, + }; + +<span class="cstat-no" title="statement not covered" > return result;</span> +}; + +export default { + calculateER, + calculate60PlusYears, + calculate30To59Years, + calculate18To29Years, + calculate6To17Years, + calculate1To5Years, + calculateLessThanAYear, + calculateERWomenPopulation, + calculateERWomenIndividual, + calculatePAL, + calculateBMR, + calculateTEE, + isIndividualMaternity, +}; + </pre></td></tr></table></pre> + + <div class='push'></div><!-- for sticky footer --> + </div><!-- /wrapper --> + <div class='footer quiet pad2 space-top1 center small'> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank">istanbul</a> + at Thu Sep 30 2021 21:41:26 GMT-0300 (hora estándar de Uruguay) + </div> + </div> + <script src="../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../sorter.js"></script> + <script src="../block-navigation.js"></script> + </body> +</html> + \ No newline at end of file diff --git a/coverage/lcov-report/Services/ParserService.ts.html b/coverage/lcov-report/Services/ParserService.ts.html new file mode 100644 index 0000000..3af49bc --- /dev/null +++ b/coverage/lcov-report/Services/ParserService.ts.html @@ -0,0 +1,638 @@ + +<!doctype html> +<html lang="en"> + +<head> + <title>Code coverage report for Services/ParserService.ts</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="../prettify.css" /> + <link rel="stylesheet" href="../base.css" /> + <link rel="shortcut icon" type="image/x-icon" href="../favicon.png" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style type='text/css'> + .coverage-summary .sorter { + background-image: url(../sort-arrow-sprite.png); + } + </style> +</head> + +<body> +<div class='wrapper'> + <div class='pad1'> + <h1><a href="../index.html">All files</a> / <a href="index.html">Services</a> ParserService.ts</h1> + <div class='clearfix'> + + <div class='fl pad1y space-right2'> + <span class="strong">44.44% </span> + <span class="quiet">Statements</span> + <span class='fraction'>4/9</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Branches</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">33.33% </span> + <span class="quiet">Functions</span> + <span class='fraction'>1/3</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">44.44% </span> + <span class="quiet">Lines</span> + <span class='fraction'>4/9</span> + </div> + + + </div> + <p class="quiet"> + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + </p> + </div> + <div class='status-line low'></div> + <pre><table class="coverage"> +<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> +<a name='L2'></a><a href='#L2'>2</a> +<a name='L3'></a><a href='#L3'>3</a> +<a name='L4'></a><a href='#L4'>4</a> +<a name='L5'></a><a href='#L5'>5</a> +<a name='L6'></a><a href='#L6'>6</a> +<a name='L7'></a><a href='#L7'>7</a> +<a name='L8'></a><a href='#L8'>8</a> +<a name='L9'></a><a href='#L9'>9</a> +<a name='L10'></a><a href='#L10'>10</a> +<a name='L11'></a><a href='#L11'>11</a> +<a name='L12'></a><a href='#L12'>12</a> +<a name='L13'></a><a href='#L13'>13</a> +<a name='L14'></a><a href='#L14'>14</a> +<a name='L15'></a><a href='#L15'>15</a> +<a name='L16'></a><a href='#L16'>16</a> +<a name='L17'></a><a href='#L17'>17</a> +<a name='L18'></a><a href='#L18'>18</a> +<a name='L19'></a><a href='#L19'>19</a> +<a name='L20'></a><a href='#L20'>20</a> +<a name='L21'></a><a href='#L21'>21</a> +<a name='L22'></a><a href='#L22'>22</a> +<a name='L23'></a><a href='#L23'>23</a> +<a name='L24'></a><a href='#L24'>24</a> +<a name='L25'></a><a href='#L25'>25</a> +<a name='L26'></a><a href='#L26'>26</a> +<a name='L27'></a><a href='#L27'>27</a> +<a name='L28'></a><a href='#L28'>28</a> +<a name='L29'></a><a href='#L29'>29</a> +<a name='L30'></a><a href='#L30'>30</a> +<a name='L31'></a><a href='#L31'>31</a> +<a name='L32'></a><a href='#L32'>32</a> +<a name='L33'></a><a href='#L33'>33</a> +<a name='L34'></a><a href='#L34'>34</a> +<a name='L35'></a><a href='#L35'>35</a> +<a name='L36'></a><a href='#L36'>36</a> +<a name='L37'></a><a href='#L37'>37</a> +<a name='L38'></a><a href='#L38'>38</a> +<a name='L39'></a><a href='#L39'>39</a> +<a name='L40'></a><a href='#L40'>40</a> +<a name='L41'></a><a href='#L41'>41</a> +<a name='L42'></a><a href='#L42'>42</a> +<a name='L43'></a><a href='#L43'>43</a> +<a name='L44'></a><a href='#L44'>44</a> +<a name='L45'></a><a href='#L45'>45</a> +<a name='L46'></a><a href='#L46'>46</a> +<a name='L47'></a><a href='#L47'>47</a> +<a name='L48'></a><a href='#L48'>48</a> +<a name='L49'></a><a href='#L49'>49</a> +<a name='L50'></a><a href='#L50'>50</a> +<a name='L51'></a><a href='#L51'>51</a> +<a name='L52'></a><a href='#L52'>52</a> +<a name='L53'></a><a href='#L53'>53</a> +<a name='L54'></a><a href='#L54'>54</a> +<a name='L55'></a><a href='#L55'>55</a> +<a name='L56'></a><a href='#L56'>56</a> +<a name='L57'></a><a href='#L57'>57</a> +<a name='L58'></a><a href='#L58'>58</a> +<a name='L59'></a><a href='#L59'>59</a> +<a name='L60'></a><a href='#L60'>60</a> +<a name='L61'></a><a href='#L61'>61</a> +<a name='L62'></a><a href='#L62'>62</a> +<a name='L63'></a><a href='#L63'>63</a> +<a name='L64'></a><a href='#L64'>64</a> +<a name='L65'></a><a href='#L65'>65</a> +<a name='L66'></a><a href='#L66'>66</a> +<a name='L67'></a><a href='#L67'>67</a> +<a name='L68'></a><a href='#L68'>68</a> +<a name='L69'></a><a href='#L69'>69</a> +<a name='L70'></a><a href='#L70'>70</a> +<a name='L71'></a><a href='#L71'>71</a> +<a name='L72'></a><a href='#L72'>72</a> +<a name='L73'></a><a href='#L73'>73</a> +<a name='L74'></a><a href='#L74'>74</a> +<a name='L75'></a><a href='#L75'>75</a> +<a name='L76'></a><a href='#L76'>76</a> +<a name='L77'></a><a href='#L77'>77</a> +<a name='L78'></a><a href='#L78'>78</a> +<a name='L79'></a><a href='#L79'>79</a> +<a name='L80'></a><a href='#L80'>80</a> +<a name='L81'></a><a href='#L81'>81</a> +<a name='L82'></a><a href='#L82'>82</a> +<a name='L83'></a><a href='#L83'>83</a> +<a name='L84'></a><a href='#L84'>84</a> +<a name='L85'></a><a href='#L85'>85</a> +<a name='L86'></a><a href='#L86'>86</a> +<a name='L87'></a><a href='#L87'>87</a> +<a name='L88'></a><a href='#L88'>88</a> +<a name='L89'></a><a href='#L89'>89</a> +<a name='L90'></a><a href='#L90'>90</a> +<a name='L91'></a><a href='#L91'>91</a> +<a name='L92'></a><a href='#L92'>92</a> +<a name='L93'></a><a href='#L93'>93</a> +<a name='L94'></a><a href='#L94'>94</a> +<a name='L95'></a><a href='#L95'>95</a> +<a name='L96'></a><a href='#L96'>96</a> +<a name='L97'></a><a href='#L97'>97</a> +<a name='L98'></a><a href='#L98'>98</a> +<a name='L99'></a><a href='#L99'>99</a> +<a name='L100'></a><a href='#L100'>100</a> +<a name='L101'></a><a href='#L101'>101</a> +<a name='L102'></a><a href='#L102'>102</a> +<a name='L103'></a><a href='#L103'>103</a> +<a name='L104'></a><a href='#L104'>104</a> +<a name='L105'></a><a href='#L105'>105</a> +<a name='L106'></a><a href='#L106'>106</a> +<a name='L107'></a><a href='#L107'>107</a> +<a name='L108'></a><a href='#L108'>108</a> +<a name='L109'></a><a href='#L109'>109</a> +<a name='L110'></a><a href='#L110'>110</a> +<a name='L111'></a><a href='#L111'>111</a> +<a name='L112'></a><a href='#L112'>112</a> +<a name='L113'></a><a href='#L113'>113</a> +<a name='L114'></a><a href='#L114'>114</a> +<a name='L115'></a><a href='#L115'>115</a> +<a name='L116'></a><a href='#L116'>116</a> +<a name='L117'></a><a href='#L117'>117</a> +<a name='L118'></a><a href='#L118'>118</a> +<a name='L119'></a><a href='#L119'>119</a> +<a name='L120'></a><a href='#L120'>120</a> +<a name='L121'></a><a href='#L121'>121</a> +<a name='L122'></a><a href='#L122'>122</a> +<a name='L123'></a><a href='#L123'>123</a> +<a name='L124'></a><a href='#L124'>124</a> +<a name='L125'></a><a href='#L125'>125</a> +<a name='L126'></a><a href='#L126'>126</a> +<a name='L127'></a><a href='#L127'>127</a> +<a name='L128'></a><a href='#L128'>128</a> +<a name='L129'></a><a href='#L129'>129</a> +<a name='L130'></a><a href='#L130'>130</a> +<a name='L131'></a><a href='#L131'>131</a> +<a name='L132'></a><a href='#L132'>132</a> +<a name='L133'></a><a href='#L133'>133</a> +<a name='L134'></a><a href='#L134'>134</a> +<a name='L135'></a><a href='#L135'>135</a> +<a name='L136'></a><a href='#L136'>136</a> +<a name='L137'></a><a href='#L137'>137</a> +<a name='L138'></a><a href='#L138'>138</a> +<a name='L139'></a><a href='#L139'>139</a> +<a name='L140'></a><a href='#L140'>140</a> +<a name='L141'></a><a href='#L141'>141</a> +<a name='L142'></a><a href='#L142'>142</a> +<a name='L143'></a><a href='#L143'>143</a> +<a name='L144'></a><a href='#L144'>144</a> +<a name='L145'></a><a href='#L145'>145</a> +<a name='L146'></a><a href='#L146'>146</a> +<a name='L147'></a><a href='#L147'>147</a> +<a name='L148'></a><a href='#L148'>148</a> +<a name='L149'></a><a href='#L149'>149</a> +<a name='L150'></a><a href='#L150'>150</a> +<a name='L151'></a><a href='#L151'>151</a> +<a name='L152'></a><a href='#L152'>152</a> +<a name='L153'></a><a href='#L153'>153</a> +<a name='L154'></a><a href='#L154'>154</a> +<a name='L155'></a><a href='#L155'>155</a> +<a name='L156'></a><a href='#L156'>156</a> +<a name='L157'></a><a href='#L157'>157</a> +<a name='L158'></a><a href='#L158'>158</a> +<a name='L159'></a><a href='#L159'>159</a> +<a name='L160'></a><a href='#L160'>160</a> +<a name='L161'></a><a href='#L161'>161</a> +<a name='L162'></a><a href='#L162'>162</a> +<a name='L163'></a><a href='#L163'>163</a> +<a name='L164'></a><a href='#L164'>164</a> +<a name='L165'></a><a href='#L165'>165</a> +<a name='L166'></a><a href='#L166'>166</a> +<a name='L167'></a><a href='#L167'>167</a> +<a name='L168'></a><a href='#L168'>168</a> +<a name='L169'></a><a href='#L169'>169</a> +<a name='L170'></a><a href='#L170'>170</a> +<a name='L171'></a><a href='#L171'>171</a> +<a name='L172'></a><a href='#L172'>172</a> +<a name='L173'></a><a href='#L173'>173</a> +<a name='L174'></a><a href='#L174'>174</a> +<a name='L175'></a><a href='#L175'>175</a> +<a name='L176'></a><a href='#L176'>176</a> +<a name='L177'></a><a href='#L177'>177</a> +<a name='L178'></a><a href='#L178'>178</a> +<a name='L179'></a><a href='#L179'>179</a> +<a name='L180'></a><a href='#L180'>180</a> +<a name='L181'></a><a href='#L181'>181</a> +<a name='L182'></a><a href='#L182'>182</a> +<a name='L183'></a><a href='#L183'>183</a> +<a name='L184'></a><a href='#L184'>184</a> +<a name='L185'></a><a href='#L185'>185</a> +<a name='L186'></a><a href='#L186'>186</a> +<a name='L187'></a><a href='#L187'>187</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-yes">12x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">12x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import AgeGroup from '../DTOs/AgeGroupDTO'; +import AgeGroupJSON from '../DTOs/AgeGroupJSON'; +import AgeBracket from '../Enum/AgeBracket'; +import Sex from '../Enum/Sex'; + +// const parseSex = (sexo: string): Sex => { +// let sex: Sex = sexo; +// switch (sexo) { +// case 'Masculino': { +// sex = Sex.Masculino; +// break; +// } +// case 'Femenino': { +// sex = Sex.Femenino; +// break; +// } +// default: { +// throw new Error('Parsing error, attribute sexo does not respect format'); +// } +// } +// return sex; +// }; +// +// const parseAge = (edad: string): AgeBracket => { +// let age: AgeBracket; +// switch (edad) { +// case '0 meses': { +// age = AgeBracket.m0; +// break; +// } +// case '1 mes': { +// age = AgeBracket.m1; +// break; +// } +// case '2 meses': { +// age = AgeBracket.m2; +// break; +// } +// case '3 meses': { +// age = AgeBracket.m3; +// break; +// } +// case '4 meses': { +// age = AgeBracket.m4; +// break; +// } +// case '5 meses': { +// age = AgeBracket.m5; +// break; +// } +// case '6 meses': { +// age = AgeBracket.m6; +// break; +// } +// case '7 meses': { +// age = AgeBracket.m7; +// break; +// } +// case '8 meses': { +// age = AgeBracket.m8; +// break; +// } +// case '9 meses': { +// age = AgeBracket.m9; +// break; +// } +// case '10 meses': { +// age = AgeBracket.m10; +// break; +// } +// case '11 meses': { +// age = AgeBracket.m11; +// break; +// } +// case '1 año': { +// age = AgeBracket.a1; +// break; +// } +// case '2 años': { +// age = AgeBracket.a2; +// break; +// } +// case '3 años': { +// age = AgeBracket.a3; +// break; +// } +// case '4 años': { +// age = AgeBracket.a4; +// break; +// } +// case '5 años': { +// age = AgeBracket.a5; +// break; +// } +// case '6 años': { +// age = AgeBracket.a6; +// break; +// } +// case '7 años': { +// age = AgeBracket.a7; +// break; +// } +// case '8 años': { +// age = AgeBracket.a8; +// break; +// } +// case '9 años': { +// age = AgeBracket.a9; +// break; +// } +// case '10 años': { +// age = AgeBracket.a10; +// break; +// } +// case '11 años': { +// age = AgeBracket.a11; +// break; +// } +// case '12 años': { +// age = AgeBracket.a12; +// break; +// } +// case '13 años': { +// age = AgeBracket.a13; +// break; +// } +// case '14 años': { +// age = AgeBracket.a14; +// break; +// } +// case '15 años': { +// age = AgeBracket.a15; +// break; +// } +// case '16 años': { +// age = AgeBracket.a16; +// break; +// } +// case '17 años': { +// age = AgeBracket.a17; +// break; +// } +// case '18-29 años': { +// age = AgeBracket.a18_29; +// break; +// } +// case '30-59 años': { +// age = AgeBracket.a30_59; +// break; +// } +// case '60+ años': { +// age = AgeBracket.a60; +// break; +// } +// default: { +// throw new Error('Parsing error, attribute edad does not respect format'); +// } +// } +// return age; +// }; + +const parseGroups = <span class="fstat-no" title="function not covered" >(g</span>roups: AgeGroupJSON[]): AgeGroup[] => { + const retGroups: AgeGroup[] = <span class="cstat-no" title="statement not covered" >[];</span> +<span class="cstat-no" title="statement not covered" > groups.forEach(<span class="fstat-no" title="function not covered" >(a</span>geGroup: AgeGroupJSON) => {</span> + const group: AgeGroup = <span class="cstat-no" title="statement not covered" >{</span> + age: ageGroup.age as AgeBracket, + sex: ageGroup.sex as Sex, + medianWeight: ageGroup.medianWeight, + population: ageGroup.population, + }; +<span class="cstat-no" title="statement not covered" > retGroups.push(group);</span> + }); +<span class="cstat-no" title="statement not covered" > return retGroups;</span> +}; + +const unparseGroup = (group: AgeGroup): AgeGroupJSON => { + const retGroup: AgeGroupJSON = { + age: group.age as string, + sex: group.sex as string, + medianWeight: group.medianWeight, + population: group.population, + }; + return retGroup; +}; + +export default { parseGroups, unparseGroup }; + </pre></td></tr></table></pre> + + <div class='push'></div><!-- for sticky footer --> + </div><!-- /wrapper --> + <div class='footer quiet pad2 space-top1 center small'> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank">istanbul</a> + at Thu Sep 30 2021 21:41:26 GMT-0300 (hora estándar de Uruguay) + </div> + </div> + <script src="../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../sorter.js"></script> + <script src="../block-navigation.js"></script> + </body> +</html> + \ No newline at end of file diff --git a/coverage/lcov-report/Services/index.html b/coverage/lcov-report/Services/index.html new file mode 100644 index 0000000..8b8e497 --- /dev/null +++ b/coverage/lcov-report/Services/index.html @@ -0,0 +1,126 @@ + +<!doctype html> +<html lang="en"> + +<head> + <title>Code coverage report for Services</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="../prettify.css" /> + <link rel="stylesheet" href="../base.css" /> + <link rel="shortcut icon" type="image/x-icon" href="../favicon.png" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style type='text/css'> + .coverage-summary .sorter { + background-image: url(../sort-arrow-sprite.png); + } + </style> +</head> + +<body> +<div class='wrapper'> + <div class='pad1'> + <h1><a href="../index.html">All files</a> Services</h1> + <div class='clearfix'> + + <div class='fl pad1y space-right2'> + <span class="strong">73.72% </span> + <span class="quiet">Statements</span> + <span class='fraction'>87/118</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">36.36% </span> + <span class="quiet">Branches</span> + <span class='fraction'>20/55</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">76.47% </span> + <span class="quiet">Functions</span> + <span class='fraction'>13/17</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">73.72% </span> + <span class="quiet">Lines</span> + <span class='fraction'>87/118</span> + </div> + + + </div> + <p class="quiet"> + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + </p> + </div> + <div class='status-line medium'></div> + <div class="pad1"> +<table class="coverage-summary"> +<thead> +<tr> + <th data-col="file" data-fmt="html" data-html="true" class="file">File</th> + <th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th> + <th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th> + <th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th> + <th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th> + <th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th> + <th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th> + <th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th> + <th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th> + <th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th> +</tr> +</thead> +<tbody><tr> + <td class="file medium" data-value="ERCalculator.ts"><a href="ERCalculator.ts.html">ERCalculator.ts</a></td> + <td data-value="76.14" class="pic medium"> + <div class="chart"><div class="cover-fill" style="width: 76%"></div><div class="cover-empty" style="width: 24%"></div></div> + </td> + <td data-value="76.14" class="pct medium">76.14%</td> + <td data-value="109" class="abs medium">83/109</td> + <td data-value="36.36" class="pct low">36.36%</td> + <td data-value="55" class="abs low">20/55</td> + <td data-value="85.71" class="pct high">85.71%</td> + <td data-value="14" class="abs high">12/14</td> + <td data-value="76.14" class="pct medium">76.14%</td> + <td data-value="109" class="abs medium">83/109</td> + </tr> + +<tr> + <td class="file low" data-value="ParserService.ts"><a href="ParserService.ts.html">ParserService.ts</a></td> + <td data-value="44.44" class="pic low"> + <div class="chart"><div class="cover-fill" style="width: 44%"></div><div class="cover-empty" style="width: 56%"></div></div> + </td> + <td data-value="44.44" class="pct low">44.44%</td> + <td data-value="9" class="abs low">4/9</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="0" class="abs high">0/0</td> + <td data-value="33.33" class="pct low">33.33%</td> + <td data-value="3" class="abs low">1/3</td> + <td data-value="44.44" class="pct low">44.44%</td> + <td data-value="9" class="abs low">4/9</td> + </tr> + +</tbody> +</table> +</div> + <div class='push'></div><!-- for sticky footer --> + </div><!-- /wrapper --> + <div class='footer quiet pad2 space-top1 center small'> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank">istanbul</a> + at Thu Sep 30 2021 21:41:26 GMT-0300 (hora estándar de Uruguay) + </div> + </div> + <script src="../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../sorter.js"></script> + <script src="../block-navigation.js"></script> + </body> +</html> + \ No newline at end of file diff --git a/coverage/lcov-report/base.css b/coverage/lcov-report/base.css new file mode 100644 index 0000000..f418035 --- /dev/null +++ b/coverage/lcov-report/base.css @@ -0,0 +1,224 @@ +body, html { + margin:0; padding: 0; + height: 100%; +} +body { + font-family: Helvetica Neue, Helvetica, Arial; + font-size: 14px; + color:#333; +} +.small { font-size: 12px; } +*, *:after, *:before { + -webkit-box-sizing:border-box; + -moz-box-sizing:border-box; + box-sizing:border-box; + } +h1 { font-size: 20px; margin: 0;} +h2 { font-size: 14px; } +pre { + font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace; + margin: 0; + padding: 0; + -moz-tab-size: 2; + -o-tab-size: 2; + tab-size: 2; +} +a { color:#0074D9; text-decoration:none; } +a:hover { text-decoration:underline; } +.strong { font-weight: bold; } +.space-top1 { padding: 10px 0 0 0; } +.pad2y { padding: 20px 0; } +.pad1y { padding: 10px 0; } +.pad2x { padding: 0 20px; } +.pad2 { padding: 20px; } +.pad1 { padding: 10px; } +.space-left2 { padding-left:55px; } +.space-right2 { padding-right:20px; } +.center { text-align:center; } +.clearfix { display:block; } +.clearfix:after { + content:''; + display:block; + height:0; + clear:both; + visibility:hidden; + } +.fl { float: left; } +@media only screen and (max-width:640px) { + .col3 { width:100%; max-width:100%; } + .hide-mobile { display:none!important; } +} + +.quiet { + color: #7f7f7f; + color: rgba(0,0,0,0.5); +} +.quiet a { opacity: 0.7; } + +.fraction { + font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; + font-size: 10px; + color: #555; + background: #E8E8E8; + padding: 4px 5px; + border-radius: 3px; + vertical-align: middle; +} + +div.path a:link, div.path a:visited { color: #333; } +table.coverage { + border-collapse: collapse; + margin: 10px 0 0 0; + padding: 0; +} + +table.coverage td { + margin: 0; + padding: 0; + vertical-align: top; +} +table.coverage td.line-count { + text-align: right; + padding: 0 5px 0 20px; +} +table.coverage td.line-coverage { + text-align: right; + padding-right: 10px; + min-width:20px; +} + +table.coverage td span.cline-any { + display: inline-block; + padding: 0 5px; + width: 100%; +} +.missing-if-branch { + display: inline-block; + margin-right: 5px; + border-radius: 3px; + position: relative; + padding: 0 4px; + background: #333; + color: yellow; +} + +.skip-if-branch { + display: none; + margin-right: 10px; + position: relative; + padding: 0 4px; + background: #ccc; + color: white; +} +.missing-if-branch .typ, .skip-if-branch .typ { + color: inherit !important; +} +.coverage-summary { + border-collapse: collapse; + width: 100%; +} +.coverage-summary tr { border-bottom: 1px solid #bbb; } +.keyline-all { border: 1px solid #ddd; } +.coverage-summary td, .coverage-summary th { padding: 10px; } +.coverage-summary tbody { border: 1px solid #bbb; } +.coverage-summary td { border-right: 1px solid #bbb; } +.coverage-summary td:last-child { border-right: none; } +.coverage-summary th { + text-align: left; + font-weight: normal; + white-space: nowrap; +} +.coverage-summary th.file { border-right: none !important; } +.coverage-summary th.pct { } +.coverage-summary th.pic, +.coverage-summary th.abs, +.coverage-summary td.pct, +.coverage-summary td.abs { text-align: right; } +.coverage-summary td.file { white-space: nowrap; } +.coverage-summary td.pic { min-width: 120px !important; } +.coverage-summary tfoot td { } + +.coverage-summary .sorter { + height: 10px; + width: 7px; + display: inline-block; + margin-left: 0.5em; + background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent; +} +.coverage-summary .sorted .sorter { + background-position: 0 -20px; +} +.coverage-summary .sorted-desc .sorter { + background-position: 0 -10px; +} +.status-line { height: 10px; } +/* yellow */ +.cbranch-no { background: yellow !important; color: #111; } +/* dark red */ +.red.solid, .status-line.low, .low .cover-fill { background:#C21F39 } +.low .chart { border:1px solid #C21F39 } +.highlighted, +.highlighted .cstat-no, .highlighted .fstat-no, .highlighted .cbranch-no{ + background: #C21F39 !important; +} +/* medium red */ +.cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE } +/* light red */ +.low, .cline-no { background:#FCE1E5 } +/* light green */ +.high, .cline-yes { background:rgb(230,245,208) } +/* medium green */ +.cstat-yes { background:rgb(161,215,106) } +/* dark green */ +.status-line.high, .high .cover-fill { background:rgb(77,146,33) } +.high .chart { border:1px solid rgb(77,146,33) } +/* dark yellow (gold) */ +.status-line.medium, .medium .cover-fill { background: #f9cd0b; } +.medium .chart { border:1px solid #f9cd0b; } +/* light yellow */ +.medium { background: #fff4c2; } + +.cstat-skip { background: #ddd; color: #111; } +.fstat-skip { background: #ddd; color: #111 !important; } +.cbranch-skip { background: #ddd !important; color: #111; } + +span.cline-neutral { background: #eaeaea; } + +.coverage-summary td.empty { + opacity: .5; + padding-top: 4px; + padding-bottom: 4px; + line-height: 1; + color: #888; +} + +.cover-fill, .cover-empty { + display:inline-block; + height: 12px; +} +.chart { + line-height: 0; +} +.cover-empty { + background: white; +} +.cover-full { + border-right: none !important; +} +pre.prettyprint { + border: none !important; + padding: 0 !important; + margin: 0 !important; +} +.com { color: #999 !important; } +.ignore-none { color: #999; font-weight: normal; } + +.wrapper { + min-height: 100%; + height: auto !important; + height: 100%; + margin: 0 auto -48px; +} +.footer, .push { + height: 48px; +} diff --git a/coverage/lcov-report/block-navigation.js b/coverage/lcov-report/block-navigation.js new file mode 100644 index 0000000..c7ff5a5 --- /dev/null +++ b/coverage/lcov-report/block-navigation.js @@ -0,0 +1,79 @@ +/* eslint-disable */ +var jumpToCode = (function init() { + // Classes of code we would like to highlight in the file view + var missingCoverageClasses = ['.cbranch-no', '.cstat-no', '.fstat-no']; + + // Elements to highlight in the file listing view + var fileListingElements = ['td.pct.low']; + + // We don't want to select elements that are direct descendants of another match + var notSelector = ':not(' + missingCoverageClasses.join('):not(') + ') > '; // becomes `:not(a):not(b) > ` + + // Selecter that finds elements on the page to which we can jump + var selector = + fileListingElements.join(', ') + + ', ' + + notSelector + + missingCoverageClasses.join(', ' + notSelector); // becomes `:not(a):not(b) > a, :not(a):not(b) > b` + + // The NodeList of matching elements + var missingCoverageElements = document.querySelectorAll(selector); + + var currentIndex; + + function toggleClass(index) { + missingCoverageElements + .item(currentIndex) + .classList.remove('highlighted'); + missingCoverageElements.item(index).classList.add('highlighted'); + } + + function makeCurrent(index) { + toggleClass(index); + currentIndex = index; + missingCoverageElements.item(index).scrollIntoView({ + behavior: 'smooth', + block: 'center', + inline: 'center' + }); + } + + function goToPrevious() { + var nextIndex = 0; + if (typeof currentIndex !== 'number' || currentIndex === 0) { + nextIndex = missingCoverageElements.length - 1; + } else if (missingCoverageElements.length > 1) { + nextIndex = currentIndex - 1; + } + + makeCurrent(nextIndex); + } + + function goToNext() { + var nextIndex = 0; + + if ( + typeof currentIndex === 'number' && + currentIndex < missingCoverageElements.length - 1 + ) { + nextIndex = currentIndex + 1; + } + + makeCurrent(nextIndex); + } + + return function jump(event) { + switch (event.which) { + case 78: // n + case 74: // j + goToNext(); + break; + case 66: // b + case 75: // k + case 80: // p + goToPrevious(); + break; + } + }; +})(); +window.addEventListener('keydown', jumpToCode); diff --git a/coverage/lcov-report/favicon.png b/coverage/lcov-report/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..6691817834a957c938e7f09640a37a645fb31457 GIT binary patch literal 540 zcmV+%0^|LOP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00004b3#c}2nYxW zd<bNS0005gNkl<ZI8UupJxE(o7(MsC+eFd$f=jV<P*8_B)J2^fI+Q{!LaB~|po6m_ zoePdmodR_b#KpaIP{@#>wSzy{h>9elhJ=8GnBQmf?)AI(^#wDA_`!QTxaXXE&bjxo zTGCc%V|W`}Lwz0rDO*qBbGY-M@aNENIZ1rK?nOAibaC*vb%CF;I_~lkJawax%_+1J zLn(#pv_v{f0`v`Cfp6()7MB(>IoTAiQdKxgxX?VyV&KVZ7b$vn<8|Z<9$35C+<Cy% zTp6Dh%2<!qP;<PZ&nWWAnZ$Wg5>G<dJsfsOqEuFJ{)3jkRuSF$*Vy?e;b4z8__5Vx zaN30(V&)M(s&KDRC<5QNs~8%vu(oQUyPIs%P01G&!USIWQpNOp0gd&iArJ_Vngzsu z)s3}GuK8p;JAhX&89u%f&{%)C&gSQPJ5$E~p)}>_8SH0x6Y(x<sDt5(PHb_dX4Z6E z%@dW1Lh451_klFciiRg(G$Ih97{{j)jFBi)C{hRCHXPVJ3?<_7+l)lw!Xs;CNeA(| zk7IuJ1vpp6?&l8zBg5RR>B&<ESGRNzGUQ-#T%b4H{7(gg+M);6@7}P5z%Vc|MkUc` eGumy0L>~bmn%r}ceRwbc0000<MNUMnLSTXx`uBza literal 0 HcmV?d00001 diff --git a/coverage/lcov-report/index.html b/coverage/lcov-report/index.html new file mode 100644 index 0000000..0a26123 --- /dev/null +++ b/coverage/lcov-report/index.html @@ -0,0 +1,126 @@ + +<!doctype html> +<html lang="en"> + +<head> + <title>Code coverage report for All files</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="prettify.css" /> + <link rel="stylesheet" href="base.css" /> + <link rel="shortcut icon" type="image/x-icon" href="favicon.png" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style type='text/css'> + .coverage-summary .sorter { + background-image: url(sort-arrow-sprite.png); + } + </style> +</head> + +<body> +<div class='wrapper'> + <div class='pad1'> + <h1>All files</h1> + <div class='clearfix'> + + <div class='fl pad1y space-right2'> + <span class="strong">73.72% </span> + <span class="quiet">Statements</span> + <span class='fraction'>87/118</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">36.36% </span> + <span class="quiet">Branches</span> + <span class='fraction'>20/55</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">76.47% </span> + <span class="quiet">Functions</span> + <span class='fraction'>13/17</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">73.72% </span> + <span class="quiet">Lines</span> + <span class='fraction'>87/118</span> + </div> + + + </div> + <p class="quiet"> + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + </p> + </div> + <div class='status-line medium'></div> + <div class="pad1"> +<table class="coverage-summary"> +<thead> +<tr> + <th data-col="file" data-fmt="html" data-html="true" class="file">File</th> + <th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th> + <th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th> + <th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th> + <th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th> + <th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th> + <th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th> + <th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th> + <th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th> + <th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th> +</tr> +</thead> +<tbody><tr> + <td class="file empty" data-value="Enum"><a href="Enum/index.html">Enum</a></td> + <td data-value="0" class="pic empty"> + <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div> + </td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + </tr> + +<tr> + <td class="file medium" data-value="Services"><a href="Services/index.html">Services</a></td> + <td data-value="73.72" class="pic medium"> + <div class="chart"><div class="cover-fill" style="width: 73%"></div><div class="cover-empty" style="width: 27%"></div></div> + </td> + <td data-value="73.72" class="pct medium">73.72%</td> + <td data-value="118" class="abs medium">87/118</td> + <td data-value="36.36" class="pct low">36.36%</td> + <td data-value="55" class="abs low">20/55</td> + <td data-value="76.47" class="pct medium">76.47%</td> + <td data-value="17" class="abs medium">13/17</td> + <td data-value="73.72" class="pct medium">73.72%</td> + <td data-value="118" class="abs medium">87/118</td> + </tr> + +</tbody> +</table> +</div> + <div class='push'></div><!-- for sticky footer --> + </div><!-- /wrapper --> + <div class='footer quiet pad2 space-top1 center small'> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank">istanbul</a> + at Thu Sep 30 2021 21:41:26 GMT-0300 (hora estándar de Uruguay) + </div> + </div> + <script src="prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="sorter.js"></script> + <script src="block-navigation.js"></script> + </body> +</html> + \ No newline at end of file diff --git a/coverage/lcov-report/prettify.css b/coverage/lcov-report/prettify.css new file mode 100644 index 0000000..b317a7c --- /dev/null +++ b/coverage/lcov-report/prettify.css @@ -0,0 +1 @@ +.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} diff --git a/coverage/lcov-report/prettify.js b/coverage/lcov-report/prettify.js new file mode 100644 index 0000000..b322523 --- /dev/null +++ b/coverage/lcov-report/prettify.js @@ -0,0 +1,2 @@ +/* eslint-disable */ +window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V<U;++V){var ae=Z[V];if(ae.ignoreCase){ac=true}else{if(/[a-z]/i.test(ae.source.replace(/\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi,""))){S=true;ac=false;break}}}var Y={b:8,t:9,n:10,v:11,f:12,r:13};function ab(ah){var ag=ah.charCodeAt(0);if(ag!==92){return ag}var af=ah.charAt(1);ag=Y[af];if(ag){return ag}else{if("0"<=af&&af<="7"){return parseInt(ah.substring(1),8)}else{if(af==="u"||af==="x"){return parseInt(ah.substring(2),16)}else{return ah.charCodeAt(1)}}}}function T(af){if(af<32){return(af<16?"\\x0":"\\x")+af.toString(16)}var ag=String.fromCharCode(af);if(ag==="\\"||ag==="-"||ag==="["||ag==="]"){ag="\\"+ag}return ag}function X(am){var aq=am.substring(1,am.length-1).match(new RegExp("\\\\u[0-9A-Fa-f]{4}|\\\\x[0-9A-Fa-f]{2}|\\\\[0-3][0-7]{0,2}|\\\\[0-7]{1,2}|\\\\[\\s\\S]|-|[^-\\\\]","g"));var ak=[];var af=[];var ao=aq[0]==="^";for(var ar=ao?1:0,aj=aq.length;ar<aj;++ar){var ah=aq[ar];if(/\\[bdsw]/i.test(ah)){ak.push(ah)}else{var ag=ab(ah);var al;if(ar+2<aj&&"-"===aq[ar+1]){al=ab(aq[ar+2]);ar+=2}else{al=ag}af.push([ag,al]);if(!(al<65||ag>122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;ar<af.length;++ar){var at=af[ar];if(at[0]<=ap[1]+1){ap[1]=Math.max(ap[1],at[1])}else{ai.push(ap=at)}}var an=["["];if(ao){an.push("^")}an.push.apply(an,ak);for(var ar=0;ar<ai.length;++ar){var at=ai[ar];an.push(T(at[0]));if(at[1]>at[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak<ah;++ak){var ag=aj[ak];if(ag==="("){++am}else{if("\\"===ag.charAt(0)){var af=+ag.substring(1);if(af&&af<=am){an[af]=-1}}}}for(var ak=1;ak<an.length;++ak){if(-1===an[ak]){an[ak]=++ad}}for(var ak=0,am=0;ak<ah;++ak){var ag=aj[ak];if(ag==="("){++am;if(an[am]===undefined){aj[ak]="(?:"}}else{if("\\"===ag.charAt(0)){var af=+ag.substring(1);if(af&&af<=am){aj[ak]="\\"+an[am]}}}}for(var ak=0,am=0;ak<ah;++ak){if("^"===aj[ak]&&"^"!==aj[ak+1]){aj[ak]=""}}if(al.ignoreCase&&S){for(var ak=0;ak<ah;++ak){var ag=aj[ak];var ai=ag.charAt(0);if(ag.length>=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V<U;++V){var ae=Z[V];if(ae.global||ae.multiline){throw new Error(""+ae)}aa.push("(?:"+W(ae)+")")}return new RegExp(aa.join("|"),ac?"gi":"g")}function a(V){var U=/(?:^|\s)nocode(?:\s|$)/;var X=[];var T=0;var Z=[];var W=0;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=document.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Y=S&&"pre"===S.substring(0,3);function aa(ab){switch(ab.nodeType){case 1:if(U.test(ab.className)){return}for(var ae=ab.firstChild;ae;ae=ae.nextSibling){aa(ae)}var ad=ab.nodeName;if("BR"===ad||"LI"===ad){X[W]="\n";Z[W<<1]=T++;Z[(W++<<1)|1]=ab}break;case 3:case 4:var ac=ab.nodeValue;if(ac.length){if(!Y){ac=ac.replace(/[ \t\r\n]+/g," ")}else{ac=ac.replace(/\r\n?/g,"\n")}X[W]=ac;Z[W<<1]=T;T+=ac.length;Z[(W++<<1)|1]=ab}break}}aa(V);return{sourceCode:X.join("").replace(/\n$/,""),spans:Z}}function B(S,U,W,T){if(!U){return}var V={sourceCode:U,basePos:S};W(V);T.push.apply(T,V.decorations)}var v=/\S/;function o(S){var V=undefined;for(var U=S.firstChild;U;U=U.nextSibling){var T=U.nodeType;V=(T===1)?(V?S:U):(T===3)?(v.test(U.nodeValue)?S:V):V}return V===S?undefined:V}function g(U,T){var S={};var V;(function(){var ad=U.concat(T);var ah=[];var ag={};for(var ab=0,Z=ad.length;ab<Z;++ab){var Y=ad[ab];var ac=Y[3];if(ac){for(var ae=ac.length;--ae>=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae<aq;++ae){var ag=an[ae];var ap=aj[ag];var ai=void 0;var am;if(typeof ap==="string"){am=false}else{var aa=S[ag.charAt(0)];if(aa){ai=ag.match(aa[1]);ap=aa[0]}else{for(var ao=0;ao<X;++ao){aa=T[ao];ai=ag.match(aa[1]);if(ai){ap=aa[0];break}}if(!ai){ap=F}}am=ap.length>=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y<W.length;++Y){ae(W[Y])}if(ag===(ag|0)){W[0].setAttribute("value",ag)}var aa=ac.createElement("OL");aa.className="linenums";var X=Math.max(0,((ag-1))|0)||0;for(var Y=0,T=W.length;Y<T;++Y){af=W[Y];af.className="L"+((Y+X)%10);if(!af.firstChild){af.appendChild(ac.createTextNode("\xA0"))}aa.appendChild(af)}V.appendChild(aa)}function D(ac){var aj=/\bMSIE\b/.test(navigator.userAgent);var am=/\n/g;var al=ac.sourceCode;var an=al.length;var V=0;var aa=ac.spans;var T=aa.length;var ah=0;var X=ac.decorations;var Y=X.length;var Z=0;X[Y]=an;var ar,aq;for(aq=ar=0;aq<Y;){if(X[aq]!==X[aq+2]){X[ar++]=X[aq++];X[ar++]=X[aq++]}else{aq+=2}}Y=ar;for(aq=ar=0;aq<Y;){var at=X[aq];var ab=X[aq+1];var W=aq+2;while(W+2<=Y&&X[W+1]===ab){W+=2}X[ar++]=at;X[ar++]=ab;aq=W}Y=X.length=ar;var ae=null;while(ah<T){var af=aa[ah];var S=aa[ah+2]||an;var ag=X[Z];var ap=X[Z+2]||an;var W=Math.min(S,ap);var ak=aa[ah+1];var U;if(ak.nodeType!==1&&(U=al.substring(V,W))){if(aj){U=U.replace(am,"\r")}ak.nodeValue=U;var ai=ak.ownerDocument;var ao=ai.createElement("SPAN");ao.className=X[Z+1];var ad=ak.parentNode;ad.replaceChild(ao,ak);ao.appendChild(ak);if(V<S){aa[ah+1]=ak=ai.createTextNode(al.substring(W,S));ad.insertBefore(ak,ao.nextSibling)}}V=W;if(V>=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*</.test(S)?"default-markup":"default-code"}return t[T]}c(K,["default-code"]);c(g([],[[F,/^[^<?]+/],[E,/^<!\w[^>]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa<ac.length;++aa){for(var Z=0,V=ac[aa].length;Z<V;++Z){T.push(ac[aa][Z])}}ac=null;var W=Date;if(!W.now){W={now:function(){return +(new Date)}}}var X=0;var S;var ab=/\blang(?:uage)?-([\w.]+)(?!\S)/;var ae=/\bprettyprint\b/;function U(){var ag=(window.PR_SHOULD_USE_CONTINUATION?W.now()+250:Infinity);for(;X<T.length&&W.now()<ag;X++){var aj=T[X];var ai=aj.className;if(ai.indexOf("prettyprint")>=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X<T.length){setTimeout(U,250)}else{if(ad){ad()}}}U()}window.prettyPrintOne=y;window.prettyPrint=b;window.PR={createSimpleLexer:g,registerLangHandler:c,sourceDecorator:i,PR_ATTRIB_NAME:P,PR_ATTRIB_VALUE:n,PR_COMMENT:j,PR_DECLARATION:E,PR_KEYWORD:z,PR_LITERAL:G,PR_NOCODE:N,PR_PLAIN:F,PR_PUNCTUATION:L,PR_SOURCE:J,PR_STRING:C,PR_TAG:m,PR_TYPE:O}})();PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_DECLARATION,/^<!\w[^>]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^<script\b[^>]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:<!--|-->)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]); diff --git a/coverage/lcov-report/sort-arrow-sprite.png b/coverage/lcov-report/sort-arrow-sprite.png new file mode 100644 index 0000000000000000000000000000000000000000..03f704a609c6fd0dbfdac63466a7d7c958b5cbf3 GIT binary patch literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^>_9Bd!3HEZxJ@+%Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jii$m5978H@?Fn+^JD|Y9yzj{W`447Gxa{7*dM7nnnD-Lb z6^}Hx2)<t4^o6Wx*F;wxHx}=5N#Su@S-w&C^o$MC9b5+$B=T4;r?cPm)%Fj&wd;}X zP9-IMj(10vstZN_m^jtm<9|ljB!x{5tE86~eE-nSz|0W&!@{XNS*HVNJ%gvKpUXO@ GgeCxf+epL! literal 0 HcmV?d00001 diff --git a/coverage/lcov-report/sorter.js b/coverage/lcov-report/sorter.js new file mode 100644 index 0000000..16de10c --- /dev/null +++ b/coverage/lcov-report/sorter.js @@ -0,0 +1,170 @@ +/* eslint-disable */ +var addSorting = (function() { + 'use strict'; + var cols, + currentSort = { + index: 0, + desc: false + }; + + // returns the summary table element + function getTable() { + return document.querySelector('.coverage-summary'); + } + // returns the thead element of the summary table + function getTableHeader() { + return getTable().querySelector('thead tr'); + } + // returns the tbody element of the summary table + function getTableBody() { + return getTable().querySelector('tbody'); + } + // returns the th element for nth column + function getNthColumn(n) { + return getTableHeader().querySelectorAll('th')[n]; + } + + // loads all columns + function loadColumns() { + var colNodes = getTableHeader().querySelectorAll('th'), + colNode, + cols = [], + col, + i; + + for (i = 0; i < colNodes.length; i += 1) { + colNode = colNodes[i]; + col = { + key: colNode.getAttribute('data-col'), + sortable: !colNode.getAttribute('data-nosort'), + type: colNode.getAttribute('data-type') || 'string' + }; + cols.push(col); + if (col.sortable) { + col.defaultDescSort = col.type === 'number'; + colNode.innerHTML = + colNode.innerHTML + '<span class="sorter"></span>'; + } + } + return cols; + } + // attaches a data attribute to every tr element with an object + // of data values keyed by column name + function loadRowData(tableRow) { + var tableCols = tableRow.querySelectorAll('td'), + colNode, + col, + data = {}, + i, + val; + for (i = 0; i < tableCols.length; i += 1) { + colNode = tableCols[i]; + col = cols[i]; + val = colNode.getAttribute('data-value'); + if (col.type === 'number') { + val = Number(val); + } + data[col.key] = val; + } + return data; + } + // loads all row data + function loadData() { + var rows = getTableBody().querySelectorAll('tr'), + i; + + for (i = 0; i < rows.length; i += 1) { + rows[i].data = loadRowData(rows[i]); + } + } + // sorts the table using the data for the ith column + function sortByIndex(index, desc) { + var key = cols[index].key, + sorter = function(a, b) { + a = a.data[key]; + b = b.data[key]; + return a < b ? -1 : a > b ? 1 : 0; + }, + finalSorter = sorter, + tableBody = document.querySelector('.coverage-summary tbody'), + rowNodes = tableBody.querySelectorAll('tr'), + rows = [], + i; + + if (desc) { + finalSorter = function(a, b) { + return -1 * sorter(a, b); + }; + } + + for (i = 0; i < rowNodes.length; i += 1) { + rows.push(rowNodes[i]); + tableBody.removeChild(rowNodes[i]); + } + + rows.sort(finalSorter); + + for (i = 0; i < rows.length; i += 1) { + tableBody.appendChild(rows[i]); + } + } + // removes sort indicators for current column being sorted + function removeSortIndicators() { + var col = getNthColumn(currentSort.index), + cls = col.className; + + cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, ''); + col.className = cls; + } + // adds sort indicators for current column being sorted + function addSortIndicators() { + getNthColumn(currentSort.index).className += currentSort.desc + ? ' sorted-desc' + : ' sorted'; + } + // adds event listeners for all sorter widgets + function enableUI() { + var i, + el, + ithSorter = function ithSorter(i) { + var col = cols[i]; + + return function() { + var desc = col.defaultDescSort; + + if (currentSort.index === i) { + desc = !currentSort.desc; + } + sortByIndex(i, desc); + removeSortIndicators(); + currentSort.index = i; + currentSort.desc = desc; + addSortIndicators(); + }; + }; + for (i = 0; i < cols.length; i += 1) { + if (cols[i].sortable) { + // add the click event handler on the th so users + // dont have to click on those tiny arrows + el = getNthColumn(i).querySelector('.sorter').parentElement; + if (el.addEventListener) { + el.addEventListener('click', ithSorter(i)); + } else { + el.attachEvent('onclick', ithSorter(i)); + } + } + } + } + // adds sorting functionality to the UI + return function() { + if (!getTable()) { + return; + } + cols = loadColumns(); + loadData(); + addSortIndicators(); + enableUI(); + }; +})(); + +window.addEventListener('load', addSorting); diff --git a/coverage/lcov.info b/coverage/lcov.info new file mode 100644 index 0000000..7b896c9 --- /dev/null +++ b/coverage/lcov.info @@ -0,0 +1,243 @@ +TN: +SF:src\Enum\AgeBracket.ts +FNF:0 +FNH:0 +LF:0 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\Enum\Sex.ts +FNF:0 +FNH:0 +LF:0 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src\Services\ERCalculator.ts +FN:15,(anonymous_0) +FN:23,(anonymous_1) +FN:39,(anonymous_2) +FN:45,(anonymous_3) +FN:57,(anonymous_4) +FN:69,(anonymous_5) +FN:82,(anonymous_6) +FN:94,(anonymous_7) +FN:110,(anonymous_8) +FN:130,(anonymous_9) +FN:164,(anonymous_10) +FN:198,(anonymous_11) +FN:220,(anonymous_12) +FN:226,(anonymous_13) +FNF:14 +FNH:12 +FNDA:4,(anonymous_0) +FNDA:5,(anonymous_1) +FNDA:11,(anonymous_2) +FNDA:11,(anonymous_3) +FNDA:6,(anonymous_4) +FNDA:2,(anonymous_5) +FNDA:2,(anonymous_6) +FNDA:2,(anonymous_7) +FNDA:3,(anonymous_8) +FNDA:4,(anonymous_9) +FNDA:4,(anonymous_10) +FNDA:3,(anonymous_11) +FNDA:0,(anonymous_12) +FNDA:0,(anonymous_13) +DA:15,1 +DA:16,4 +DA:17,3 +DA:19,1 +DA:23,1 +DA:24,5 +DA:28,5 +DA:29,5 +DA:31,5 +DA:35,5 +DA:39,1 +DA:40,11 +DA:41,11 +DA:45,1 +DA:46,11 +DA:48,11 +DA:51,11 +DA:53,11 +DA:57,1 +DA:58,6 +DA:59,6 +DA:61,6 +DA:62,6 +DA:63,6 +DA:65,6 +DA:69,1 +DA:70,2 +DA:72,2 +DA:73,2 +DA:75,2 +DA:76,2 +DA:77,2 +DA:79,2 +DA:82,1 +DA:83,2 +DA:85,2 +DA:91,2 +DA:94,1 +DA:95,2 +DA:100,2 +DA:106,2 +DA:110,1 +DA:112,3 +DA:113,1 +DA:115,2 +DA:118,2 +DA:120,2 +DA:126,2 +DA:130,1 +DA:133,4 +DA:134,1 +DA:136,3 +DA:137,3 +DA:140,3 +DA:144,3 +DA:145,2 +DA:146,1 +DA:147,1 +DA:148,1 +DA:150,0 +DA:154,2 +DA:160,2 +DA:164,1 +DA:167,4 +DA:168,1 +DA:170,3 +DA:171,3 +DA:174,3 +DA:178,3 +DA:179,2 +DA:180,1 +DA:181,1 +DA:182,1 +DA:184,0 +DA:188,2 +DA:194,2 +DA:198,1 +DA:201,3 +DA:202,1 +DA:204,2 +DA:205,2 +DA:208,2 +DA:210,2 +DA:216,2 +DA:220,1 +DA:221,0 +DA:222,0 +DA:224,0 +DA:226,0 +DA:227,0 +DA:229,0 +DA:242,0 +DA:243,0 +DA:250,0 +DA:251,0 +DA:265,0 +DA:266,0 +DA:269,0 +DA:270,0 +DA:273,0 +DA:274,0 +DA:277,0 +DA:278,0 +DA:281,0 +DA:284,0 +DA:285,0 +DA:288,0 +DA:294,0 +DA:299,0 +LF:109 +LH:83 +BRDA:16,0,0,3 +BRDA:16,0,1,1 +BRDA:112,1,0,1 +BRDA:112,1,1,2 +BRDA:133,2,0,1 +BRDA:133,2,1,3 +BRDA:144,3,0,2 +BRDA:144,3,1,1 +BRDA:145,4,0,1 +BRDA:145,4,1,1 +BRDA:147,5,0,1 +BRDA:147,5,1,0 +BRDA:167,6,0,1 +BRDA:167,6,1,3 +BRDA:178,7,0,2 +BRDA:178,7,1,1 +BRDA:179,8,0,1 +BRDA:179,8,1,1 +BRDA:181,9,0,1 +BRDA:181,9,1,0 +BRDA:201,10,0,1 +BRDA:201,10,1,2 +BRDA:229,11,0,0 +BRDA:229,11,1,0 +BRDA:229,11,2,0 +BRDA:229,11,3,0 +BRDA:229,11,4,0 +BRDA:229,11,5,0 +BRDA:229,11,6,0 +BRDA:229,11,7,0 +BRDA:229,11,8,0 +BRDA:229,11,9,0 +BRDA:229,11,10,0 +BRDA:229,11,11,0 +BRDA:229,11,12,0 +BRDA:229,11,13,0 +BRDA:229,11,14,0 +BRDA:229,11,15,0 +BRDA:229,11,16,0 +BRDA:229,11,17,0 +BRDA:229,11,18,0 +BRDA:229,11,19,0 +BRDA:229,11,20,0 +BRDA:229,11,21,0 +BRDA:229,11,22,0 +BRDA:229,11,23,0 +BRDA:229,11,24,0 +BRDA:229,11,25,0 +BRDA:229,11,26,0 +BRDA:229,11,27,0 +BRDA:229,11,28,0 +BRDA:229,11,29,0 +BRDA:229,11,30,0 +BRDA:229,11,31,0 +BRDA:229,11,32,0 +BRF:55 +BRH:20 +end_of_record +TN: +SF:src\Services\ParserService.ts +FN:162,(anonymous_0) +FN:164,(anonymous_1) +FN:176,(anonymous_2) +FNF:3 +FNH:1 +FNDA:0,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:12,(anonymous_2) +DA:162,1 +DA:163,0 +DA:164,0 +DA:165,0 +DA:171,0 +DA:173,0 +DA:176,1 +DA:177,12 +DA:183,12 +LF:9 +LH:4 +BRF:0 +BRH:0 +end_of_record diff --git a/package-lock.json b/package-lock.json index d4d415e..ada6047 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1661,6 +1661,120 @@ "defer-to-connect": "^1.0.1" } }, + "@testing-library/jest-dom": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-4.2.4.tgz", + "integrity": "sha512-j31Bn0rQo12fhCWOUWy9fl7wtqkp7In/YP2p5ZFyRuiiB9Qs3g+hS4gAmDWONbAHcRmVooNJ5eOHQDCOmUFXHg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.5.1", + "chalk": "^2.4.1", + "css": "^2.2.3", + "css.escape": "^1.5.1", + "jest-diff": "^24.0.0", + "jest-matcher-utils": "^24.0.0", + "lodash": "^4.17.11", + "pretty-format": "^24.0.0", + "redent": "^3.0.0" + }, + "dependencies": { + "@jest/types": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", + "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^13.0.0" + } + }, + "@types/istanbul-reports": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", + "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "*", + "@types/istanbul-lib-report": "*" + } + }, + "@types/yargs": { + "version": "13.0.12", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.12.tgz", + "integrity": "sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "diff-sequences": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-24.9.0.tgz", + "integrity": "sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew==", + "dev": true + }, + "jest-diff": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-24.9.0.tgz", + "integrity": "sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ==", + "dev": true, + "requires": { + "chalk": "^2.0.1", + "diff-sequences": "^24.9.0", + "jest-get-type": "^24.9.0", + "pretty-format": "^24.9.0" + } + }, + "jest-get-type": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.9.0.tgz", + "integrity": "sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q==", + "dev": true + }, + "jest-matcher-utils": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz", + "integrity": "sha512-OZz2IXsu6eaiMAwe67c1T+5tUAtQyQx27/EMEkbFAGiw52tB9em+uGbzpcgYVpA8wl0hlxKPZxrly4CXU/GjHA==", + "dev": true, + "requires": { + "chalk": "^2.0.1", + "jest-diff": "^24.9.0", + "jest-get-type": "^24.9.0", + "pretty-format": "^24.9.0" + } + }, + "pretty-format": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz", + "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==", + "dev": true, + "requires": { + "@jest/types": "^24.9.0", + "ansi-regex": "^4.0.0", + "ansi-styles": "^3.2.0", + "react-is": "^16.8.4" + } + } + } + }, "@tootallnate/once": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", @@ -2327,6 +2441,12 @@ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", "dev": true }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, "axe-core": { "version": "4.3.3", "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.3.3.tgz", @@ -3157,6 +3277,24 @@ "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", "dev": true }, + "css": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", + "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "source-map": "^0.6.1", + "source-map-resolve": "^0.5.2", + "urix": "^0.1.0" + } + }, + "css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=", + "dev": true + }, "cssom": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", @@ -3211,6 +3349,12 @@ "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==", "dev": true }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, "decompress-response": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", @@ -6399,6 +6543,12 @@ "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", "dev": true }, + "min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true + }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -7124,6 +7274,16 @@ "picomatch": "^2.2.1" } }, + "redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "requires": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + } + }, "regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", @@ -7269,6 +7429,12 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, "responselike": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", @@ -7525,6 +7691,19 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, "source-map-support": { "version": "0.5.20", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.20.tgz", @@ -7535,6 +7714,12 @@ "source-map": "^0.6.0" } }, + "source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "dev": true + }, "spdx-correct": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", @@ -7715,6 +7900,15 @@ "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true }, + "strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "requires": { + "min-indent": "^1.0.0" + } + }, "strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -8328,6 +8522,12 @@ "punycode": "^2.1.0" } }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, "url-parse-lax": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", diff --git a/package.json b/package.json index 639efd8..c502455 100644 --- a/package.json +++ b/package.json @@ -22,6 +22,7 @@ "@babel/plugin-transform-modules-commonjs": "^7.15.4", "@babel/preset-env": "^7.15.6", "@babel/preset-typescript": "^7.15.0", + "@testing-library/jest-dom": "^4.2.4", "@types/cors": "^2.8.12", "@types/express": "^4.17.13", "@types/jest": "^27.0.2", @@ -50,8 +51,7 @@ }, "scripts": { "start": "nodemon ./src/index.ts", - "test": "jest", - "pretest": "lint-staged" + "test": "jest" }, "repository": { "type": "git", diff --git a/src/Services/ERCalculator.ts b/src/Services/ERCalculator.ts index f2c2155..c48dc42 100644 --- a/src/Services/ERCalculator.ts +++ b/src/Services/ERCalculator.ts @@ -84,8 +84,8 @@ const calculateLessThanAYear = (group: AgeGroup, params: number[]): GroupEnerget const groupRequirement: GroupEnergeticRequirement = { group: ParserService.unparseGroup(group), - perCapita: requirement, - total: requirement * group.population, + perCapita: Math.round(requirement), + total: Math.round(requirement * group.population), }; return groupRequirement; @@ -99,8 +99,8 @@ const calculate1To5Years = (group: AgeGroup, params: number[]): GroupEnergeticRe const groupRequirement: GroupEnergeticRequirement = { group: ParserService.unparseGroup(group), - perCapita: requirement, - total: requirement * group.population, + perCapita: Math.round(requirement), + total: Math.round(requirement * group.population), }; return groupRequirement; @@ -119,8 +119,8 @@ const calculate6To17Years = (group: AgeGroup, params: number[], data: ExtraData) const groupRequirement: GroupEnergeticRequirement = { group: ParserService.unparseGroup(group), - perCapita: requirement, - total: requirement * group.population, + perCapita: Math.round(requirement), + total: Math.round(requirement * group.population), }; return groupRequirement; @@ -153,8 +153,8 @@ const calculate18To29Years = (group: AgeGroup, params: number[], data: ExtraData const groupRequirement: GroupEnergeticRequirement = { group: ParserService.unparseGroup(group), - perCapita: requirement, - total: requirement * group.population, + perCapita: Math.round(requirement), + total: Math.round(requirement * group.population), }; return groupRequirement; @@ -187,8 +187,8 @@ const calculate30To59Years = (group: AgeGroup, params: number[], data: ExtraData const groupRequirement: GroupEnergeticRequirement = { group: ParserService.unparseGroup(group), - perCapita: requirement, - total: requirement * group.population, + perCapita: Math.round(requirement), + total: Math.round(requirement * group.population), }; return groupRequirement; @@ -209,8 +209,8 @@ const calculate60PlusYears = (group: AgeGroup, params: number[], data: ExtraData const groupRequirement: GroupEnergeticRequirement = { group: ParserService.unparseGroup(group), - perCapita: requirement, - total: requirement * group.population, + perCapita: Math.round(requirement), + total: Math.round(requirement * group.population), }; return groupRequirement; @@ -299,7 +299,7 @@ const calculateER = (groupParameters: Map<number[], AgeGroup>, data: ExtraData): return result; }; -module.exports = { +export default { calculateER, calculate60PlusYears, calculate30To59Years, @@ -314,5 +314,3 @@ module.exports = { calculateTEE, isIndividualMaternity, }; - -export default { calculateER }; diff --git a/src/Services/ParameterService.ts b/src/Services/ParameterService.ts index 41469c5..27b19b1 100644 --- a/src/Services/ParameterService.ts +++ b/src/Services/ParameterService.ts @@ -1,7 +1,5 @@ import AgeBracket from '../Enum/AgeBracket'; -import ParameterType from '../Enum/ParameterType'; import Sex from '../Enum/Sex'; -// import Parameter from '../Models/Parameter'; const getEquationValues = (ageBracket: AgeBracket, sex: Sex): number[] => { let res: number[] = []; diff --git a/src/Services/ParserService.ts b/src/Services/ParserService.ts index dc7131b..a637bce 100644 --- a/src/Services/ParserService.ts +++ b/src/Services/ParserService.ts @@ -162,10 +162,6 @@ import Sex from '../Enum/Sex'; const parseGroups = (groups: AgeGroupJSON[]): AgeGroup[] => { const retGroups: AgeGroup[] = []; 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 = { age: ageGroup.age as AgeBracket, sex: ageGroup.sex as Sex, -- GitLab