specify comparing tolerance

This commit is contained in:
Chika 2021-04-08 18:38:14 +03:00
parent dd2b015cb1
commit 2ec8d9a240
2 changed files with 165 additions and 2 deletions

View File

@ -1,4 +1,5 @@
using System.Collections.Generic;
using System;
using System.Collections.Generic;
using EvoCalculator.Core.Models.Calculation.Models.Request;
namespace EvoCalculator.Core.Calculation.v1
@ -33,7 +34,7 @@ namespace EvoCalculator.Core.Calculation.v1
"Некорректно указана Дата второго платежа, она не может быть раньше Даты заключения ДЛ");
}
if ((preparedValues.FirstPaymentSum / preparedValues.AcceptSum) > 0.5m)
if (preparedValues.FirstPaymentSum / preparedValues.AcceptSum >= 0.500001m)
{
errors.Add("Первый платеж по графику более 50% от стоимости ПЛ с учетом скидки. Необходимо уменьшить первый платеж");
}

View File

@ -0,0 +1,162 @@
using System;
using EvoCalculator.Core.Calculation.v1;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
using EvoCalculator.Core.Models.Calculation.Models.Request;
using Xunit;
namespace EvoCalculator.Core.Tests.Calculation
{
public class ValidationTests
{
[Fact]
public void ValidationTest1()
{
var requestCalculation = new RequestCalculation()
{
preparedValues = new PreparedValues()
{
AcceptSum = 791666.6666666667m,
FirstPaymentSum = 395833.3333333334m,
Nmper = 5,
IrrExpected = 5,
Discount = 5, ComissionRub = 5,
PaymentDateNew = DateTime.Today.AddDays(1),
DogDate = DateTime.Now,
}
};
var errors = new Validation().ValidatePreparedData(requestCalculation);
Assert.Empty(errors);
}
[Fact]
public void ValidationTest2()
{
var requestCalculation = new RequestCalculation()
{
preparedValues = new PreparedValues()
{
AcceptSum = 691666.6666666667m,
FirstPaymentSum = 345833.3333333334m,
Nmper = 5,
IrrExpected = 5,
Discount = 5, ComissionRub = 5,
PaymentDateNew = DateTime.Today.AddDays(1),
DogDate = DateTime.Now,
}
};
var errors = new Validation().ValidatePreparedData(requestCalculation);
Assert.Empty(errors);
}
[Fact]
public void ValidationTest3()
{
var requestCalculation = new RequestCalculation()
{
preparedValues = new PreparedValues()
{
AcceptSum = 6862036.016666667m,
FirstPaymentSum = 3431018.0083333333m,
Nmper = 5,
IrrExpected = 5,
Discount = 5, ComissionRub = 5,
PaymentDateNew = DateTime.Today.AddDays(1),
DogDate = DateTime.Now,
}
};
var errors = new Validation().ValidatePreparedData(requestCalculation);
Assert.Empty(errors);
}
[Fact]
public void ValidationTest4()
{
var requestCalculation = new RequestCalculation()
{
preparedValues = new PreparedValues()
{
AcceptSum = 6862036.016666667m,
FirstPaymentSum = 3431024.87036935m,
Nmper = 5,
IrrExpected = 5,
Discount = 5, ComissionRub = 5,
PaymentDateNew = DateTime.Today.AddDays(1),
DogDate = DateTime.Now,
}
};
var errors = new Validation().ValidatePreparedData(requestCalculation);
Assert.Empty(errors);
}
[Fact]
public void ValidationTest5()
{
var requestCalculation = new RequestCalculation()
{
preparedValues = new PreparedValues()
{
AcceptSum = 6862036.016666667m,
FirstPaymentSum = 3499645.23053601m,
Nmper = 5,
IrrExpected = 5,
Discount = 5, ComissionRub = 5,
PaymentDateNew = DateTime.Today.AddDays(1),
DogDate = DateTime.Now,
}
};
var errors = new Validation().ValidatePreparedData(requestCalculation);
Assert.NotEmpty(errors);
}
[Fact]
public void ValidationTest6()
{
var requestCalculation = new RequestCalculation()
{
preparedValues = new PreparedValues()
{
AcceptSum = 6862036.016666667m,
FirstPaymentSum = 3498952.23351869m,
Nmper = 5,
IrrExpected = 5,
Discount = 5, ComissionRub = 5,
PaymentDateNew = DateTime.Today.AddDays(1),
DogDate = DateTime.Now,
}
};
var errors = new Validation().ValidatePreparedData(requestCalculation);
Assert.NotEmpty(errors);
}
[Fact]
public void ValidationTest7()
{
var requestCalculation = new RequestCalculation()
{
preparedValues = new PreparedValues()
{
AcceptSum = 6862036.016666667m,
FirstPaymentSum = 1372407.20333333m,
Nmper = 5,
IrrExpected = 5,
Discount = 5, ComissionRub = 5,
PaymentDateNew = DateTime.Today.AddDays(1),
DogDate = DateTime.Now,
}
};
var errors = new Validation().ValidatePreparedData(requestCalculation);
Assert.Empty(errors);
}
}
}