From 026af10f366bcf58753ed01cdc6b906599b9400d Mon Sep 17 00:00:00 2001 From: Reto Kaul Date: Sat, 17 Aug 2024 17:28:25 +0200 Subject: [PATCH] Fix tests --- ...ator-baln-buy-and-sell-in-two-activities.spec.ts | 2 +- .../portfolio-calculator-baln-buy-and-sell.spec.ts | 2 +- .../portfolio-calculator-novn-buy-and-sell.spec.ts | 2 +- .../calculator/twr/portfolio-calculator.ts | 13 ++++++++++--- 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy-and-sell-in-two-activities.spec.ts b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy-and-sell-in-two-activities.spec.ts index a95f2eee0..5c63cb58d 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy-and-sell-in-two-activities.spec.ts +++ b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy-and-sell-in-two-activities.spec.ts @@ -178,7 +178,7 @@ describe('PortfolioCalculator', () => { '-0.05528341497550734703' ), netPerformancePercentageWithCurrencyEffectMap: { - max: new Big('-0.18658152554233729881') // TODO: Different + max: new Big('-0.0552834149755073478') }, netPerformanceWithCurrencyEffect: new Big('-15.8'), netPerformanceWithCurrencyEffectMap: { diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy-and-sell.spec.ts b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy-and-sell.spec.ts index b0ee40299..5ce1dd80b 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy-and-sell.spec.ts +++ b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy-and-sell.spec.ts @@ -163,7 +163,7 @@ describe('PortfolioCalculator', () => { '-0.0552834149755073478' ), netPerformancePercentageWithCurrencyEffectMap: { - max: new Big('-0.18658152554233729881') // TODO: Different + max: new Big('-0.0552834149755073478') }, netPerformanceWithCurrencyEffect: new Big('-15.8'), netPerformanceWithCurrencyEffectMap: { diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-novn-buy-and-sell.spec.ts b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-novn-buy-and-sell.spec.ts index 760508453..828cbc55e 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-novn-buy-and-sell.spec.ts +++ b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-novn-buy-and-sell.spec.ts @@ -193,7 +193,7 @@ describe('PortfolioCalculator', () => { '0.13100263852242744063' ), netPerformancePercentageWithCurrencyEffectMap: { - max: new Big('0.14737796833773087071') + max: new Big('0.13100263852242744063') }, netPerformanceWithCurrencyEffect: new Big('19.86'), netPerformanceWithCurrencyEffectMap: { diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator.ts b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator.ts index fea98ccf8..d7cbcfda3 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator.ts +++ b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator.ts @@ -924,9 +924,16 @@ export class TWRPortfolioCalculator extends PortfolioCalculator { netPerformanceWithCurrencyEffectMap[dateRange] = netPerformanceValuesWithCurrencyEffect[ format(endDate, DATE_FORMAT) - ].minus( - netPerformanceValuesWithCurrencyEffect[format(startDate, DATE_FORMAT)] - ); + ]?.minus( + // If the date range is 'max', take 0 as a start value. Otherwise, + // the value of the end of the day of the start date is taken which + // can differ. + dateRange === 'max' + ? new Big(0) + : (netPerformanceValuesWithCurrencyEffect[ + format(startDate, DATE_FORMAT) + ] ?? new Big(0)) + ) ?? new Big(0); netPerformancePercentageWithCurrencyEffectMap[dateRange] = average.gt(0) ? netPerformanceWithCurrencyEffectMap[dateRange].div(average)