diff --git a/.gitattributes b/.gitattributes
index 031420e53..e594c0e9b 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -110,6 +110,7 @@
###############################################################################
# Handle image files by git lfs
###############################################################################
+*.pdf filter=lfs diff=lfs merge=lfs -text
*.jpg filter=lfs diff=lfs merge=lfs -text
*.jpeg filter=lfs diff=lfs merge=lfs -text
*.bmp filter=lfs diff=lfs merge=lfs -text
@@ -137,6 +138,12 @@
*.heic filter=lfs diff=lfs merge=lfs -text
*.hif filter=lfs diff=lfs merge=lfs -text
*.avif filter=lfs diff=lfs merge=lfs -text
+*.hvc1 filter=lfs diff=lfs merge=lfs -text
+*.hvcc filter=lfs diff=lfs merge=lfs -text
+*.ivf filter=lfs diff=lfs merge=lfs -text
+*.y4m filter=lfs diff=lfs merge=lfs -text
+*.yuv filter=lfs diff=lfs merge=lfs -text
+*.bit filter=lfs diff=lfs merge=lfs -text
###############################################################################
# Handle ICC files by git lfs
###############################################################################
diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml
index 4406a2859..c28eb8232 100644
--- a/.github/workflows/build-and-test.yml
+++ b/.github/workflows/build-and-test.yml
@@ -55,7 +55,7 @@ jobs:
- name: Git Pull LFS
shell: bash
run: git lfs pull
-
+
Build:
needs: WarmLFS
strategy:
@@ -64,42 +64,42 @@ jobs:
- ${{ contains(github.event.pull_request.labels.*.name, 'arch:arm32') || contains(github.event.pull_request.labels.*.name, 'arch:arm64') }}
options:
- os: ubuntu-latest
- framework: net10.0
- sdk: 10.0.x
+ framework: net11.0
+ sdk: 11.0.x
sdk-preview: true
runtime: -x64
codecov: false
- os: macos-latest
- framework: net10.0
- sdk: 10.0.x
+ framework: net11.0
+ sdk: 11.0.x
sdk-preview: true
runtime: -x64
codecov: false
- os: windows-latest
- framework: net10.0
- sdk: 10.0.x
+ framework: net11.0
+ sdk: 11.0.x
sdk-preview: true
runtime: -x64
codecov: false
- os: buildjet-4vcpu-ubuntu-2204-arm
- framework: net10.0
- sdk: 10.0.x
+ framework: net11.0
+ sdk: 11.0.x
sdk-preview: true
runtime: -x64
codecov: false
- os: ubuntu-latest
- framework: net8.0
- sdk: 8.0.x
+ framework: net10.0
+ sdk: 10.0.x
runtime: -x64
codecov: false
- os: macos-latest
- framework: net8.0
- sdk: 8.0.x
+ framework: net10.0
+ sdk: 10.0.x
runtime: -x64
codecov: false
- os: windows-latest
- framework: net8.0
- sdk: 8.0.x
+ framework: net10.0
+ sdk: 10.0.x
runtime: -x64
codecov: true
exclude:
@@ -154,14 +154,14 @@ jobs:
uses: actions/setup-dotnet@v6
with:
dotnet-version: |
- 8.0.x
+ 10.0.x
- name: DotNet Setup Preview
if: ${{ matrix.options.sdk-preview == true }}
uses: actions/setup-dotnet@v6
with:
dotnet-version: |
- 10.0.x
+ 11.0.x
- name: DotNet Build
if: ${{ matrix.options.sdk-preview != true }}
diff --git a/SixLabors.Fonts.sln b/SixLabors.Fonts.sln
deleted file mode 100644
index 41d80f947..000000000
--- a/SixLabors.Fonts.sln
+++ /dev/null
@@ -1,110 +0,0 @@
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 18
-VisualStudioVersion = 18.0.11012.119
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_root", "_root", "{C317F1B1-D75E-4C6D-83EB-80367343E0D7}"
- ProjectSection(SolutionItems) = preProject
- standards\.editorconfig = standards\.editorconfig
- ci-build.ps1 = ci-build.ps1
- ci-pack.ps1 = ci-pack.ps1
- ci-test.ps1 = ci-test.ps1
- Directory.Build.props = Directory.Build.props
- Directory.Build.targets = Directory.Build.targets
- NuGet.config = NuGet.config
- README.md = README.md
- EndProjectSection
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{815C0625-CD3D-440F-9F80-2D83856AB7AE}"
- ProjectSection(SolutionItems) = preProject
- src\Directory.Build.props = src\Directory.Build.props
- src\Directory.Build.targets = src\Directory.Build.targets
- src\Fonts.ruleset = src\Fonts.ruleset
- EndProjectSection
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{56801022-D71A-4FBE-BC5B-CBA08E2284EC}"
- ProjectSection(SolutionItems) = preProject
- tests\Directory.Build.props = tests\Directory.Build.props
- tests\Directory.Build.targets = tests\Directory.Build.targets
- EndProjectSection
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SixLabors.Fonts", "src\SixLabors.Fonts\SixLabors.Fonts.csproj", "{09E744EC-4852-4FC7-BE78-C1B399F17967}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SixLabors.Fonts.Tests", "tests\SixLabors.Fonts.Tests\SixLabors.Fonts.Tests.csproj", "{F836E8E6-B4D9-4208-8346-140C74678B91}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".github", ".github", "{7CDD4908-7CCD-4945-860C-D2F1732D3AE6}"
- ProjectSection(SolutionItems) = preProject
- .github\CONTRIBUTING.md = .github\CONTRIBUTING.md
- .github\FUNDING.yml = .github\FUNDING.yml
- .github\PULL_REQUEST_TEMPLATE.md = .github\PULL_REQUEST_TEMPLATE.md
- EndProjectSection
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ISSUE_TEMPLATE", "ISSUE_TEMPLATE", "{EC0F1812-C6AF-48D8-882B-5637730D2DB1}"
- ProjectSection(SolutionItems) = preProject
- .github\ISSUE_TEMPLATE\config.yml = .github\ISSUE_TEMPLATE\config.yml
- .github\ISSUE_TEMPLATE\oss-bug-report.yml = .github\ISSUE_TEMPLATE\oss-bug-report.yml
- EndProjectSection
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "workflows", "workflows", "{CFCC940C-DEA3-42CC-9626-0B7D09289FF4}"
- ProjectSection(SolutionItems) = preProject
- .github\workflows\build-and-test.yml = .github\workflows\build-and-test.yml
- EndProjectSection
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tools", "tools", "{249327CF-1415-428B-8EEA-8C7705B1DE8F}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UnicodeTrieGenerator", "src\UnicodeTrieGenerator\UnicodeTrieGenerator.csproj", "{ABB6E111-672F-4846-88D6-C49C6CD01606}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "UnicodeTestData", "UnicodeTestData", "{654DD381-B93D-4459-B669-296F5D9172ED}"
- ProjectSection(SolutionItems) = preProject
- tests\UnicodeTestData\BidiCharacterTest.txt = tests\UnicodeTestData\BidiCharacterTest.txt
- tests\UnicodeTestData\BidiTest.txt = tests\UnicodeTestData\BidiTest.txt
- tests\UnicodeTestData\GraphemeBreakTest.txt = tests\UnicodeTestData\GraphemeBreakTest.txt
- tests\UnicodeTestData\LineBreakTest.txt = tests\UnicodeTestData\LineBreakTest.txt
- tests\UnicodeTestData\README.md = tests\UnicodeTestData\README.md
- EndProjectSection
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SixLabors.Fonts.Benchmarks", "tests\SixLabors.Fonts.Benchmarks\SixLabors.Fonts.Benchmarks\SixLabors.Fonts.Benchmarks.csproj", "{FB8FDC5F-7FEB-4132-9133-C25E05C0B3D9}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {09E744EC-4852-4FC7-BE78-C1B399F17967}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {09E744EC-4852-4FC7-BE78-C1B399F17967}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {09E744EC-4852-4FC7-BE78-C1B399F17967}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {09E744EC-4852-4FC7-BE78-C1B399F17967}.Release|Any CPU.Build.0 = Release|Any CPU
- {F836E8E6-B4D9-4208-8346-140C74678B91}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F836E8E6-B4D9-4208-8346-140C74678B91}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F836E8E6-B4D9-4208-8346-140C74678B91}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F836E8E6-B4D9-4208-8346-140C74678B91}.Release|Any CPU.Build.0 = Release|Any CPU
- {ABB6E111-672F-4846-88D6-C49C6CD01606}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {ABB6E111-672F-4846-88D6-C49C6CD01606}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {ABB6E111-672F-4846-88D6-C49C6CD01606}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {ABB6E111-672F-4846-88D6-C49C6CD01606}.Release|Any CPU.Build.0 = Release|Any CPU
- {FB8FDC5F-7FEB-4132-9133-C25E05C0B3D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {FB8FDC5F-7FEB-4132-9133-C25E05C0B3D9}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {FB8FDC5F-7FEB-4132-9133-C25E05C0B3D9}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {FB8FDC5F-7FEB-4132-9133-C25E05C0B3D9}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(NestedProjects) = preSolution
- {09E744EC-4852-4FC7-BE78-C1B399F17967} = {815C0625-CD3D-440F-9F80-2D83856AB7AE}
- {F836E8E6-B4D9-4208-8346-140C74678B91} = {56801022-D71A-4FBE-BC5B-CBA08E2284EC}
- {7CDD4908-7CCD-4945-860C-D2F1732D3AE6} = {C317F1B1-D75E-4C6D-83EB-80367343E0D7}
- {EC0F1812-C6AF-48D8-882B-5637730D2DB1} = {7CDD4908-7CCD-4945-860C-D2F1732D3AE6}
- {CFCC940C-DEA3-42CC-9626-0B7D09289FF4} = {7CDD4908-7CCD-4945-860C-D2F1732D3AE6}
- {ABB6E111-672F-4846-88D6-C49C6CD01606} = {249327CF-1415-428B-8EEA-8C7705B1DE8F}
- {654DD381-B93D-4459-B669-296F5D9172ED} = {56801022-D71A-4FBE-BC5B-CBA08E2284EC}
- {FB8FDC5F-7FEB-4132-9133-C25E05C0B3D9} = {56801022-D71A-4FBE-BC5B-CBA08E2284EC}
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {38F4B47F-4F74-40F5-8707-C0EF1D0BDF92}
- EndGlobalSection
- GlobalSection(SharedMSBuildProjectFiles) = preSolution
- shared-infrastructure\src\SharedInfrastructure\SharedInfrastructure.projitems*{09e744ec-4852-4fc7-be78-c1b399f17967}*SharedItemsImports = 5
- shared-infrastructure\src\SharedInfrastructure\SharedInfrastructure.projitems*{abb6e111-672f-4846-88d6-c49c6cd01606}*SharedItemsImports = 5
- EndGlobalSection
-EndGlobal
diff --git a/SixLabors.Fonts.slnx b/SixLabors.Fonts.slnx
new file mode 100644
index 000000000..bf76ea62e
--- /dev/null
+++ b/SixLabors.Fonts.slnx
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/global.json b/global.json
new file mode 100644
index 000000000..8ff67c2a0
--- /dev/null
+++ b/global.json
@@ -0,0 +1,18 @@
+// Pins the .NET SDK to major version 10 or later for all SixLabors repositories.
+// The build copies this file to consuming repositories together with .editorconfig and
+// the other shared config files (see msbuild/targets/SixLabors.Src.targets).
+{
+ "sdk": {
+ // The floor, not an exact build: resolution never selects an SDK below major 10.
+ "version": "10.0.0",
+
+ // Select the newest installed SDK at or above the floor. This spans feature bands,
+ // minor versions, and major versions, so a machine with only stable 10.0.x SDKs
+ // resolves the newest of those, and a machine with a newer SDK resolves that instead.
+ "rollForward": "latestMajor",
+
+ // Let the CLI and Visual Studio select preview SDKs when one is installed.
+ // Machines and CI lanes without a preview SDK are unaffected.
+ "allowPrerelease": true
+ }
+}
diff --git a/shared-infrastructure b/shared-infrastructure
index 20f15a2d4..a835a9d74 160000
--- a/shared-infrastructure
+++ b/shared-infrastructure
@@ -1 +1 @@
-Subproject commit 20f15a2d47bba9d8375b5fd34fac283336ec9a5e
+Subproject commit a835a9d74e82b2d32b580a7902eb2699ebc47098
diff --git a/src/SixLabors.Fonts/SixLabors.Fonts.csproj b/src/SixLabors.Fonts/SixLabors.Fonts.csproj
index c71e6b255..f6eb108e0 100644
--- a/src/SixLabors.Fonts/SixLabors.Fonts.csproj
+++ b/src/SixLabors.Fonts/SixLabors.Fonts.csproj
@@ -32,13 +32,13 @@
- net8.0;net10.0
+ net10.0;net11.0
true
- net8.0
+ net10.0
true
diff --git a/src/SixLabors.Fonts/Tables/AdvancedTypographic/Variations/GlyphVariationProcessor.cs b/src/SixLabors.Fonts/Tables/AdvancedTypographic/Variations/GlyphVariationProcessor.cs
index 229cf30e8..5e976553e 100644
--- a/src/SixLabors.Fonts/Tables/AdvancedTypographic/Variations/GlyphVariationProcessor.cs
+++ b/src/SixLabors.Fonts/Tables/AdvancedTypographic/Variations/GlyphVariationProcessor.cs
@@ -989,7 +989,7 @@ private static void InterpolateMissingDeltas(
IReadOnlyList endPoints,
Span adjustX,
Span adjustY,
- Span hasDelta)
+ ReadOnlySpan hasDelta)
{
if (points.Count == 0 || endPoints.Count == 0)
{
diff --git a/src/SixLabors.Fonts/Tables/Cff/CffBoundsFinder.cs b/src/SixLabors.Fonts/Tables/Cff/CffBoundsFinder.cs
index 9f6ef9d63..a4f7ce025 100644
--- a/src/SixLabors.Fonts/Tables/Cff/CffBoundsFinder.cs
+++ b/src/SixLabors.Fonts/Tables/Cff/CffBoundsFinder.cs
@@ -238,11 +238,21 @@ private void UpdateMinMax(float x0, float y0)
///
/// Gets the computed bounding box from all tracked path coordinates.
///
- /// The representing the glyph bounding box.
+ ///
+ /// The representing the glyph bounding box, or
+ /// when the charstring never emitted a path operation (e.g. a space or other invisible glyph).
+ ///
public Bounds GetBounds()
- => new(
+ {
+ if (this.firstEval)
+ {
+ return Bounds.Empty;
+ }
+
+ return new Bounds(
(short)Math.Floor(this.minX),
(short)Math.Floor(this.minY),
(short)Math.Ceiling(this.maxX),
(short)Math.Ceiling(this.maxY));
+ }
}
diff --git a/src/UnicodeTrieGenerator/Generator.cs b/src/UnicodeTrieGenerator/Generator.cs
index 7b2c15605..839260b4b 100644
--- a/src/UnicodeTrieGenerator/Generator.cs
+++ b/src/UnicodeTrieGenerator/Generator.cs
@@ -560,7 +560,7 @@ private static readonly Dictionary VerticalOrie
{ "Tr", VerticalOrientationType.TransformRotate }
};
- private const string SixLaborsSolutionFileName = "SixLabors.Fonts.sln";
+ private const string SixLaborsSolutionFileName = "SixLabors.Fonts.slnx";
private const string InputRulesRelativePath = @"src\UnicodeTrieGenerator\Rules";
private const string OutputResourcesRelativePath = @"src\SixLabors.Fonts\Unicode\Resources";
diff --git a/src/UnicodeTrieGenerator/UnicodeTrieGenerator.csproj b/src/UnicodeTrieGenerator/UnicodeTrieGenerator.csproj
index aa356ad10..d42abd2ae 100644
--- a/src/UnicodeTrieGenerator/UnicodeTrieGenerator.csproj
+++ b/src/UnicodeTrieGenerator/UnicodeTrieGenerator.csproj
@@ -10,12 +10,12 @@
- net8.0;net10.0
+ net10.0;net11.0
- net8.0
+ net10.0
diff --git a/tests/SixLabors.Fonts.Benchmarks/SixLabors.Fonts.Benchmarks/MeasureShapedRunBenchmark.cs b/tests/SixLabors.Fonts.Benchmarks/SixLabors.Fonts.Benchmarks/MeasureShapedRunBenchmark.cs
index 6da21ddcc..86edb6ca7 100644
--- a/tests/SixLabors.Fonts.Benchmarks/SixLabors.Fonts.Benchmarks/MeasureShapedRunBenchmark.cs
+++ b/tests/SixLabors.Fonts.Benchmarks/SixLabors.Fonts.Benchmarks/MeasureShapedRunBenchmark.cs
@@ -216,7 +216,7 @@ private void PrepareSkiaBuffer()
private static string GetRepositoryPath(string relativePath)
{
DirectoryInfo? directory = new(AppContext.BaseDirectory);
- while (directory != null && !File.Exists(Path.Combine(directory.FullName, "SixLabors.Fonts.sln")))
+ while (directory != null && !File.Exists(Path.Combine(directory.FullName, "SixLabors.Fonts.slnx")))
{
directory = directory.Parent;
}
diff --git a/tests/SixLabors.Fonts.Benchmarks/SixLabors.Fonts.Benchmarks/ShapeTextBenchmark.cs b/tests/SixLabors.Fonts.Benchmarks/SixLabors.Fonts.Benchmarks/ShapeTextBenchmark.cs
index e2afe52f8..cd56c174f 100644
--- a/tests/SixLabors.Fonts.Benchmarks/SixLabors.Fonts.Benchmarks/ShapeTextBenchmark.cs
+++ b/tests/SixLabors.Fonts.Benchmarks/SixLabors.Fonts.Benchmarks/ShapeTextBenchmark.cs
@@ -256,7 +256,7 @@ public void Dispose()
private static string GetRepositoryPath(string relativePath)
{
DirectoryInfo? directory = new(AppContext.BaseDirectory);
- while (directory != null && !File.Exists(Path.Combine(directory.FullName, "SixLabors.Fonts.sln")))
+ while (directory != null && !File.Exists(Path.Combine(directory.FullName, "SixLabors.Fonts.slnx")))
{
directory = directory.Parent;
}
diff --git a/tests/SixLabors.Fonts.Benchmarks/SixLabors.Fonts.Benchmarks/SixLabors.Fonts.Benchmarks.csproj b/tests/SixLabors.Fonts.Benchmarks/SixLabors.Fonts.Benchmarks/SixLabors.Fonts.Benchmarks.csproj
index c5a2491a8..ee93f16ec 100644
--- a/tests/SixLabors.Fonts.Benchmarks/SixLabors.Fonts.Benchmarks/SixLabors.Fonts.Benchmarks.csproj
+++ b/tests/SixLabors.Fonts.Benchmarks/SixLabors.Fonts.Benchmarks/SixLabors.Fonts.Benchmarks.csproj
@@ -15,20 +15,20 @@
CA1822
-
+
- net8.0;net10.0
+ net10.0;net11.0
- net8.0
+ net10.0
-
+
diff --git a/tests/SixLabors.Fonts.Tests/ImageComparison/TolerantImageComparer.cs b/tests/SixLabors.Fonts.Tests/ImageComparison/TolerantImageComparer.cs
index ec43b052e..958efa753 100644
--- a/tests/SixLabors.Fonts.Tests/ImageComparison/TolerantImageComparer.cs
+++ b/tests/SixLabors.Fonts.Tests/ImageComparison/TolerantImageComparer.cs
@@ -60,7 +60,7 @@ public override ImageSimilarityReport CompareImagesOrFrames
- net8.0;net10.0
+ net10.0;net11.0
- net8.0
+ net10.0
@@ -47,7 +47,7 @@
-
+
diff --git a/tests/SixLabors.Fonts.Tests/TestEnvironment.cs b/tests/SixLabors.Fonts.Tests/TestEnvironment.cs
index 43f7fc287..fadaacd0c 100644
--- a/tests/SixLabors.Fonts.Tests/TestEnvironment.cs
+++ b/tests/SixLabors.Fonts.Tests/TestEnvironment.cs
@@ -10,7 +10,7 @@ internal static class TestEnvironment
{
private static readonly FileInfo TestAssemblyFile = new(typeof(TestEnvironment).GetTypeInfo().Assembly.Location);
- private const string SixLaborsSolutionFileName = "SixLabors.Fonts.sln";
+ private const string SixLaborsSolutionFileName = "SixLabors.Fonts.slnx";
private const string ActualOutputDirectoryRelativePath = @"tests\Images\ActualOutput";
diff --git a/tests/SixLabors.Fonts.Tests/Unicode/BidiAlgorithmTests.cs b/tests/SixLabors.Fonts.Tests/Unicode/BidiAlgorithmTests.cs
index d20891ef2..1800771c8 100644
--- a/tests/SixLabors.Fonts.Tests/Unicode/BidiAlgorithmTests.cs
+++ b/tests/SixLabors.Fonts.Tests/Unicode/BidiAlgorithmTests.cs
@@ -4,7 +4,6 @@
using System.Globalization;
using SixLabors.Fonts.Rendering;
using SixLabors.Fonts.Unicode;
-using Xunit.Abstractions;
namespace SixLabors.Fonts.Tests.Unicode;
diff --git a/tests/SixLabors.Fonts.Tests/Unicode/BidiCharacterTests.cs b/tests/SixLabors.Fonts.Tests/Unicode/BidiCharacterTests.cs
index b77c9be37..a5be3bba5 100644
--- a/tests/SixLabors.Fonts.Tests/Unicode/BidiCharacterTests.cs
+++ b/tests/SixLabors.Fonts.Tests/Unicode/BidiCharacterTests.cs
@@ -4,7 +4,6 @@
using System.Runtime.InteropServices;
using System.Text;
using SixLabors.Fonts.Unicode;
-using Xunit.Abstractions;
namespace SixLabors.Fonts.Tests.Unicode;
diff --git a/tests/SixLabors.Fonts.Tests/Unicode/GraphemeEnumeratorTests.cs b/tests/SixLabors.Fonts.Tests/Unicode/GraphemeEnumeratorTests.cs
index 99c2ff552..4461fd0c9 100644
--- a/tests/SixLabors.Fonts.Tests/Unicode/GraphemeEnumeratorTests.cs
+++ b/tests/SixLabors.Fonts.Tests/Unicode/GraphemeEnumeratorTests.cs
@@ -4,7 +4,6 @@
using System.Runtime.InteropServices;
using System.Text;
using SixLabors.Fonts.Unicode;
-using Xunit.Abstractions;
namespace SixLabors.Fonts.Tests.Unicode;
diff --git a/tests/SixLabors.Fonts.Tests/Unicode/LineBreakEnumeratorTests.cs b/tests/SixLabors.Fonts.Tests/Unicode/LineBreakEnumeratorTests.cs
index 6efe04a20..c626ff925 100644
--- a/tests/SixLabors.Fonts.Tests/Unicode/LineBreakEnumeratorTests.cs
+++ b/tests/SixLabors.Fonts.Tests/Unicode/LineBreakEnumeratorTests.cs
@@ -4,7 +4,6 @@
using System.Runtime.InteropServices;
using System.Text;
using SixLabors.Fonts.Unicode;
-using Xunit.Abstractions;
namespace SixLabors.Fonts.Tests.Unicode;
diff --git a/tests/SixLabors.Fonts.Tests/Unicode/WordBreakEnumeratorTests.cs b/tests/SixLabors.Fonts.Tests/Unicode/WordBreakEnumeratorTests.cs
index 70b6616d3..142188d6a 100644
--- a/tests/SixLabors.Fonts.Tests/Unicode/WordBreakEnumeratorTests.cs
+++ b/tests/SixLabors.Fonts.Tests/Unicode/WordBreakEnumeratorTests.cs
@@ -4,7 +4,6 @@
using System.Runtime.InteropServices;
using System.Text;
using SixLabors.Fonts.Unicode;
-using Xunit.Abstractions;
namespace SixLabors.Fonts.Tests.Unicode;