Skip to content

Commit b7804b4

Browse files
committed
Fixed some tests
1 parent 1764764 commit b7804b4

7 files changed

Lines changed: 32 additions & 23 deletions

File tree

BCnEncTests/Api/ApiTests.cs

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ private static void AssertNonCube(CompressionFormat format, BCnTextureData outpu
6969
}
7070

7171
[Theory]
72-
[InlineData(true, "rgba_1", CompressionFormat.Bc1)]
72+
[InlineData(true, "blocks", CompressionFormat.Bc1)]
7373
[InlineData(true, "rg_1", CompressionFormat.Bc5)]
7474
[InlineData(false, "raw_r8g8b8_unorm", CompressionFormat.Bc1)]
7575
[InlineData(false, "bc1_unorm", CompressionFormat.Bc7)]
@@ -96,7 +96,7 @@ public void TestEncode(bool raw, string name, CompressionFormat format)
9696
}
9797

9898
[Theory]
99-
[InlineData(true, "rgba_1", CompressionFormat.Bc1)]
99+
[InlineData(true, "blocks", CompressionFormat.Bc1)]
100100
[InlineData(true, "rg_1", CompressionFormat.Bc5)]
101101
[InlineData(false, "raw_r8g8b8_unorm", CompressionFormat.Bc1)]
102102
[InlineData(false, "bc1_unorm", CompressionFormat.Bc7)]
@@ -122,16 +122,14 @@ public void TestEncodeBytes(bool raw, string name, CompressionFormat format)
122122
}
123123

124124
[Theory]
125-
[InlineData("rgba_1", CompressionFormat.Bc1)]
126-
[InlineData("rgba_1", CompressionFormat.RgbaFloat)]
125+
[InlineData("blocks", CompressionFormat.Bc1)]
126+
[InlineData("blocks", CompressionFormat.RgbaFloat)]
127127
public void TestEncodeLdr(string name, CompressionFormat format)
128128
{
129129
var encoder = MakeEncoder(format);
130130

131131
var inputData = LoadTestFile(true, name);
132132

133-
Assert.Equal(CompressionFormat.Rgba32, inputData.Format);
134-
135133
// Test
136134
var outputData = encoder.Encode(inputData.First.AsMemory2D<ColorRgba32>());
137135

@@ -160,7 +158,7 @@ public void TestEncodeHdr(string name, CompressionFormat format)
160158
}
161159

162160
[Theory]
163-
[InlineData(true, "rgba_1", CompressionFormat.Bc1)]
161+
[InlineData(true, "blocks", CompressionFormat.Bc1)]
164162
[InlineData(true, "rg_1", CompressionFormat.Bc5)]
165163
[InlineData(false, "raw_r8g8b8_unorm", CompressionFormat.Bc1)]
166164
[InlineData(false, "hdr_1_rgbe", CompressionFormat.Rgb24)]
@@ -194,7 +192,7 @@ public void TestEncodeToRawBytes(bool raw, string name, CompressionFormat format
194192
}
195193

196194
[Theory]
197-
[InlineData(true, "rgba_1", CompressionFormat.Bc1)]
195+
[InlineData(true, "blocks", CompressionFormat.Bc1)]
198196
[InlineData(true, "rg_1", CompressionFormat.Bc5)]
199197
[InlineData(false, "raw_r8g8b8_unorm", CompressionFormat.Bc1)]
200198
[InlineData(false, "hdr_1_rgbe", CompressionFormat.Rgb24)]
@@ -227,8 +225,8 @@ public void TestEncodeBytesToRawBytes(bool raw, string name, CompressionFormat f
227225
}
228226

229227
// [Theory]
230-
// [InlineData("rgba_1", CompressionFormat.Bc1)]
231-
// [InlineData("rgba_1", CompressionFormat.RgbaFloat)]
228+
// [InlineData("blocks", CompressionFormat.Bc1)]
229+
// [InlineData("blocks", CompressionFormat.RgbaFloat)]
232230
// public void TestEncodeToRawBytesLdr(string name, CompressionFormat format)
233231
// {
234232
// var encoder = MakeEncoder(format);

