diff --git a/tests/SharpEmu.Libs.Tests/Gpu/Images/MipStatisticsTests.cs b/tests/SharpEmu.Libs.Tests/Gpu/Images/MipStatisticsTests.cs index 4edc1da..51bdbed 100644 --- a/tests/SharpEmu.Libs.Tests/Gpu/Images/MipStatisticsTests.cs +++ b/tests/SharpEmu.Libs.Tests/Gpu/Images/MipStatisticsTests.cs @@ -114,6 +114,31 @@ public sealed class MipStatisticsTests Assert.All(report, static value => Assert.Equal(0, value)); } + [Fact] + public void WrittenReport_PointsAFullReportAtItsCounters() + { + var statistics = new MipStatistics(); + statistics.NoteSampled(Texture(slot: 3)); + var report = new byte[MipStatistics.ReportBytes]; + + statistics.WriteReport(report); + + Assert.Equal(MipStatistics.FirstCounterOffset, BinaryPrimitives.ReadUInt32LittleEndian(report)); + Assert.Equal((0x10000u, 3u, 0x10000u, 0u), Counter(report, 3)); + } + + [Fact] + public void WrittenReport_MarksAShortBufferValidWithoutCounters() + { + var statistics = new MipStatistics(); + var report = new byte[16]; + + statistics.WriteReport(report); + + Assert.Equal(MipStatistics.ReportWithoutCounters, BinaryPrimitives.ReadUInt32LittleEndian(report)); + Assert.All(report[sizeof(uint)..], value => Assert.Equal(0, value)); + } + [Fact] public void ImageField_CarriesTheCounterBaseLevelAndMinimumLod() {