41 lines
1.1 KiB
C#
41 lines
1.1 KiB
C#
// Copyright (C) 2026 SharpEmu Emulator Project
|
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
using SharpEmu.GUI;
|
|
using Xunit;
|
|
|
|
namespace SharpEmu.Libs.Tests.GUI;
|
|
|
|
public sealed class LibraryLayoutMetricsTests
|
|
{
|
|
[Fact]
|
|
public void Calculate_UsesMaximumCoverSizeForWideWindow()
|
|
{
|
|
var metrics = LibraryLayoutMetrics.Calculate(1920);
|
|
|
|
Assert.Equal(LibraryLayoutMetrics.MaximumCoverSize, metrics.CoverSize);
|
|
Assert.Equal(160, metrics.ItemWidth);
|
|
}
|
|
|
|
[Fact]
|
|
public void Calculate_ShrinksNineTilesToAvailableWidth()
|
|
{
|
|
const double availableWidth = 1436;
|
|
|
|
var metrics = LibraryLayoutMetrics.Calculate(availableWidth);
|
|
var usedWidth = 24 + (9 * (metrics.ItemWidth + 12));
|
|
|
|
Assert.Equal(132.89, metrics.CoverSize, 2);
|
|
Assert.Equal(availableWidth, usedWidth, 6);
|
|
}
|
|
|
|
[Fact]
|
|
public void Calculate_UsesMinimumCoverSizeForNarrowWindow()
|
|
{
|
|
var metrics = LibraryLayoutMetrics.Calculate(980);
|
|
|
|
Assert.Equal(LibraryLayoutMetrics.MinimumCoverSize, metrics.CoverSize);
|
|
Assert.Equal(124, metrics.ItemWidth);
|
|
}
|
|
}
|