mirror of
https://github.com/wwiinnddyy/LanMountainDesktop.git
synced 2026-08-18 15:33:33 +08:00
changed.项目结构优化
This commit is contained in:
@@ -0,0 +1,81 @@
|
||||
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);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Calculate_RespectsMinCellSize()
|
||||
{
|
||||
// 测试非常小的 stage 尺寸,确保 cellSize 不会小于 MinCellSize
|
||||
var metrics = FusedDesktopLibraryPreviewLayout.Calculate(
|
||||
widthCells: 10,
|
||||
heightCells: 10,
|
||||
stageWidth: 50,
|
||||
stageHeight: 50);
|
||||
|
||||
Assert.Equal(32d, metrics.CellSize, precision: 3);
|
||||
Assert.Equal(320d, metrics.Width, precision: 3);
|
||||
Assert.Equal(320d, metrics.Height, precision: 3);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user