using System.Collections.Generic; using Centron.Common.Calculations; using Centron.Interfaces.Sales.Receipts.Switzerland; using Centron.Tests.EndToEnd.Infrastructure; using Xunit; using Xunit.Abstractions; namespace Centron.Tests.EndToEnd.Tests.Calculations; public class SwitzerlandRoundingTests : CentronTest { public SwitzerlandRoundingTests(ITestOutputHelper testOutputHelper) : base(testOutputHelper) { } [Fact] public void Execute() { var tests = new List<(decimal number, decimal expectedRoundDown, decimal expectedMidpoint, decimal expectedRoundUp)>() { (3.1m, 3.1m, 3.1m, 3.1m), (3.12m, 3.1m, 3.1m, 3.15m), (3.14m, 3.1m, 3.15m, 3.15m), (3.15m, 3.15m, 3.15m, 3.15m), (3.16m, 3.15m, 3.15m, 3.2m), (3.18m, 3.15m, 3.2m, 3.2m) }; foreach (var testValue in tests) { Assert.Equal(testValue.expectedMidpoint, MathUtils.CommercialRoundCH(testValue.number)); // Test default -- should be midpoint Assert.Equal(testValue.expectedRoundDown, MathUtils.CommercialRoundCH(testValue.number, SwissRounding.RoundDown, isUnitTest:true)); Assert.Equal(testValue.expectedMidpoint, MathUtils.CommercialRoundCH(testValue.number, SwissRounding.Business, isUnitTest:true)); Assert.Equal(testValue.expectedRoundUp, MathUtils.CommercialRoundCH(testValue.number, SwissRounding.RoundUp, isUnitTest:true)); } } }