public void BeregnReserveWhenAgeIsFractionedShouldReturnInterpolatedValue() { var mockAge = _mockRepository.DynamicMock<InsuranceAgeCalculator>(); var mockCalc = _mockRepository.DynamicMock<RenteReserveCalculator>(); var mockDb = _mockRepository.DynamicMock<DbAdapter>(); var foedselsDato = new DateTime(1980, 6, 30); var beregningsDato = new DateTime(2012, 12, 31); using (_mockRepository.Record()) { SetupResult.For(mockAge.CalculateAge(foedselsDato, beregningsDato)).IgnoreArguments().Return(1.1); const int age = 1; SetupResult.For(mockCalc.CalculateForEenKrone(age)).Return((decimal) 1); SetupResult.For(mockCalc.CalculateForEenKrone(age + 1)).Return((decimal) 0.9); } var e = new RenteReserveBeregner(mockAge, (koen, consumerPriceIndex) => mockCalc); const int ydelsePrMaaned = 1; var reserve = e.BeregnReserve(foedselsDato, beregningsDato, Koen.Kvinde, ydelsePrMaaned, 0); Expect(reserve, Is.EqualTo(11.88).Within(0.001)); }
public void BeregnAkkumuleretReserveTil67AarMedInterpolationShouldMatchDataFromSpreadsheet() { var dbAdapter = new DbAdapter(Program.DbConnectionString); dbAdapter.ReadFromDb(); var e = new RenteReserveBeregner(dbAdapter); var foedselsDato = new DateTime(1980, 6, 30); var udloebsDato = new DateTime(2013, 1, 1); /* Ydelse pr maaned er hentet fra kolonne E benævnt fakturasum * i regnearket "beregning af rentereserver" i panelet "dataark" * */ const int ydelsePrMaaned = 6554; var renteReserve = e.BeregnReserve(foedselsDato, udloebsDato, Koen.Kvinde, ydelsePrMaaned, 0); /* rentereserven er hentet fra kolonne O som Olsen benævnt fakturasum * i regnearket "beregning af rentereserver" i panelet "dataark" * */ const decimal expectedRenteReserve = (decimal) 1997696.35904207; Expect(renteReserve, Is.EqualTo(expectedRenteReserve).Within(10)); }
private void AssertSkade(ErhvervsSkade skade, DbAdapter dbAdapter) { var e = new RenteReserveBeregner(dbAdapter); var reserve = e.BeregnReserve(skade.BuildFictionalDate(), EndOf2012,Koen.Kvinde, skade.Fakturasum, 0); Expect(reserve, Is.EqualTo(skade.Reserve).Within(26)); var message = string.Format("Udbetalinger (år): {0}\t Fakturasum: {1}\t og forskel {2}", Math.Round(67 - skade.Alder, 2), skade.Fakturasum, Math.Round(reserve - skade.Reserve, 2)); Debug.Print(message); }
private static Decimal BeregnSkade(DbAdapter dbAdapter, ErhvervsSkade skade) { var e = new RenteReserveBeregner(dbAdapter); return e.BeregnReserve(skade.BuildFictionalDate(), EndOf2012, Koen.Kvinde, skade.Fakturasum, 0); }
public void BeregnReserveWithDiskontoFrom10Oktober2012Other() { //150182-xxx6 var db = new DbAdapter(Program.DbConnectionString); db.ReadFromDb(); db.SetDiskontoSatser(TestConstants.DiskonteringsRente10Oktober2012); var e = new RenteReserveBeregner(db); var foedselsDato = new DateTime(1982, 1, 15); var beregningsDato = new DateTime(2012, 12, 31); var age = new InsuranceAgeCalculator().CalculateAge(foedselsDato, beregningsDato); Expect(age, Is.EqualTo(30.9166666666667).Within(0.001)); const int comsumerPriceIndexInPercent = 1; var reserve = e.BeregnReserve(foedselsDato, beregningsDato, Koen.Kvinde, 10034, comsumerPriceIndexInPercent); const double expectedReserveFromSpreadsheet = 3719302.94806157; Expect(reserve, Is.EqualTo(expectedReserveFromSpreadsheet).Within(10)); }
public void BeregnReserveWithDiskontoFrom10Oktober2012() { //cpr: 160680-xxx6 var db = new DbAdapter(Program.DbConnectionString); db.ReadFromDb(); db.SetDiskontoSatser(TestConstants.DiskonteringsRente10Oktober2012); var e = new RenteReserveBeregner(db); var foedselsDato = new DateTime(1980,6,16); var beregningsDato = new DateTime(2012,12,31); var age = new InsuranceAgeCalculator().CalculateAge(foedselsDato, beregningsDato); Expect(age, Is.EqualTo(32.5).Within(0.001)); const int comsumerPriceIndexInPercent = 1; var reserve = e.BeregnReserve(foedselsDato, beregningsDato, Koen.Kvinde, 6554, comsumerPriceIndexInPercent); Expect(reserve, Is.EqualTo(2347852.93480205).Within(10)); }