BCnEncTests/Api/CancellationTests.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,11 @@ private static BcDecoder MakeDecoder(bool parallel)
3030
}
3131

3232
[Theory]
33-
[InlineData(true, "rgba_1", CompressionFormat.Bc1)]
33+
[InlineData(true, "blocks", CompressionFormat.Bc1)]
3434
[InlineData(true, "hdr_1_rgbe", CompressionFormat.Rgb24)]
3535
[InlineData(true, "hdr_1_rgbe", CompressionFormat.RgbaHalf)]
3636
[InlineData(true, "hdr_1_rgbe", CompressionFormat.Bc6U)]
37-
[InlineData(false, "rgba_1", CompressionFormat.Bc1)]
37+
[InlineData(false, "blocks", CompressionFormat.Bc1)]
3838
[InlineData(false, "hdr_1_rgbe", CompressionFormat.Rgb24)]
3939
[InlineData(false, "hdr_1_rgbe", CompressionFormat.RgbaHalf)]
4040
[InlineData(false, "hdr_1_rgbe", CompressionFormat.Bc6U)]
@@ -55,11 +55,11 @@ public async Task TestEncodeToRawBytesCancel(bool parallel, string name, Compres
5555
}
5656

5757
[Theory]
58-
[InlineData(true, "rgba_1", CompressionFormat.Bc1)]
58+
[InlineData(true, "blocks", CompressionFormat.Bc1)]
5959
[InlineData(true, "hdr_1_rgbe", CompressionFormat.Rgb24)]
6060
[InlineData(true, "hdr_1_rgbe", CompressionFormat.RgbaHalf)]
6161
[InlineData(true, "hdr_1_rgbe", CompressionFormat.Bc6U)]
62-
[InlineData(false, "rgba_1", CompressionFormat.Bc1)]
62+
[InlineData(false, "blocks", CompressionFormat.Bc1)]
6363
[InlineData(false, "hdr_1_rgbe", CompressionFormat.Rgb24)]
6464
[InlineData(false, "hdr_1_rgbe", CompressionFormat.RgbaHalf)]
6565
[InlineData(false, "hdr_1_rgbe", CompressionFormat.Bc6U)]
@@ -152,4 +152,4 @@ public async Task TestDecodeCancel(bool parallel, string name)
152152
cancelSource.Cancel();
153153
await task;
154154
}
155-
}
155+
}

BCnEncTests/Api/EncoderOptionsTests.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public class EncoderOptionsTests
1616
[InlineData(5)]
1717
public void MaxMipMaps(int requestedMipMaps)
1818
{
19-
var testImage = ImageLoader.TestRawImages["rgba_1"];
19+
var testImage = ImageLoader.TestRawImages["blocks"];
2020
var encoder = new BcEncoder()
2121
{
2222
OutputOptions =
@@ -49,7 +49,7 @@ public void MaxMipMaps(int requestedMipMaps)
4949
[InlineData(false)]
5050
public void GenerateMipMaps(bool generateMipMaps)
5151
{
52-
var testImage = ImageLoader.TestRawImages["rgba_1"];
52+
var testImage = ImageLoader.TestRawImages["blocks"];
5353
int requestedMipMaps = generateMipMaps ?
5454
MipMapper.CalculateMipChainLength(testImage.Width, testImage.Height, 1, 0) :
5555
1;
@@ -78,4 +78,4 @@ public void GenerateMipMaps(bool generateMipMaps)
7878
Assert.Equal(requestedMipMaps, (int)dds.header.dwMipMapCount);
7979
Assert.Equal(requestedMipMaps, dds.ArrayElements[0].MipMaps.Length);
8080
}
81-
}
81+
}

BCnEncTests/Support/ImageLoader.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ private static Dictionary<string, Image<RgbaVector>> FindRawTestImages()
130130
public static RadianceFile TestHdr1 => TestEncodedImages["hdr_1_rgbe"].Item1 as RadianceFile;
131131
public static RadianceFile TestHdr2 => TestEncodedImages["hdr_2_rgbe"].Item1 as RadianceFile;
132132

133-
public static Image<RgbaVector> TestLdrRgba => TestRawImages["rgba_1"];
133+
public static Image<RgbaVector> TestLdrRgba => TestRawImages["blocks"];
134134

