Skip to content

Commit 26a2c1e

Browse files
committed
Don't use LangVersion 8.0 for .NET Framework tests
1 parent dcb9f71 commit 26a2c1e

12 files changed

Lines changed: 203 additions & 152 deletions

BCnEncTests.Framework/BCnEncTests.Framework.csproj

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
<PropertyGroup>
44
<TargetFramework>net481</TargetFramework>
5-
<LangVersion>8.0</LangVersion>
65
<IsPackable>false</IsPackable>
76
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
87
</PropertyGroup>

BCnEncTests.Framework/HdrImageTests.cs

Lines changed: 27 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -15,25 +15,27 @@ public class HdrImageTests
1515
[Fact]
1616
public void LoadHdr()
1717
{
18-
using var stream = File.OpenRead("../../../../BCnEncTests/testImages/test_hdr_kiara.hdr");
19-
var hdrImg = HdrImage.Read(stream);
20-
Assert.True(hdrImg.width > 0);
21-
Assert.True(hdrImg.height > 0);
22-
Assert.True(hdrImg.pixels.Length == hdrImg.width * hdrImg.height);
23-
24-
var rgba = new ColorRgba32[hdrImg.pixels.Length];
25-
for (var i = 0; i < hdrImg.pixels.Length; i++)
18+
using (var stream = File.OpenRead("../../../../BCnEncTests/testImages/test_hdr_kiara.hdr"))
2619
{
27-
var p = hdrImg.pixels[i];
28-
rgba[i] = new ColorRgba32(
29-
(byte)(Math.Max(0, Math.Min(1, p.r)) * 255 + 0.5f),
30-
(byte)(Math.Max(0, Math.Min(1, p.g)) * 255 + 0.5f),
31-
(byte)(Math.Max(0, Math.Min(1, p.b)) * 255 + 0.5f),
32-
255);
20+
var hdrImg = HdrImage.Read(stream);
21+
Assert.True(hdrImg.width > 0);
22+
Assert.True(hdrImg.height > 0);
23+
Assert.True(hdrImg.pixels.Length == hdrImg.width * hdrImg.height);
24+
25+
var rgba = new ColorRgba32[hdrImg.pixels.Length];
26+
for (var i = 0; i < hdrImg.pixels.Length; i++)
27+
{
28+
var p = hdrImg.pixels[i];
29+
rgba[i] = new ColorRgba32(
30+
(byte)(Math.Max(0, Math.Min(1, p.r)) * 255 + 0.5f),
31+
(byte)(Math.Max(0, Math.Min(1, p.g)) * 255 + 0.5f),
32+
(byte)(Math.Max(0, Math.Min(1, p.b)) * 255 + 0.5f),
33+
255);
34+
}
35+
var converted = new Memory2D<ColorRgba32>(rgba, hdrImg.height, hdrImg.width);
36+
var reference = ImageLoader.LoadTestImage("../../../../BCnEncTests/testImages/test_hdr_kiara.png");
37+
TestHelper.AssertImagesEqual(reference, converted, CompressionQuality.BestQuality);
3338
}
34-
var converted = new Memory2D<ColorRgba32>(rgba, hdrImg.height, hdrImg.width);
35-
var reference = ImageLoader.LoadTestImage("../../../../BCnEncTests/testImages/test_hdr_kiara.png");
36-
TestHelper.AssertImagesEqual(reference, converted, CompressionQuality.BestQuality);
3739
}
3840

3941
[Fact]
@@ -47,13 +49,15 @@ public async Task DecodeAllMipMapsHdrStreamAsync()
4749
var decoder = new BcDecoder();
4850
var input = HdrLoader.TestHdrKiara;
4951
var ktxWithMips = encoder.EncodeToKtxHdr(new Memory2D<ColorRgbFloat>(input.pixels, input.height, input.width));
50-
using var ms = new MemoryStream();
51-
ktxWithMips.Write(ms);
52-
ms.Position = 0;
52+
using (var ms = new MemoryStream())
53+
{
54+
ktxWithMips.Write(ms);
55+
ms.Position = 0;
5356

54-
var images = await decoder.DecodeAllMipMapsHdr2DAsync(ms);
55-
Assert.Equal((int)ktxWithMips.header.NumberOfMipmapLevels, images.Length);
56-
Assert.True(images.Length > 1);
57+
var images = await decoder.DecodeAllMipMapsHdr2DAsync(ms);
58+
Assert.Equal((int)ktxWithMips.header.NumberOfMipmapLevels, images.Length);
59+
Assert.True(images.Length > 1);
60+
}
5761
}
5862
}
5963
}

BCnEncTests.Framework/Support/ImageLoader.cs

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,10 @@ public static class ImageLoader
3535

