mirror of
https://github.com/wwiinnddyy/LanMountainDesktop.git
synced 2026-06-20 23:54:26 +08:00
feat.融合桌面组件展示优化
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user