135135
internal static Image<Rgba32> LoadTestImage(string filename)
136136
{

BCnEncTests/Support/StructuralSimilarity.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -656,6 +656,7 @@ internal static StructuralSimilarityResult MultiScaleStructuralSimilarity_NonSim
656656
Image<RgbaVector> original,
657657
Image<RgbaVector> other,
658658
string channelMask,
659+
float[] channelWeights,
659660
int scales)
660661
{
661662
if (original.Width != other.Width || original.Height != other.Height)
@@ -668,6 +669,11 @@ internal static StructuralSimilarityResult MultiScaleStructuralSimilarity_NonSim
668669
throw new ArgumentException("Channel mask must contain at least one channel", nameof(channelMask));
669670
}
670671

672+
if (channelWeights != null && channelWeights.Length != 4)
673+
{
674+
throw new ArgumentException("Channel weights must be an array of length 4", nameof(channelWeights));
675+
}
676+
671677
// Validate scales based on image dimensions
672678
int minDimension = Math.Min(original.Width, original.Height);
673679
int maxScales = (int)Math.Log2(minDimension) - 3; // Ensure window size is at least 16x16
@@ -717,6 +723,11 @@ internal static StructuralSimilarityResult MultiScaleStructuralSimilarity_NonSim
717723
0.10f
718724
];
719725

726+
if (channelWeights != null)
727+
{
728+
standardChannelWeights = channelWeights;
729+
}
730+
720731
// Define MS-SSIM weights (from Wang et al. paper)
721732
float[] scaleWeights = new float[scales];
722733

BCnEncTests/Support/StructuralSimilarityTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ public void MultiScaleStructuralSimilarity_SIMD_IsEqualToNonSIMD()
153153
float[] channelWeights = new float[] { 0.2126f, 0.7152f, 0.0722f, 1f };
154154

155155
// Act
156-
StructuralSimilarityResult similarity = StructuralSimilarity.MultiScaleStructuralSimilarity_NonSimd(original, modified, channelMask, 5);
156+
StructuralSimilarityResult similarity = StructuralSimilarity.MultiScaleStructuralSimilarity_NonSimd(original, modified, channelMask, channelWeights, 5);
157157
StructuralSimilarityResult similaritySimd = StructuralSimilarity.MultiScaleStructuralSimilarity_Simd(original, modified, channelMask, channelWeights, 5);
158158

159159
// Assert

BCnEncTests/testImages/NOTICE

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ diffuse_1 by Karina Vorozheeva on Unsplash
77
diffuse_2 by Borna Bevanda on Unsplash
88
diffuse_3 CC0, a mix of purposefully difficult patterns to encode correctly
99
diffuse_4 & height_1 & normal_1 CC0, from https://publicdomaintextures.com/
10-
diffuse_5 & diffuse_6 CC0, from https://texture.ninja/
11-
rg_1 & rgba_1 CC0, from https://github.com/sevmeyer/ktxtest
10+
diffuse_5 & diffuse_6 CC0, from https://texture.ninja/
11+
rg_1 & blocks CC0, from https://github.com/sevmeyer/ktxtest
1212
hdr_1 CC0, from https://polyhaven.com/
1313
cubemap_1, CC0, Made with Paint.NET
1414
cubemap_2, CC-BY 3.0, Work of Emil Persson, aka Humus. http://www.humus.name
@@ -25,4 +25,4 @@ rgb_hard.png - Collection of images from different sources
2525
Unsplash license:
2626
https://unsplash.com/license
2727

28-
Unsplash grants you an irrevocable, nonexclusive, worldwide copyright license to download, copy, modify, distribute, perform, and use photos from Unsplash for free, including for commercial purposes, without permission from or attributing the photographer or Unsplash. This license does not include the right to compile photos from Unsplash to replicate a similar or competing service.
28+
Unsplash grants you an irrevocable, nonexclusive, worldwide copyright license to download, copy, modify, distribute, perform, and use photos from Unsplash for free, including for commercial purposes, without permission from or attributing the photographer or Unsplash. This license does not include the right to compile photos from Unsplash to replicate a similar or competing service.

0 commit comments

Comments
 (0)