3636
internal static Memory2D<ColorRgba32> LoadTestImage(string filename)
3737
{
38-
using var bmp = new Bitmap(filename);
39-
return FromBitmap(bmp);
38+
using (var bmp = new Bitmap(filename))
39+
{
40+
return FromBitmap(bmp);
41+
}
4042
}
4143

4244
internal static unsafe Memory2D<ColorRgba32> FromBitmap(Bitmap bmp)
@@ -72,8 +74,10 @@ public static class DdsLoader
7274

7375
internal static DdsFile LoadDdsFile(string filename)
7476
{
75-
using var fs = File.OpenRead(filename);
76-
return DdsFile.Load(fs);
77+
using (var fs = File.OpenRead(filename))
78+
{
79+
return DdsFile.Load(fs);
80+
}
7781
}
7882
}
7983

@@ -91,8 +95,10 @@ public static class KtxLoader
9195

9296
internal static KtxFile LoadKtxFile(string filename)
9397
{
94-
using var fs = File.OpenRead(filename);
95-
return KtxFile.Load(fs);
98+
using (var fs = File.OpenRead(filename))
99+
{
100+
return KtxFile.Load(fs);
101+
}
96102
}
97103
}
98104
}

BCnEncTests.Framework/Support/TestHelper.cs

Lines changed: 50 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,10 @@ public static void ExecuteDecodingTest(KtxFile file, string outputFile)
5151
Assert.Equal((uint)pixels.Width, file.header.PixelWidth);
5252
Assert.Equal((uint)pixels.Height, file.header.PixelHeight);
5353

54-
using var outFs = File.OpenWrite(outputFile);
55-
SaveAsPng(pixels, outFs);
54+
using (var outFs = File.OpenWrite(outputFile))
55+
{
56+
SaveAsPng(pixels, outFs);
57+
}
5658
}
5759

5860
#region Dds
@@ -70,15 +72,16 @@ public static void ExecuteDdsWritingTest(Memory2D<ColorRgba32>[] images, Compres
7072
encoder.OutputOptions.Format = format;
7173
encoder.OutputOptions.FileFormat = OutputFileFormat.Dds;
7274

73-
using var fs = File.OpenWrite(outputFile);
74-
75-
if (images.Length == 1)
75+
using (var fs = File.OpenWrite(outputFile))
7676
{
77-
encoder.EncodeToStream(images[0], fs);
78-
}
79-
else
80-
{
81-
encoder.EncodeCubeMapToStream(images[0], images[1], images[2], images[3], images[4], images[5], fs);
77+
if (images.Length == 1)
78+
{
79+
encoder.EncodeToStream(images[0], fs);
80+
}
81+
else
82+
{
83+
encoder.EncodeCubeMapToStream(images[0], images[1], images[2], images[3], images[4], images[5], fs);
84+
}
8285
}
8386
}
8487

@@ -102,8 +105,10 @@ public static void ExecuteDdsReadingTest(DdsFile file, DxgiFormat format, string
102105
Assert.Contains(pixels, x => x.a == 0);
103106
}
104107

105-
using var outFs = File.OpenWrite(string.Format(outputFile, i));
106-
SaveAsPng(images[i], outFs);
108+
using (var outFs = File.OpenWrite(string.Format(outputFile, i)))
109+
{
110+
SaveAsPng(images[i], outFs);
111+
}
107112
}
108113
}
109114

@@ -128,26 +133,30 @@ await Assert.ThrowsAnyAsync<OperationCanceledException>(() =>
128133

129134
public static float DecodeKtxCheckPSNR(string filename, Memory2D<ColorRgba32> original)
130135
{
131-
using var fs = File.OpenRead(filename);
132-
var ktx = KtxFile.Load(fs);
133-
var decoder = new BcDecoder()
136+
using (var fs = File.OpenRead(filename))
134137
{
135-
OutputOptions = { Bc4Component = ColorComponent.Luminance }
136-
};
137-
var decoded = decoder.Decode2D(ktx);
138+
var ktx = KtxFile.Load(fs);
139+
var decoder = new BcDecoder()
140+
{
141+
OutputOptions = { Bc4Component = ColorComponent.Luminance }
142+
};
143+
var decoded = decoder.Decode2D(ktx);
138144

139-
return CalculatePSNR(original, decoded);
145+
return CalculatePSNR(original, decoded);
146+
}
140147
}
141148

