| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- using YZWater.Core.Utils;
- namespace YZWater.Core.Tests.Utils;
- public class WinSizeTests
- {
- [Fact]
- public void GetScaleFactor_ReturnsMinOfXAndY()
- {
- // 宽屏:高度为限制因素
- var scale = WinSize.GetScaleFactor(2048, 768);
- Assert.Equal(1.0, scale);
- // 等比放大
- var scale2 = WinSize.GetScaleFactor(1536, 1152);
- Assert.Equal(1.5, scale2, 5);
- }
- [Fact]
- public void GetScaleFactor_SmallScreen_ReturnsReducedScale()
- {
- var scale = WinSize.GetScaleFactor(512, 384);
- Assert.Equal(0.5, scale);
- }
- [Fact]
- public void CalculateSize_ScalesCorrectly()
- {
- var result = WinSize.CalculateSize(100, 1.5);
- Assert.Equal(150, result);
- }
- [Fact]
- public void CalculateFontSize_ClampsToMinimum()
- {
- var result = WinSize.CalculateFontSize(8, 0.5); // 8 * 0.5 = 4, 低于下限 12
- Assert.Equal(12, result);
- }
- [Fact]
- public void CalculateFontSize_ClampsToMaximum()
- {
- var result = WinSize.CalculateFontSize(20, 1.5); // 20 * 1.5 = 30, 超过上限 24
- Assert.Equal(24, result);
- }
- [Fact]
- public void CalculateFontSize_WithinRange_NoClamp()
- {
- var result = WinSize.CalculateFontSize(14, 1.2); // 14 * 1.2 = 16.8
- Assert.Equal(16.8, result);
- }
- [Fact]
- public void CalculateMargin_Uniform_AllSidesEqual()
- {
- var margin = WinSize.CalculateMargin(10, 2.0);
- Assert.Equal(20, margin.Left);
- Assert.Equal(20, margin.Top);
- Assert.Equal(20, margin.Right);
- Assert.Equal(20, margin.Bottom);
- }
- [Fact]
- public void CalculateMargin_Independent_ScalesEachSide()
- {
- var margin = WinSize.CalculateMargin(10, 20, 30, 40, 2.0);
- Assert.Equal(20, margin.Left);
- Assert.Equal(40, margin.Top);
- Assert.Equal(60, margin.Right);
- Assert.Equal(80, margin.Bottom);
- }
- }
|