using Centron.Interfaces.DataExchange.BookKeeping; using Centron.Tests.EndToEnd.Infrastructure; using Xunit; using Xunit.Abstractions; namespace Centron.Tests.EndToEnd.Tests.OldReceiptPriceCalculation; public class CalculationUtilTests : CentronTest { public CalculationUtilTests(ITestOutputHelper testOutputHelper) : base(testOutputHelper) { } [Theory] [InlineData(100.0)] [InlineData(150.0)] [InlineData(200.0)] [InlineData(10.0)] [InlineData(6.8)] public void Test_CalculationUtils_Back_And_Forth_Calculation(double userEnteredPriceThatIncludesDiscountAlready) { const int Discount = 10; const double CurrencyFactor = 1.0; const int Precision = 2; // CalculateBasePrice and CalculateNetPrice are basically the back-and-forth calculation of the same value // The NetPrice includes the discount, the BasePrice does not var basePrice = CalculationUtils.CalculateBasePrice(userEnteredPriceThatIncludesDiscountAlready, CurrencyFactor, Discount, Precision); var displayedPrice = CalculationUtils.CalculateNetPrice(basePrice, CurrencyFactor, Discount, Precision); Assert.Equal(userEnteredPriceThatIncludesDiscountAlready, displayedPrice); } }