142149
public static float DecodeKtxCheckRMSEHdr(string filename, HdrImage original)
143150
{
144-
using var fs = File.OpenRead(filename);
145-
var ktx = KtxFile.Load(fs);
146-
var decoder = new BcDecoder();
151+
using (var fs = File.OpenRead(filename))
152+
{
153+
var ktx = KtxFile.Load(fs);
154+
var decoder = new BcDecoder();
147155

148-
var decoded = decoder.DecodeHdr(ktx);
156+
var decoded = decoder.DecodeHdr(ktx);
149157

150-
return ImageQuality.CalculateLogRMSE(original.pixels, decoded);
158+
return ImageQuality.CalculateLogRMSE(original.pixels, decoded);
159+
}
151160
}
152161

153162
public static void ExecuteEncodingTest(Memory2D<ColorRgba32> image, CompressionFormat format, CompressionQuality quality, string filename, ITestOutputHelper output)
@@ -234,25 +243,27 @@ public static unsafe void SaveAsPng(Memory2D<ColorRgba32> image, Stream stream)
234243
{
235244
int width = image.Width;
236245
int height = image.Height;
237-
using var bmp = new Bitmap(width, height, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
238-
var data = bmp.LockBits(new Rectangle(0, 0, width, height),
239-
ImageLockMode.WriteOnly, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
240-
byte* ptr = (byte*)data.Scan0;
241-
var span = image.Span;
242-
for (int y = 0; y < height; y++)
246+
using (var bmp = new Bitmap(width, height, System.Drawing.Imaging.PixelFormat.Format32bppArgb))
243247
{
244-
for (int x = 0; x < width; x++)
248+
var data = bmp.LockBits(new Rectangle(0, 0, width, height),
249+
ImageLockMode.WriteOnly, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
250+
byte* ptr = (byte*)data.Scan0;
251+
var span = image.Span;
252+
for (int y = 0; y < height; y++)
245253
{
246-
var c = span[y, x];
247-
ptr[0] = c.b;
248-
ptr[1] = c.g;
249-
ptr[2] = c.r;
250-
ptr[3] = c.a;
251-
ptr += 4;
254+
for (int x = 0; x < width; x++)
255+
{
256+
var c = span[y, x];
257+
ptr[0] = c.b;
258+
ptr[1] = c.g;
259+
ptr[2] = c.r;
260+
ptr[3] = c.a;
261+
ptr += 4;
262+
}
252263
}
264+
bmp.UnlockBits(data);
265+
bmp.Save(stream, ImageFormat.Png);
253266
}
254-
bmp.UnlockBits(data);
255-
bmp.Save(stream, ImageFormat.Png);
256267
}
257268

258269
public static void SaveAsPng(ColorRgbFloat[] pixels, int width, int height, Stream stream)

BCnEncTests.Shared/Bc6EncoderTests.cs

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -353,8 +353,10 @@ public void EncodeToKtx()
353353

354354
var ktx = encoder.EncodeToKtxHdr(HdrLoader.TestHdrKiara.PixelMemory);
355355

356-
using var fs = File.OpenWrite("encoding_bc6_ktx.ktx");
357-
ktx.Write(fs);
356+
using (var fs = File.OpenWrite("encoding_bc6_ktx.ktx"))
357+
{
358+
ktx.Write(fs);
359+
}
358360
}
359361

360362
[Fact]
@@ -367,8 +369,10 @@ public void EncodeToDds()
367369

368370
var dds = encoder.EncodeToDdsHdr(HdrLoader.TestHdrKiara.PixelMemory);
369371

370-
using var fs = File.OpenWrite("encoding_bc6_dds.dds");
371-
dds.Write(fs);
372+
using (var fs = File.OpenWrite("encoding_bc6_dds.dds"))
373+
{
374+
dds.Write(fs);
375+
}
372376
}
373377

374378
[Fact]

BCnEncTests.Shared/Bc6HDecoderTests.cs

Lines changed: 42 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,15 @@ public void DecodeDds()
3131
Assert.Equal(hdr.pixels.Length, decoded.Length);
3232

3333
hdr.pixels = decoded;
34-
using var sfs = File.OpenWrite("decoding_test_dds_bc6h.hdr");
35-
hdr.Write(sfs);
34+
using (var sfs = File.OpenWrite("decoding_test_dds_bc6h.hdr"))
35+
{
36+
hdr.Write(sfs);
37+
}
3638

37-
using var pngFs = File.OpenWrite("decoding_test_dds_bc6h.png");
38-
TestHelper.SaveAsPng(decoded, width, height, pngFs);
39+
using (var pngFs = File.OpenWrite("decoding_test_dds_bc6h.png"))
40+
{
41+
TestHelper.SaveAsPng(decoded, width, height, pngFs);
42+
}
3943

4044
TestHelper.AssertPixelsEqual(HdrLoader.TestHdrKiara.pixels, decoded, CompressionQuality.Fast, output);
4145
}
@@ -53,11 +57,15 @@ public void DecodeKtx()
5357
Assert.Equal(hdr.pixels.Length, decoded.Length);
5458

