diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml
index f5a8263..82c61e4 100644
--- a/.github/workflows/dotnet.yml
+++ b/.github/workflows/dotnet.yml
@@ -48,23 +48,6 @@ jobs:
- name: Test Collections.EqualityComparers.Tests
run: dotnet test ./src/*/*/Collections.EqualityComparers.Tests.csproj --no-restore -c Release
- # Collections.FlatArray
-
- - name: Restore Collections.FlatArray
- run: dotnet restore ./src/*/*/Collections.FlatArray.csproj
-
- - name: Build Collections.FlatArray
- run: dotnet build ./src/*/*/Collections.FlatArray.csproj --no-restore -c Release
-
- - name: Pack Collections.FlatArray
- run: dotnet pack ./src/*/*/Collections.FlatArray.csproj --no-restore -o ~/nuget -c Release
-
- - name: Restore Collections.FlatArray.Tests
- run: dotnet restore ./src/*/*/Collections.FlatArray.Tests.csproj
-
- - name: Test Collections.FlatArray.Tests
- run: dotnet test ./src/*/*/Collections.FlatArray.Tests.csproj --no-restore -c Release
-
# Collections
- name: Restore Collections
diff --git a/src/collections-flat-array/Collections.FlatArray.Tests/Collections.FlatArray.Tests.csproj b/src/collections-flat-array/Collections.FlatArray.Tests/Collections.FlatArray.Tests.csproj
deleted file mode 100644
index de7a6c4..0000000
--- a/src/collections-flat-array/Collections.FlatArray.Tests/Collections.FlatArray.Tests.csproj
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
-
- net6.0
- disable
- enable
- true
- true
- false
- Andrei Sergeev, Pavel Moskovoy
- Copyright © 2022 Andrei Sergeev, Pavel Moskovoy
- PrimeFuncPack.Collections.Tests
- PrimeFuncPack.Collections.FlatArray.Tests
-
-
-
-
-
-
-
- runtime; build; native; contentfiles; analyzers; buildtransitive
- all
-
-
- runtime; build; native; contentfiles; analyzers; buildtransitive
- all
-
-
-
-
-
-
-
-
diff --git a/src/collections-flat-array/Collections.FlatArray.Tests/Internal.Helper/FlatArray.Builder.Enumerator/Enumerator.Initialize.cs b/src/collections-flat-array/Collections.FlatArray.Tests/Internal.Helper/FlatArray.Builder.Enumerator/Enumerator.Initialize.cs
deleted file mode 100644
index f5f4a8f..0000000
--- a/src/collections-flat-array/Collections.FlatArray.Tests/Internal.Helper/FlatArray.Builder.Enumerator/Enumerator.Initialize.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-using System.Collections.Generic;
-
-namespace PrimeFuncPack.Collections.Tests;
-
-partial class TestHelper
-{
- internal static FlatArray.Builder.Enumerator InitializeEnumerator(this FlatArray.Builder builder, int index)
- {
- var source = default(FlatArray.Builder.Enumerator);
- var type = typeof(FlatArray.Builder.Enumerator);
-
- type.CreateSetter>("builder").Invoke(source, builder);
- type.CreateSetter>("index").Invoke(source, index);
-
- return source;
- }
-
- private delegate void BuilderEnumeratorBuilderSetter(in FlatArray.Builder.Enumerator source, FlatArray.Builder builder);
-
- private delegate void BuilderEnumeratorIndexSetter(in FlatArray.Builder.Enumerator source, int index);
-}
\ No newline at end of file
diff --git a/src/collections-flat-array/Collections.FlatArray.Tests/Internal.Helper/FlatArray.Builder.Enumerator/Enumerator.Verify.cs b/src/collections-flat-array/Collections.FlatArray.Tests/Internal.Helper/FlatArray.Builder.Enumerator/Enumerator.Verify.cs
deleted file mode 100644
index e31ab20..0000000
--- a/src/collections-flat-array/Collections.FlatArray.Tests/Internal.Helper/FlatArray.Builder.Enumerator/Enumerator.Verify.cs
+++ /dev/null
@@ -1,23 +0,0 @@
-using System.Collections.Generic;
-using Xunit;
-
-namespace PrimeFuncPack.Collections.Tests;
-
-partial class TestHelper
-{
- internal static void VerifyInnerState(
- this FlatArray.Builder.Enumerator actual, T[]? expectedBuilderItems, int expectedBuilderLength, int expectedIndex)
- {
- var type = typeof(FlatArray.Builder.Enumerator);
-
- var actualBuilder = type.CreateGetter>("builder").Invoke(actual);
- actualBuilder.VerifyInnerState(expectedBuilderItems, expectedBuilderLength);
-
- var actualIndex = type.CreateGetter>("index").Invoke(actual);
- Assert.StrictEqual(expectedIndex, actualIndex);
- }
-
- private delegate FlatArray.Builder BuilderEnumeratorBuilderGetter(in FlatArray.Builder.Enumerator source);
-
- private delegate int BuilderEnumeratorIndexGetter(in FlatArray.Builder.Enumerator source);
-}
\ No newline at end of file
diff --git a/src/collections-flat-array/Collections.FlatArray.Tests/Internal.Helper/FlatArray.Builder/Builder.Initialize.cs b/src/collections-flat-array/Collections.FlatArray.Tests/Internal.Helper/FlatArray.Builder/Builder.Initialize.cs
deleted file mode 100644
index a3b8109..0000000
--- a/src/collections-flat-array/Collections.FlatArray.Tests/Internal.Helper/FlatArray.Builder/Builder.Initialize.cs
+++ /dev/null
@@ -1,19 +0,0 @@
-using System.Collections.Generic;
-
-namespace PrimeFuncPack.Collections.Tests;
-
-partial class TestHelper
-{
- internal static FlatArray.Builder InitializeFlatArrayBuilder(this T[] items, int? length = null)
- {
- var source = default(FlatArray.Builder);
- var type = typeof(FlatArray.Builder);
-
- type.CreateSetter>("items").Invoke(source, items);
- type.CreateSetter>("length").Invoke(source, length ?? items.Length);
-
- return source;
- }
-
- private delegate void BuilderFieldSetter(in FlatArray.Builder source, TValue value);
-}
\ No newline at end of file
diff --git a/src/collections-flat-array/Collections.FlatArray.Tests/Internal.Helper/FlatArray.Builder/Builder.Verify.cs b/src/collections-flat-array/Collections.FlatArray.Tests/Internal.Helper/FlatArray.Builder/Builder.Verify.cs
deleted file mode 100644
index 2d16302..0000000
--- a/src/collections-flat-array/Collections.FlatArray.Tests/Internal.Helper/FlatArray.Builder/Builder.Verify.cs
+++ /dev/null
@@ -1,20 +0,0 @@
-using System.Collections.Generic;
-using Xunit;
-
-namespace PrimeFuncPack.Collections.Tests;
-
-partial class TestHelper
-{
- internal static void VerifyInnerState(this FlatArray.Builder actual, T[]? expectedItems, int expectedLength)
- {
- var type = typeof(FlatArray.Builder);
-
- var actualItems = type.CreateGetter>("items").Invoke(actual);
- Assert.Equal(expectedItems, actualItems);
-
- var actualLength = type.CreateGetter>("length").Invoke(actual);
- Assert.StrictEqual(expectedLength, actualLength);
- }
-
- private delegate TValue BuilderFieldGetter(in FlatArray.Builder source);
-}
\ No newline at end of file
diff --git a/src/collections-flat-array/Collections.FlatArray.Tests/Internal.Helper/FlatArray.Enumerator/Enumerator.Initialize.cs b/src/collections-flat-array/Collections.FlatArray.Tests/Internal.Helper/FlatArray.Enumerator/Enumerator.Initialize.cs
deleted file mode 100644
index 3c4ceaf..0000000
--- a/src/collections-flat-array/Collections.FlatArray.Tests/Internal.Helper/FlatArray.Enumerator/Enumerator.Initialize.cs
+++ /dev/null
@@ -1,22 +0,0 @@
-using System;
-using System.Collections.Generic;
-
-namespace PrimeFuncPack.Collections.Tests;
-
-partial class TestHelper
-{
- internal static FlatArray.Enumerator InitializeFlatArrayEnumerator(this T[] items, int index)
- {
- var source = default(FlatArray.Enumerator);
- var type = typeof(FlatArray.Enumerator);
-
- type.CreateSetter>("items").Invoke(source, new(items));
- type.CreateSetter>("index").Invoke(source, index);
-
- return source;
- }
-
- private delegate void EnumeratorItemsSetter(in FlatArray.Enumerator source, ReadOnlySpan items);
-
- private delegate void EnumeratorIndexSetter(in FlatArray.Enumerator source, int index);
-}
\ No newline at end of file
diff --git a/src/collections-flat-array/Collections.FlatArray.Tests/Internal.Helper/FlatArray.Enumerator/Enumerator.Verify.cs b/src/collections-flat-array/Collections.FlatArray.Tests/Internal.Helper/FlatArray.Enumerator/Enumerator.Verify.cs
deleted file mode 100644
index cff6bc3..0000000
--- a/src/collections-flat-array/Collections.FlatArray.Tests/Internal.Helper/FlatArray.Enumerator/Enumerator.Verify.cs
+++ /dev/null
@@ -1,23 +0,0 @@
-using System;
-using System.Collections.Generic;
-using Xunit;
-
-namespace PrimeFuncPack.Collections.Tests;
-
-partial class TestHelper
-{
- internal static void VerifyInnerState(this FlatArray.Enumerator actual, T[] expectedItems, int expectedIndex)
- {
- var type = typeof(FlatArray.Enumerator);
-
- var actualItems = type.CreateGetter>("items").Invoke(actual);
- Assert.Equal(expectedItems, actualItems.ToArray());
-
- var actualIndex = type.CreateGetter>("index").Invoke(actual);
- Assert.StrictEqual(expectedIndex, actualIndex);
- }
-
- private delegate ReadOnlySpan EnumeratorItemsGetter(in FlatArray.Enumerator source);
-
- private delegate int EnumeratorIndexGetter(in FlatArray.Enumerator source);
-}
\ No newline at end of file
diff --git a/src/collections-flat-array/Collections.FlatArray.Tests/Internal.Helper/FlatArray/FlatArray.Initialize.cs b/src/collections-flat-array/Collections.FlatArray.Tests/Internal.Helper/FlatArray/FlatArray.Initialize.cs
deleted file mode 100644
index 883dcbf..0000000
--- a/src/collections-flat-array/Collections.FlatArray.Tests/Internal.Helper/FlatArray/FlatArray.Initialize.cs
+++ /dev/null
@@ -1,20 +0,0 @@
-using System.Collections.Generic;
-using System.Diagnostics;
-
-namespace PrimeFuncPack.Collections.Tests;
-
-partial class TestHelper
-{
- internal static FlatArray InitializeFlatArray(this T[] items, int? length = null)
- {
- Debug.Assert(items.Length is not 0);
-
- // Use a boxed default array instance to modify its inner state next
- object array = default(FlatArray);
-
- array.SetFieldValue("length", length ?? items.Length);
- array.SetFieldValue("items", items);
-
- return (FlatArray)array;
- }
-}
\ No newline at end of file
diff --git a/src/collections-flat-array/Collections.FlatArray.Tests/Internal.Helper/FlatArray/FlatArray.Verify.cs b/src/collections-flat-array/Collections.FlatArray.Tests/Internal.Helper/FlatArray/FlatArray.Verify.cs
deleted file mode 100644
index c9de061..0000000
--- a/src/collections-flat-array/Collections.FlatArray.Tests/Internal.Helper/FlatArray/FlatArray.Verify.cs
+++ /dev/null
@@ -1,16 +0,0 @@
-using System.Collections.Generic;
-using Xunit;
-
-namespace PrimeFuncPack.Collections.Tests;
-
-partial class TestHelper
-{
- internal static void VerifyInnerState(this FlatArray actual, T[]? expectedItems, int expectedLength)
- {
- var actualLength = actual.GetStructFieldValue("length");
- Assert.StrictEqual(expectedLength, actualLength);
-
- var actualItems = actual.GetFieldValue("items");
- Assert.Equal(expectedItems, actualItems);
- }
-}
\ No newline at end of file
diff --git a/src/collections-flat-array/Collections.FlatArray.Tests/Internal.Helper/Helper.GetCopy.cs b/src/collections-flat-array/Collections.FlatArray.Tests/Internal.Helper/Helper.GetCopy.cs
deleted file mode 100644
index 443db04..0000000
--- a/src/collections-flat-array/Collections.FlatArray.Tests/Internal.Helper/Helper.GetCopy.cs
+++ /dev/null
@@ -1,19 +0,0 @@
-using System;
-
-namespace PrimeFuncPack.Collections.Tests;
-
-partial class TestHelper
-{
- internal static T[] GetCopy(this T[] source)
- {
- if (source.Length is 0)
- {
- return Array.Empty();
- }
-
- var copy = new T[source.Length];
- Array.Copy(source, copy, source.Length);
-
- return copy;
- }
-}
\ No newline at end of file
diff --git a/src/collections-flat-array/Collections.FlatArray.Tests/Internal.Helper/InnerFlatList.Enumerator/Enumerator.Initialize.cs b/src/collections-flat-array/Collections.FlatArray.Tests/Internal.Helper/InnerFlatList.Enumerator/Enumerator.Initialize.cs
deleted file mode 100644
index e386f4f..0000000
--- a/src/collections-flat-array/Collections.FlatArray.Tests/Internal.Helper/InnerFlatList.Enumerator/Enumerator.Initialize.cs
+++ /dev/null
@@ -1,17 +0,0 @@
-using System.Collections.Generic;
-
-namespace PrimeFuncPack.Collections.Tests;
-
-partial class TestHelper
-{
- internal static IEnumerator InitializeFlatListEnumerator(this T[] items, int length, int index)
- {
- var flatListEnumerator = items.InitializeFlatList(length).GetEnumerator();
-
- flatListEnumerator.SetFieldValue("items", items);
- flatListEnumerator.SetFieldValue("length", length);
- flatListEnumerator.SetFieldValue("index", index);
-
- return flatListEnumerator;
- }
-}
\ No newline at end of file
diff --git a/src/collections-flat-array/Collections.FlatArray.Tests/Internal.Helper/InnerFlatList.Enumerator/Enumerator.Verify.cs b/src/collections-flat-array/Collections.FlatArray.Tests/Internal.Helper/InnerFlatList.Enumerator/Enumerator.Verify.cs
deleted file mode 100644
index 664bd3e..0000000
--- a/src/collections-flat-array/Collections.FlatArray.Tests/Internal.Helper/InnerFlatList.Enumerator/Enumerator.Verify.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-using System.Collections.Generic;
-using Xunit;
-
-namespace PrimeFuncPack.Collections.Tests;
-
-partial class TestHelper
-{
- internal static void VerifyInnerFlatListEnumeratorState(
- this IEnumerator actual, T[] expectedItems, int expectedLength, int expectedIndex)
- {
- var actualTypeName = actual.GetType().Name;
- const string expectedTypeName = "InnerEnumerator";
-
- Assert.Equal(expectedTypeName, actualTypeName);
-
- var actualItems = actual.GetFieldValue("items");
- Assert.Equal(expectedItems, actualItems);
-
- var actualLength = actual.GetStructFieldValue("length");
- Assert.StrictEqual(expectedLength, actualLength);
-
- var actualIndex = actual.GetStructFieldValue("index");
- Assert.StrictEqual(expectedIndex, actualIndex);
- }
-}
\ No newline at end of file
diff --git a/src/collections-flat-array/Collections.FlatArray.Tests/Internal.Helper/InnerFlatList/InnerFlatList.Empty.cs b/src/collections-flat-array/Collections.FlatArray.Tests/Internal.Helper/InnerFlatList/InnerFlatList.Empty.cs
deleted file mode 100644
index b8e893d..0000000
--- a/src/collections-flat-array/Collections.FlatArray.Tests/Internal.Helper/InnerFlatList/InnerFlatList.Empty.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-using System.Collections.Generic;
-
-namespace PrimeFuncPack.Collections.Tests;
-
-partial class TestHelper
-{
- internal static IList CreateEmptyFlatList()
- =>
- (IList)default(FlatArray).AsEnumerable();
-}
\ No newline at end of file
diff --git a/src/collections-flat-array/Collections.FlatArray.Tests/Internal.Helper/InnerFlatList/InnerFlatList.Initialize.cs b/src/collections-flat-array/Collections.FlatArray.Tests/Internal.Helper/InnerFlatList/InnerFlatList.Initialize.cs
deleted file mode 100644
index 09d0eb3..0000000
--- a/src/collections-flat-array/Collections.FlatArray.Tests/Internal.Helper/InnerFlatList/InnerFlatList.Initialize.cs
+++ /dev/null
@@ -1,16 +0,0 @@
-using System.Collections.Generic;
-
-namespace PrimeFuncPack.Collections.Tests;
-
-partial class TestHelper
-{
- internal static IList InitializeFlatList(this T[] items, int? length = null)
- {
- var source = default(FlatArray).AsEnumerable();
-
- source.SetFieldValue("length", length ?? items.Length);
- source.SetFieldValue("items", items);
-
- return (IList)source;
- }
-}
\ No newline at end of file
diff --git a/src/collections-flat-array/Collections.FlatArray.Tests/Internal.Helper/InnerFlatList/InnerFlatList.Verify.cs b/src/collections-flat-array/Collections.FlatArray.Tests/Internal.Helper/InnerFlatList/InnerFlatList.Verify.cs
deleted file mode 100644
index 2603f08..0000000
--- a/src/collections-flat-array/Collections.FlatArray.Tests/Internal.Helper/InnerFlatList/InnerFlatList.Verify.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-using System.Collections.Generic;
-using Xunit;
-
-namespace PrimeFuncPack.Collections.Tests;
-
-partial class TestHelper
-{
- internal static void VerifyInnerFlatListState(this IEnumerable actual, T[] expectedItems, int expectedLength)
- {
- var actualTypeName = actual.GetType().Name;
- const string expectedTypeName = "InnerFlatList";
-
- Assert.Equal(expectedTypeName, actualTypeName);
-
- var actualLength = actual.GetStructFieldValue("length");
- Assert.StrictEqual(expectedLength, actualLength);
-
- var actualItems = actual.GetFieldValue("items");
- Assert.Equal(expectedItems, actualItems);
- }
-}
\ No newline at end of file
diff --git a/src/collections-flat-array/Collections.FlatArray.Tests/Internal.Helper/TestHelper.cs b/src/collections-flat-array/Collections.FlatArray.Tests/Internal.Helper/TestHelper.cs
deleted file mode 100644
index be9d6bd..0000000
--- a/src/collections-flat-array/Collections.FlatArray.Tests/Internal.Helper/TestHelper.cs
+++ /dev/null
@@ -1,63 +0,0 @@
-using System;
-using System.Reflection;
-using System.Reflection.Emit;
-
-namespace PrimeFuncPack.Collections.Tests;
-
-internal static partial class TestHelper
-{
- private static T GetStructFieldValue(this object source, string fieldName)
- where T : struct
- =>
- source.GetType().GetInnerFieldInfoOrThrow(fieldName).GetValue(source) switch
- {
- T fieldValue => fieldValue,
- var unexpected => throw new InvalidOperationException($"An unexpected field '{fieldName}' value: {unexpected}")
- };
-
- private static T? GetFieldValue(this object source, string fieldName)
- =>
- (T?)source.GetType().GetInnerFieldInfoOrThrow(fieldName).GetValue(source);
-
- private static void SetFieldValue(this object source, string fieldName, T fieldValue)
- =>
- source.GetType().GetInnerFieldInfoOrThrow(fieldName).SetValue(source, fieldValue);
-
- private static FieldInfo GetInnerFieldInfoOrThrow(this Type type, string fieldName)
- =>
- type.GetField(fieldName, BindingFlags.Instance | BindingFlags.NonPublic)
- ?? throw new InvalidOperationException($"An inner field '{fieldName}' of the FlatArray type was not found");
-
- private static TDelegate CreateGetter(this Type ownerType, string fieldName)
- where TDelegate : Delegate
- {
- var fieldInfo = ownerType.GetInnerFieldInfoOrThrow(fieldName);
- var methodName = "GetInner" + fieldName;
-
- var method = new DynamicMethod(methodName, fieldInfo.FieldType, new[] { ownerType.MakeByRefType() }, ownerType, true);
- var ilGenerator = method.GetILGenerator();
-
- ilGenerator.Emit(OpCodes.Ldarg_0);
- ilGenerator.Emit(OpCodes.Ldfld, fieldInfo);
- ilGenerator.Emit(OpCodes.Ret);
-
- return (TDelegate)method.CreateDelegate(typeof(TDelegate));
- }
-
- private static TDelegate CreateSetter(this Type ownerType, string fieldName)
- where TDelegate : Delegate
- {
- var fieldInfo = ownerType.GetInnerFieldInfoOrThrow(fieldName);
- var methodName = "SetInner" + fieldName;
-
- var method = new DynamicMethod(methodName, typeof(void), new[] { ownerType.MakeByRefType(), fieldInfo.FieldType }, ownerType, true);
- var ilGenerator = method.GetILGenerator();
-
- ilGenerator.Emit(OpCodes.Ldarg_0);
- ilGenerator.Emit(OpCodes.Ldarg_1);
- ilGenerator.Emit(OpCodes.Stfld, fieldInfo);
- ilGenerator.Emit(OpCodes.Ret);
-
- return (TDelegate)method.CreateDelegate(typeof(TDelegate));
- }
-}
\ No newline at end of file
diff --git a/src/collections-flat-array/Collections.FlatArray.Tests/Stubs/StubCollection.cs b/src/collections-flat-array/Collections.FlatArray.Tests/Stubs/StubCollection.cs
deleted file mode 100644
index d56a4f3..0000000
--- a/src/collections-flat-array/Collections.FlatArray.Tests/Stubs/StubCollection.cs
+++ /dev/null
@@ -1,49 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-
-namespace PrimeFuncPack.Collections.Tests;
-
-internal sealed class StubCollection : ICollection
-{
- private readonly ICollection sourceCollection;
-
- internal StubCollection(List sourceCollection)
- =>
- this.sourceCollection = sourceCollection;
-
- public int Count
- =>
- sourceCollection.Count;
-
- public bool IsReadOnly
- =>
- sourceCollection.IsReadOnly;
-
- public void Add(T item)
- =>
- sourceCollection.Add(item);
-
- public void Clear()
- =>
- sourceCollection.Clear();
-
- public bool Contains(T item)
- =>
- sourceCollection.Contains(item);
-
- public void CopyTo(T[] array, int arrayIndex)
- =>
- sourceCollection.CopyTo(array, arrayIndex);
-
- public IEnumerator GetEnumerator()
- =>
- sourceCollection.GetEnumerator();
-
- public bool Remove(T item)
- =>
- sourceCollection.Remove(item);
-
- IEnumerator IEnumerable.GetEnumerator()
- =>
- ((IEnumerable)sourceCollection).GetEnumerator();
-}
\ No newline at end of file
diff --git a/src/collections-flat-array/Collections.FlatArray.Tests/Stubs/StubEnum.cs b/src/collections-flat-array/Collections.FlatArray.Tests/Stubs/StubEnum.cs
deleted file mode 100644
index fe54f46..0000000
--- a/src/collections-flat-array/Collections.FlatArray.Tests/Stubs/StubEnum.cs
+++ /dev/null
@@ -1,8 +0,0 @@
-namespace PrimeFuncPack.Collections.Tests;
-
-internal enum StubEnum
-{
- Default,
-
- Some
-}
\ No newline at end of file
diff --git a/src/collections-flat-array/Collections.FlatArray.Tests/Stubs/StubItemJson.cs b/src/collections-flat-array/Collections.FlatArray.Tests/Stubs/StubItemJson.cs
deleted file mode 100644
index 0d7fa9a..0000000
--- a/src/collections-flat-array/Collections.FlatArray.Tests/Stubs/StubItemJson.cs
+++ /dev/null
@@ -1,22 +0,0 @@
-using System;
-using System.Text.Json.Serialization;
-
-namespace PrimeFuncPack.Collections.Tests;
-
-internal sealed record class StubItemJson
-{
- public int Id { get; init; }
-
- public string? Name { get; init; }
-
- [JsonPropertyName("date")]
- public DateTimeOffset? Date { get; init; }
-
- public StubEnum? EnumValue { get; init; }
-
- [JsonConverter(typeof(JsonStringEnumConverter))]
- public StubEnum? EnumText { get; init; }
-
- [JsonIgnore]
- public long HiddenValue { get; init; }
-}
\ No newline at end of file
diff --git a/src/collections-flat-array/Collections.FlatArray.Tests/Stubs/StubReadOnlyCollection.cs b/src/collections-flat-array/Collections.FlatArray.Tests/Stubs/StubReadOnlyCollection.cs
deleted file mode 100644
index d8f9755..0000000
--- a/src/collections-flat-array/Collections.FlatArray.Tests/Stubs/StubReadOnlyCollection.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-
-namespace PrimeFuncPack.Collections.Tests;
-
-internal sealed class StubReadOnlyCollection : IReadOnlyCollection
-{
- private readonly IReadOnlyCollection source;
-
- internal StubReadOnlyCollection(T[] source)
- =>
- this.source = source;
-
- public int Count
- =>
- source.Count;
-
- public IEnumerator GetEnumerator()
- =>
- source.GetEnumerator();
-
- IEnumerator IEnumerable.GetEnumerator()
- =>
- ((IEnumerable)source).GetEnumerator();
-}
\ No newline at end of file
diff --git a/src/collections-flat-array/Collections.FlatArray.Tests/Stubs/StubReadOnlyList.cs b/src/collections-flat-array/Collections.FlatArray.Tests/Stubs/StubReadOnlyList.cs
deleted file mode 100644
index 97a43bb..0000000
--- a/src/collections-flat-array/Collections.FlatArray.Tests/Stubs/StubReadOnlyList.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-
-namespace PrimeFuncPack.Collections.Tests;
-
-internal sealed class StubReadOnlyList : IReadOnlyList
-{
- private readonly IReadOnlyList source;
-
- internal StubReadOnlyList(List source)
- =>
- this.source = source;
-
- public T this[int index]
- =>
- source[index];
-
- public int Count
- =>
- source.Count;
-
- public IEnumerator GetEnumerator()
- =>
- source.GetEnumerator();
-
- IEnumerator IEnumerable.GetEnumerator()
- =>
- ((IEnumerable)source).GetEnumerator();
-}
\ No newline at end of file
diff --git a/src/collections-flat-array/Collections.FlatArray.Tests/TestData/EqualityComparerTestSource.cs b/src/collections-flat-array/Collections.FlatArray.Tests/TestData/EqualityComparerTestSource.cs
deleted file mode 100644
index 4384829..0000000
--- a/src/collections-flat-array/Collections.FlatArray.Tests/TestData/EqualityComparerTestSource.cs
+++ /dev/null
@@ -1,192 +0,0 @@
-using System;
-using System.Collections.Generic;
-using static PrimeFuncPack.UnitTest.TestData;
-
-namespace PrimeFuncPack.Collections.Tests;
-
-internal static class EqualityComparerTestSource
-{
- public static IEnumerable