using System.Globalization; using LehrerApp.Desktop.Converters; using Xunit; namespace LehrerApp.Desktop.Tests; public sealed class FractionWidthConverterTests { [Fact] public void Convert_MultipliziertTrackbreiteMitAnteil() { var result = FractionWidthConverter.Instance.Convert( [200d, 0.25d], typeof(double), null, CultureInfo.InvariantCulture); Assert.Equal(50d, result); } [Fact] public void Convert_LiefertNullBreiteBeiUngueltigenWerten() { // Bounds.Width kann vor dem ersten Layout-Pass NaN sein (Element noch nicht gemessen) — // darf nicht zu einer negativen oder undefinierten Breite führen. Assert.Equal(0d, FractionWidthConverter.Instance.Convert( [double.NaN, 0.5d], typeof(double), null, CultureInfo.InvariantCulture)); Assert.Equal(0d, FractionWidthConverter.Instance.Convert( ["not a double", 0.5d], typeof(double), null, CultureInfo.InvariantCulture)); } [Fact] public void Convert_ClamptNegativeErgebnisseAufNull() { var result = FractionWidthConverter.Instance.Convert( [100d, -0.2d], typeof(double), null, CultureInfo.InvariantCulture); Assert.Equal(0d, result); } }