feat.融合桌面组件展示优化

This commit is contained in:
lincube
2026-06-07 00:40:48 +08:00
parent 8df0271032
commit 11b8216e5b
20 changed files with 733 additions and 129 deletions

View File

@@ -0,0 +1,66 @@
using LanMountainDesktop.Views;
using Xunit;
namespace LanMountainDesktop.Tests;
public sealed class FusedDesktopLibraryPreviewLayoutTests
{
[Fact]
public void Calculate_PreservesLandscapeComponentRatio()
{
var metrics = FusedDesktopLibraryPreviewLayout.Calculate(
widthCells: 4,
heightCells: 2,
stageWidth: 520,
stageHeight: 320);
Assert.Equal(4, metrics.WidthCells);
Assert.Equal(2, metrics.HeightCells);
Assert.True(metrics.Width > metrics.Height);
Assert.Equal(2d, metrics.Width / metrics.Height, precision: 3);
}
[Fact]
public void Calculate_PreservesPortraitComponentRatio()
{
var metrics = FusedDesktopLibraryPreviewLayout.Calculate(
widthCells: 2,
heightCells: 4,
stageWidth: 520,
stageHeight: 320);
Assert.Equal(2, metrics.WidthCells);
Assert.Equal(4, metrics.HeightCells);
Assert.True(metrics.Height > metrics.Width);
Assert.Equal(0.5d, metrics.Width / metrics.Height, precision: 3);
}
[Fact]
public void Calculate_FitsPreviewInsideStageInsets()
{
var metrics = FusedDesktopLibraryPreviewLayout.Calculate(
widthCells: 4,
heightCells: 4,
stageWidth: 420,
stageHeight: 260);
Assert.Equal(metrics.Width, metrics.Height, precision: 3);
Assert.True(metrics.Width <= 420);
Assert.True(metrics.Height <= 260);
Assert.True(metrics.CellSize > 0);
}
[Fact]
public void Calculate_UsesFallbackStageWhenBoundsAreNotMeasured()
{
var metrics = FusedDesktopLibraryPreviewLayout.Calculate(
widthCells: 4,
heightCells: 2,
stageWidth: 0,
stageHeight: 0);
Assert.True(metrics.Width > 0);
Assert.True(metrics.Height > 0);
Assert.Equal(2d, metrics.Width / metrics.Height, precision: 3);
}
}