5559
hdr.pixels = decoded;
56-
using var sfs = File.OpenWrite("decoding_test_ktx_bc6h.hdr");
57-
hdr.Write(sfs);
60+
using (var sfs = File.OpenWrite("decoding_test_ktx_bc6h.hdr"))
61+
{
62+
hdr.Write(sfs);
63+
}
5864

59-
using var pngFs = File.OpenWrite("decoding_test_ktx_bc6h.png");
60-
TestHelper.SaveAsPng(decoded, width, height, pngFs);
65+
using (var pngFs = File.OpenWrite("decoding_test_ktx_bc6h.png"))
66+
{
67+
TestHelper.SaveAsPng(decoded, width, height, pngFs);
68+
}
6169

6270
TestHelper.AssertPixelsEqual(HdrLoader.TestHdrKiara.pixels, decoded, CompressionQuality.BestQuality, output);
6371
}
@@ -71,28 +79,32 @@ public void AllBlocksDecodesExact()
7179
var decoder = new BcDecoder();
7280
var decoded = decoder.DecodeHdr(HdrLoader.TestHdrKiaraDds);
7381

82+
Stream fs;
7483
#if NETCOREAPP
75-
using var fs = File.OpenRead("../../../testImages/test_hdr_kiara_dds_float16_data.bin");
84+
fs = File.OpenRead("../../../testImages/test_hdr_kiara_dds_float16_data.bin");
7685
#else
77-
using var fs = File.OpenRead("../../../../BCnEncTests/testImages/test_hdr_kiara_dds_float16_data.bin");
86+
fs = File.OpenRead("../../../../BCnEncTests/testImages/test_hdr_kiara_dds_float16_data.bin");
7887
#endif
79-
using var ms = new MemoryStream();
80-
fs.CopyTo(ms);
81-
var length = (int)ms.Position;
82-
83-
var bytes = ms.GetBuffer().AsSpan(0, length);
84-
var halfs = MemoryMarshal.Cast<byte, Half>(bytes);
85-
Assert.Equal(halfs.Length / 4, decoded.Length);
86-
87-
for (var i = 0; i < decoded.Length; i++)
88+
using (fs)
89+
using (var ms = new MemoryStream())
8890
{
89-
float r = halfs[i * 4 + 0];
90-
float g = halfs[i * 4 + 1];
91-
float b = halfs[i * 4 + 2];
92-
93-
Assert.Equal(r, decoded[i].r);
94-
Assert.Equal(g, decoded[i].g);
95-
Assert.Equal(b, decoded[i].b);
91+
fs.CopyTo(ms);
92+
var length = (int)ms.Position;
93+
94+
var bytes = ms.GetBuffer().AsSpan(0, length);
95+
var halfs = MemoryMarshal.Cast<byte, Half>(bytes);
96+
Assert.Equal(halfs.Length / 4, decoded.Length);
97+
98+
for (var i = 0; i < decoded.Length; i++)
99+
{
100+
float r = halfs[i * 4 + 0];
101+
float g = halfs[i * 4 + 1];
102+
float b = halfs[i * 4 + 2];
103+
104+
Assert.Equal(r, decoded[i].r);
105+
Assert.Equal(g, decoded[i].g);
106+
Assert.Equal(b, decoded[i].b);
107+
}
96108
}
97109
}
98110

@@ -152,8 +164,10 @@ public void DecodeErrorBlock()
152164
Assert.Contains(new ColorRgbFloat(1, 0, 1), decoded);
153165

154166
HdrImage image = new HdrImage(new Span2D<ColorRgbFloat>(decoded, height * 4, width * 4));
155-
using var fs = File.OpenWrite("test_decode_bc6h_error.hdr");
156-
image.Write(fs);
167+
using (var fs = File.OpenWrite("test_decode_bc6h_error.hdr"))
168+
{
169+
image.Write(fs);
170+
}
157171
}
158172
}
159173
}

BCnEncTests.Shared/Bc7BlockTests.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,8 +87,10 @@ public void DecodeErrorBlock()
8787
Assert.Contains(new ColorRgba32(255, 0, 255), pixels);
8888

8989
var decoded = new Memory2D<ColorRgba32>(pixels, height * 4, width * 4);
90-
using var fs = File.OpenWrite("test_decode_bc7_error.png");
91-
TestHelper.SaveAsPng(decoded, fs);
90+
using (var fs = File.OpenWrite("test_decode_bc7_error.png"))
91+
{
92+
TestHelper.SaveAsPng(decoded, fs);
93+
}
9294
}
9395

9496
#region Type Packs

0 commit comments

Comments
 (0)