diff --git a/src/Data.HashFunction.sln b/src/Data.HashFunction.sln index 625121d..a5bc0e0 100644 --- a/src/Data.HashFunction.sln +++ b/src/Data.HashFunction.sln @@ -10,6 +10,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Shared", "Shared", "{D0A9A6 ..\appveyor.yml = ..\appveyor.yml Data.HashFunction.runsettings = Data.HashFunction.runsettings FriendAssemblies.cs = FriendAssemblies.cs + FriendAssemblies.Unsigned.cs = FriendAssemblies.Unsigned.cs SolutionInfo.cs = SolutionInfo.cs EndProjectSection EndProject @@ -57,7 +58,11 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Data.HashFunction.xx EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Data.HashFunction.HashAlgorithm", "System.Data.HashFunction.HashAlgorithm\System.Data.HashFunction.HashAlgorithm.csproj", "{89C43129-57DC-445C-9521-5C7A6011A878}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Data.HashFunction.FarmHash", "System.Data.HashFunction.FarmHash\System.Data.HashFunction.FarmHash.csproj", "{62D94F50-2DDD-4F81-B4AF-9D1A53C1404C}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Data.HashFunction.FarmHash", "System.Data.HashFunction.FarmHash\System.Data.HashFunction.FarmHash.csproj", "{62D94F50-2DDD-4F81-B4AF-9D1A53C1404C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Data.HashFunction.FarmHash.FarmHashSharp", "System.Data.HashFunction.FarmHash.FarmHashSharp\System.Data.HashFunction.FarmHash.FarmHashSharp.csproj", "{49823118-9A33-43FB-A191-7CED19CF79DF}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Data.HashFunction.Test.Unsigned", "System.Data.HashFunction.Test.Unsigned\System.Data.HashFunction.Test.Unsigned.csproj", "{3B0B798B-AED7-4337-A470-3C7DE50314CC}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Data.HashFunction.MetroHash", "System.Data.HashFunction.MetroHash\System.Data.HashFunction.MetroHash.csproj", "{F65860E9-DF4C-44F4-9AF0-3E8B2BC682FE}" EndProject @@ -134,6 +139,14 @@ Global {62D94F50-2DDD-4F81-B4AF-9D1A53C1404C}.Debug|Any CPU.Build.0 = Debug|Any CPU {62D94F50-2DDD-4F81-B4AF-9D1A53C1404C}.Release|Any CPU.ActiveCfg = Release|Any CPU {62D94F50-2DDD-4F81-B4AF-9D1A53C1404C}.Release|Any CPU.Build.0 = Release|Any CPU + {49823118-9A33-43FB-A191-7CED19CF79DF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {49823118-9A33-43FB-A191-7CED19CF79DF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {49823118-9A33-43FB-A191-7CED19CF79DF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {49823118-9A33-43FB-A191-7CED19CF79DF}.Release|Any CPU.Build.0 = Release|Any CPU + {3B0B798B-AED7-4337-A470-3C7DE50314CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3B0B798B-AED7-4337-A470-3C7DE50314CC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3B0B798B-AED7-4337-A470-3C7DE50314CC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3B0B798B-AED7-4337-A470-3C7DE50314CC}.Release|Any CPU.Build.0 = Release|Any CPU {F65860E9-DF4C-44F4-9AF0-3E8B2BC682FE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {F65860E9-DF4C-44F4-9AF0-3E8B2BC682FE}.Debug|Any CPU.Build.0 = Debug|Any CPU {F65860E9-DF4C-44F4-9AF0-3E8B2BC682FE}.Release|Any CPU.ActiveCfg = Release|Any CPU diff --git a/src/FriendAssemblies.Unsigned.cs b/src/FriendAssemblies.Unsigned.cs new file mode 100644 index 0000000..cc85465 --- /dev/null +++ b/src/FriendAssemblies.Unsigned.cs @@ -0,0 +1,7 @@ +using System.Runtime.CompilerServices; + +#if DEBUG + +[assembly:InternalsVisibleTo("System.Data.HashFunction.Test.Unsigned")] + +#endif \ No newline at end of file diff --git a/src/System.Data.HashFunction.FarmHash.FarmHashSharp/FarmHashSharpHash32Factory.cs b/src/System.Data.HashFunction.FarmHash.FarmHashSharp/FarmHashSharpHash32Factory.cs new file mode 100644 index 0000000..11a36c4 --- /dev/null +++ b/src/System.Data.HashFunction.FarmHash.FarmHashSharp/FarmHashSharpHash32Factory.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace System.Data.HashFunction.FarmHash.FarmHashSharp +{ + /// + /// Provides instances of implementations of . + /// + public sealed class FarmHashSharpHash32Factory + : FarmHashFingerprint32FactoryBase, + IFarmHashSharpHash32Factory + { + /// + /// Gets the singleton instance of this factory. + /// + public static IFarmHashSharpHash32Factory Instance { get; } = new FarmHashSharpHash32Factory(); + + + private FarmHashSharpHash32Factory() + { + + } + + + /// + /// Creates a new instance. + /// + /// A instance. + public override IFarmHashSharpHash32 Create() => + new FarmHashSharpHash32_Implementation(); + } +} diff --git a/src/System.Data.HashFunction.FarmHash.FarmHashSharp/FarmHashSharpHash32_Implementation.cs b/src/System.Data.HashFunction.FarmHash.FarmHashSharp/FarmHashSharpHash32_Implementation.cs new file mode 100644 index 0000000..28d001a --- /dev/null +++ b/src/System.Data.HashFunction.FarmHash.FarmHashSharp/FarmHashSharpHash32_Implementation.cs @@ -0,0 +1,40 @@ +using System; +using System.Collections.Generic; +using System.Data.HashFunction.Core; +using System.Data.HashFunction.Core.Utilities.UnifiedData; +using System.Text; +using System.Threading; +using System.Threading.Tasks; + +namespace System.Data.HashFunction.FarmHash.FarmHashSharp +{ + using Farmhash = global::Farmhash.Sharp.Farmhash; + + /// + /// Data.HashFunction implementation of via FarmHash.Sharp's Hash32 method. + /// + internal class FarmHashSharpHash32_Implementation + : HashFunctionAsyncBase, + IFarmHashSharpHash32 + { + public override int HashSizeInBits { get; } = 32; + + + protected override byte[] ComputeHashInternal(IUnifiedData data, CancellationToken cancellationToken) + { + var dataArray = data.ToArray(cancellationToken); + + return BitConverter.GetBytes( + Farmhash.Hash32(dataArray, dataArray.Length)); + } + + protected override async Task ComputeHashAsyncInternal(IUnifiedDataAsync data, CancellationToken cancellationToken) + { + var dataArray = await data.ToArrayAsync(cancellationToken) + .ConfigureAwait(false); + + return BitConverter.GetBytes( + Farmhash.Hash32(dataArray, dataArray.Length)); + } + } +} diff --git a/src/System.Data.HashFunction.FarmHash.FarmHashSharp/FarmHashSharpHash64Factory.cs b/src/System.Data.HashFunction.FarmHash.FarmHashSharp/FarmHashSharpHash64Factory.cs new file mode 100644 index 0000000..8729d66 --- /dev/null +++ b/src/System.Data.HashFunction.FarmHash.FarmHashSharp/FarmHashSharpHash64Factory.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace System.Data.HashFunction.FarmHash.FarmHashSharp +{ + /// + /// Provides instances of implementations of . + /// + public sealed class FarmHashSharpHash64Factory + : FarmHashXoHash64FactoryBase, + IFarmHashSharpHash64Factory + { + /// + /// Gets the singleton instance of this factory. + /// + public static IFarmHashSharpHash64Factory Instance { get; } = new FarmHashSharpHash64Factory(); + + + private FarmHashSharpHash64Factory() + { + + } + + + /// + /// Creates a new instance. + /// + /// A instance. + public override IFarmHashSharpHash64 Create() => + new FarmHashSharpHash64_Implementation(); + } +} diff --git a/src/System.Data.HashFunction.FarmHash.FarmHashSharp/FarmHashSharpHash64_Implementation.cs b/src/System.Data.HashFunction.FarmHash.FarmHashSharp/FarmHashSharpHash64_Implementation.cs new file mode 100644 index 0000000..79a6536 --- /dev/null +++ b/src/System.Data.HashFunction.FarmHash.FarmHashSharp/FarmHashSharpHash64_Implementation.cs @@ -0,0 +1,40 @@ +using System; +using System.Collections.Generic; +using System.Data.HashFunction.Core; +using System.Data.HashFunction.Core.Utilities.UnifiedData; +using System.Text; +using System.Threading; +using System.Threading.Tasks; + +namespace System.Data.HashFunction.FarmHash.FarmHashSharp +{ + using Farmhash = global::Farmhash.Sharp.Farmhash; + + /// + /// Data.HashFunction implementation of via FarmHash.Sharp's Hash32 method. + /// + internal class FarmHashSharpHash64_Implementation + : HashFunctionAsyncBase, + IFarmHashSharpHash64 + { + public override int HashSizeInBits { get; } = 64; + + + protected override byte[] ComputeHashInternal(IUnifiedData data, CancellationToken cancellationToken) + { + var dataArray = data.ToArray(cancellationToken); + + return BitConverter.GetBytes( + Farmhash.Hash64(dataArray, dataArray.Length)); + } + + protected override async Task ComputeHashAsyncInternal(IUnifiedDataAsync data, CancellationToken cancellationToken) + { + var dataArray = await data.ToArrayAsync(cancellationToken) + .ConfigureAwait(false); + + return BitConverter.GetBytes( + Farmhash.Hash64(dataArray, dataArray.Length)); + } + } +} diff --git a/src/System.Data.HashFunction.FarmHash.FarmHashSharp/IFarmHashSharpHash32.cs b/src/System.Data.HashFunction.FarmHash.FarmHashSharp/IFarmHashSharpHash32.cs new file mode 100644 index 0000000..c936f44 --- /dev/null +++ b/src/System.Data.HashFunction.FarmHash.FarmHashSharp/IFarmHashSharpHash32.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace System.Data.HashFunction.FarmHash.FarmHashSharp +{ + /// + /// Data.HashFunction implementation of via FarmHash.Sharp's Hash32 method. + /// + public interface IFarmHashSharpHash32 + : IFarmHashFingerprint32 + { + + } +} diff --git a/src/System.Data.HashFunction.FarmHash.FarmHashSharp/IFarmHashSharpHash32Factory.cs b/src/System.Data.HashFunction.FarmHash.FarmHashSharp/IFarmHashSharpHash32Factory.cs new file mode 100644 index 0000000..5f6862c --- /dev/null +++ b/src/System.Data.HashFunction.FarmHash.FarmHashSharp/IFarmHashSharpHash32Factory.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace System.Data.HashFunction.FarmHash.FarmHashSharp +{ + /// + /// Provides instances of implementations of . + /// + public interface IFarmHashSharpHash32Factory + : IFarmHashFingerprint32Factory + { + /// + /// Creates a new instance. + /// + /// A instance. + new IFarmHashSharpHash32 Create(); + } +} diff --git a/src/System.Data.HashFunction.FarmHash.FarmHashSharp/IFarmHashSharpHash64.cs b/src/System.Data.HashFunction.FarmHash.FarmHashSharp/IFarmHashSharpHash64.cs new file mode 100644 index 0000000..fbccb11 --- /dev/null +++ b/src/System.Data.HashFunction.FarmHash.FarmHashSharp/IFarmHashSharpHash64.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace System.Data.HashFunction.FarmHash.FarmHashSharp +{ + /// + /// Data.HashFunction implementation of via FarmHash.Sharp's Hash64 method. + /// + public interface IFarmHashSharpHash64 + : IFarmHashXoHash64 + { + + } +} diff --git a/src/System.Data.HashFunction.FarmHash.FarmHashSharp/IFarmHashSharpHash64Factory.cs b/src/System.Data.HashFunction.FarmHash.FarmHashSharp/IFarmHashSharpHash64Factory.cs new file mode 100644 index 0000000..41421ca --- /dev/null +++ b/src/System.Data.HashFunction.FarmHash.FarmHashSharp/IFarmHashSharpHash64Factory.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace System.Data.HashFunction.FarmHash.FarmHashSharp +{ + /// + /// Provides instances of implementations of . + /// + public interface IFarmHashSharpHash64Factory + : IFarmHashXoHash64Factory + { + /// + /// Creates a new instance. + /// + /// A instance. + new IFarmHashSharpHash64 Create(); + } +} diff --git a/src/System.Data.HashFunction.FarmHash.FarmHashSharp/System.Data.HashFunction.FarmHash.FarmHashSharp.csproj b/src/System.Data.HashFunction.FarmHash.FarmHashSharp/System.Data.HashFunction.FarmHash.FarmHashSharp.csproj new file mode 100644 index 0000000..f4e3530 --- /dev/null +++ b/src/System.Data.HashFunction.FarmHash.FarmHashSharp/System.Data.HashFunction.FarmHash.FarmHashSharp.csproj @@ -0,0 +1,51 @@ + + + + Data.HashFunction implementation of FarmHash via FarmHash.Sharp (https://nickbabcock.github.io/Farmhash.Sharp/). + Copyright 2018 + Data.HashFunction.FarmHash.FarmHashSharp + 2.0.0 + Data.HashFunction Developers + netstandard1.1;net45 + true + System.Data.HashFunction.FarmHash.FarmHashSharp + ../Data.HashFunction.Production.snk + false + false + System.Data.HashFunction.FarmHash.FarmHashSharp + FarmHash;hash;function;farm;FarmHashSharp;FarmHash.Sharp + https://github.com/brandondahler/Data.HashFunction/wiki/Release-Notes + https://raw.githubusercontent.com/brandondahler/Data.HashFunction/master/LICENSE + git + https://github.com/brandondahler/Data.HashFunction/ + false + false + + + + $(PackageReleaseNotes) + vcs-revision: $(VcsRevision) + + + + + full + True + + + + + + + + + + + + + + + + + + diff --git a/src/System.Data.HashFunction.Test.Unsigned/App.config b/src/System.Data.HashFunction.Test.Unsigned/App.config new file mode 100644 index 0000000..7b47f78 --- /dev/null +++ b/src/System.Data.HashFunction.Test.Unsigned/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/System.Data.HashFunction.Test.Unsigned/FarmHash/FarmHashSharp/FarmHashSharpHash32Factory_Tests.cs b/src/System.Data.HashFunction.Test.Unsigned/FarmHash/FarmHashSharp/FarmHashSharpHash32Factory_Tests.cs new file mode 100644 index 0000000..01c7c8d --- /dev/null +++ b/src/System.Data.HashFunction.Test.Unsigned/FarmHash/FarmHashSharp/FarmHashSharpHash32Factory_Tests.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Data.HashFunction.FarmHash.FarmHashSharp; +using System.Text; +using Xunit; + +namespace System.Data.HashFunction.Test.FarmHash.FarmHashSharp +{ + public class FarmHashSharpHash32Factory_Tests + { + [Fact] + public void FarmHashSharpHash32Factory_Instance_IsDefined() + { + Assert.NotNull(FarmHashSharpHash32Factory.Instance); + Assert.IsType(FarmHashSharpHash32Factory.Instance); + } + + [Fact] + public void FarmHashSharpHash32Factory_Create_Works() + { + var farmHashSharpHash32Factory = FarmHashSharpHash32Factory.Instance; + var farmHashSharpHash32 = farmHashSharpHash32Factory.Create(); + + Assert.NotNull(farmHashSharpHash32); + Assert.IsType(farmHashSharpHash32); + } + + } +} diff --git a/src/System.Data.HashFunction.Test.Unsigned/FarmHash/FarmHashSharp/FarmHashSharpHash32_Implementation_Tests.cs b/src/System.Data.HashFunction.Test.Unsigned/FarmHash/FarmHashSharp/FarmHashSharpHash32_Implementation_Tests.cs new file mode 100644 index 0000000..7a1d252 --- /dev/null +++ b/src/System.Data.HashFunction.Test.Unsigned/FarmHash/FarmHashSharp/FarmHashSharpHash32_Implementation_Tests.cs @@ -0,0 +1,55 @@ +using System; +using System.Collections.Generic; +using System.Data.HashFunction.FarmHash.FarmHashSharp; +using System.Data.HashFunction.Test._Utilities; +using System.Linq; +using System.Text; +using Xunit; + +namespace System.Data.HashFunction.Test.FarmHash.FarmHashSharp +{ + public class FarmHashSharpHash32_Implementation_Tests + { + + #region Constructor + + [Fact] + public void FarmHashSharpHash32_Implementation_Constructor_Works() + { + GC.KeepAlive( + new FarmHashSharpHash32_Implementation()); + } + + #endregion + + #region HashSizeInBits + + [Fact] + public void FarmHashSharpHash32_Implementation_HashSizeInBits_Is32() + { + var farmHash = new FarmHashSharpHash32_Implementation(); + + Assert.Equal(32, farmHash.HashSizeInBits); + } + + #endregion + + + + public class IHashFunctionAsync_Tests + : IHashFunctionAsync_TestBase + { + protected override IEnumerable KnownValues { get; } = + new KnownValue[] { + new KnownValue(32, TestConstants.Empty, 0xdc56d17a), + new KnownValue(32, TestConstants.FooBar.Take(3), 0x6b5025e3), + new KnownValue(32, TestConstants.FooBar, 0xe2f34cdf), + new KnownValue(32, TestConstants.LoremIpsum.Take(17), 0xe3e27892), + new KnownValue(32, TestConstants.LoremIpsum, 0x6482ed0d), + }; + + protected override IFarmHashSharpHash32 CreateHashFunction(int hashSize) => + new FarmHashSharpHash32_Implementation(); + } + } +} diff --git a/src/System.Data.HashFunction.Test.Unsigned/FarmHash/FarmHashSharp/FarmHashSharpHash64Factory_Tests.cs b/src/System.Data.HashFunction.Test.Unsigned/FarmHash/FarmHashSharp/FarmHashSharpHash64Factory_Tests.cs new file mode 100644 index 0000000..c526c14 --- /dev/null +++ b/src/System.Data.HashFunction.Test.Unsigned/FarmHash/FarmHashSharp/FarmHashSharpHash64Factory_Tests.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Data.HashFunction.FarmHash.FarmHashSharp; +using System.Text; +using Xunit; + +namespace System.Data.HashFunction.Test.FarmHash.FarmHashSharp +{ + public class FarmHashSharpHash64Factory_Tests + { + [Fact] + public void FarmHashSharpHash64Factory_Instance_IsDefined() + { + Assert.NotNull(FarmHashSharpHash64Factory.Instance); + Assert.IsType(FarmHashSharpHash64Factory.Instance); + } + + [Fact] + public void FarmHashSharpHash64Factory_Create_Works() + { + var farmHashSharpHash64Factory = FarmHashSharpHash64Factory.Instance; + var farmHashSharpHash64 = farmHashSharpHash64Factory.Create(); + + Assert.NotNull(farmHashSharpHash64); + Assert.IsType(farmHashSharpHash64); + } + + } +} diff --git a/src/System.Data.HashFunction.Test.Unsigned/FarmHash/FarmHashSharp/FarmHashSharpHash64_Implementation_Tests.cs b/src/System.Data.HashFunction.Test.Unsigned/FarmHash/FarmHashSharp/FarmHashSharpHash64_Implementation_Tests.cs new file mode 100644 index 0000000..26105ac --- /dev/null +++ b/src/System.Data.HashFunction.Test.Unsigned/FarmHash/FarmHashSharp/FarmHashSharpHash64_Implementation_Tests.cs @@ -0,0 +1,58 @@ +using System; +using System.Collections.Generic; +using System.Data.HashFunction.FarmHash.FarmHashSharp; +using System.Data.HashFunction.Test._Utilities; +using System.Linq; +using System.Text; +using Xunit; + +namespace System.Data.HashFunction.Test.FarmHash.FarmHashSharp +{ + public class FarmHashSharpHash64_Implementation_Tests + { + + #region Constructor + + [Fact] + public void FarmHashSharpHash64_Implementation_Constructor_Works() + { + GC.KeepAlive( + new FarmHashSharpHash64_Implementation()); + } + + #endregion + + #region HashSizeInBits + + [Fact] + public void FarmHashSharpHash64_Implementation_HashSizeInBits_Is64() + { + var farmHash = new FarmHashSharpHash64_Implementation(); + + Assert.Equal(64, farmHash.HashSizeInBits); + } + + #endregion + + + + public class IHashFunctionAsync_Tests + : IHashFunctionAsync_TestBase + { + protected override IEnumerable KnownValues { get; } = + new KnownValue[] { + new KnownValue(64, TestConstants.Empty, 0x9ae16a3b2f90404f), + new KnownValue(64, TestConstants.FooBar.Take(3), 0x555c6f602f9383e3), + new KnownValue(64, TestConstants.FooBar, 0xc43fb29ab5effcfe), + new KnownValue(64, TestConstants.LoremIpsum.Take(13), 0x54145170e3383fcc), + new KnownValue(64, TestConstants.LoremIpsum.Take(17), 0xbb25bd7ca089d86), + new KnownValue(64, TestConstants.LoremIpsum.Take(31), 0xd96b0e9e5ce7b4ad), + new KnownValue(64, TestConstants.LoremIpsum.Take(50), 0x13540d7f3372fbc8), + new KnownValue(64, TestConstants.LoremIpsum, 0x7975a177275d65bf), + }; + + protected override IFarmHashSharpHash64 CreateHashFunction(int hashSize) => + new FarmHashSharpHash64_Implementation(); + } + } +} diff --git a/src/System.Data.HashFunction.Test.Unsigned/System.Data.HashFunction.Test.Unsigned.csproj b/src/System.Data.HashFunction.Test.Unsigned/System.Data.HashFunction.Test.Unsigned.csproj new file mode 100644 index 0000000..3b54cf1 --- /dev/null +++ b/src/System.Data.HashFunction.Test.Unsigned/System.Data.HashFunction.Test.Unsigned.csproj @@ -0,0 +1,61 @@ + + + + Test suite for Data.HashFunction implementations. + Copyright 2018 + Data.HashFunction.Test.Unsigned + 2.0.0 + Data.HashFunction Developers + netcoreapp1.1 + $(NoWarn);CS1591 + System.Data.HashFunction.Test.Unsigned + ../Data.HashFunction.Production.snk + false + false + System.Data.HashFunction.Test.Unsigned + true + 1.1.1 + false + false + + + + full + True + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/System.Data.HashFunction.Test.Unsigned/packages.config b/src/System.Data.HashFunction.Test.Unsigned/packages.config new file mode 100644 index 0000000..14f456c --- /dev/null +++ b/src/System.Data.HashFunction.Test.Unsigned/packages.config @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/src/System.Data.HashFunction.Test/_Utilities/TestConstants.cs b/src/System.Data.HashFunction.Test/_Utilities/TestConstants.cs index ae24c65..cc87502 100644 --- a/src/System.Data.HashFunction.Test/_Utilities/TestConstants.cs +++ b/src/System.Data.HashFunction.Test/_Utilities/TestConstants.cs @@ -7,7 +7,7 @@ namespace System.Data.HashFunction.Test._Utilities { - internal sealed class TestConstants + public sealed class TestConstants { // Constant values available for KnownValues to use. public static readonly byte[] Empty = new byte[0];