using System.Globalization; using Shouldly; namespace Schaad.Accounting.Tests; public class FormattingTestShould { [Theory] [InlineData(0, "0.00")] [InlineData(1.5, "1.50")] [InlineData(-1.5, "-1.50")] [InlineData(1234.5, "1'234.50")] [InlineData(1234567.89, "1'234'567.89")] [InlineData(-1234567.89, "-1'234'567.89")] public void FormatDecimalWithSwissThousandsSeparatorWhenCalled(decimal value, string expected) { value.ToFormattedString().ShouldBe(expected); } [Fact] public void RoundToTwoDecimalsWhenValueHasMorePrecision() { 1.234m.ToFormattedString().ShouldBe("1.23"); 1.235m.ToFormattedString().ShouldBe("1.24"); } [Fact] public void IgnoreAmbientCultureWhenFormatting() { var previous = CultureInfo.CurrentCulture; try { CultureInfo.CurrentCulture = CultureInfo.InvariantCulture; 1234.5m.ToFormattedString().ShouldBe("1'234.50"); } finally { CultureInfo.CurrentCulture = previous; } } }