From bc83556a0d8b1405b780901f0e23cbc8b97b2364 Mon Sep 17 00:00:00 2001 From: Brandon Dahler Date: Tue, 3 Apr 2018 02:15:54 +0100 Subject: [PATCH 1/2] Updates --- src/Data.HashFunction.sln | 15 ++++- src/FriendAssemblies.Unsigned.cs | 7 +++ .../FarmHashSharp32Factory.cs | 39 ++++++++++++ .../FarmHashSharp32_Implementation.cs | 40 ++++++++++++ .../FarmHashSharp64Factory.cs | 39 ++++++++++++ .../FarmHashSharp64_Implementation.cs | 40 ++++++++++++ .../IFarmHashSharp32.cs | 15 +++++ .../IFarmHashSharp32Factory.cs | 19 ++++++ .../IFarmHashSharp64.cs | 15 +++++ .../IFarmHashSharp64Factory.cs | 19 ++++++ ...HashFunction.FarmHash.FarmHashSharp.csproj | 51 ++++++++++++++++ .../App.config | 6 ++ .../FarmHashSharp32Factory_Tests.cs | 29 +++++++++ .../FarmHashSharp32_Implementation_Tests.cs | 55 +++++++++++++++++ .../FarmHashSharp64Factory_Tests.cs | 29 +++++++++ .../FarmHashSharp64_Implementation_Tests.cs | 57 +++++++++++++++++ ...tem.Data.HashFunction.Test.Unsigned.csproj | 61 +++++++++++++++++++ .../packages.config | 12 ++++ .../_Utilities/TestConstants.cs | 2 +- 19 files changed, 548 insertions(+), 2 deletions(-) create mode 100644 src/FriendAssemblies.Unsigned.cs create mode 100644 src/System.Data.HashFunction.FarmHash.FarmHashSharp/FarmHashSharp32Factory.cs create mode 100644 src/System.Data.HashFunction.FarmHash.FarmHashSharp/FarmHashSharp32_Implementation.cs create mode 100644 src/System.Data.HashFunction.FarmHash.FarmHashSharp/FarmHashSharp64Factory.cs create mode 100644 src/System.Data.HashFunction.FarmHash.FarmHashSharp/FarmHashSharp64_Implementation.cs create mode 100644 src/System.Data.HashFunction.FarmHash.FarmHashSharp/IFarmHashSharp32.cs create mode 100644 src/System.Data.HashFunction.FarmHash.FarmHashSharp/IFarmHashSharp32Factory.cs create mode 100644 src/System.Data.HashFunction.FarmHash.FarmHashSharp/IFarmHashSharp64.cs create mode 100644 src/System.Data.HashFunction.FarmHash.FarmHashSharp/IFarmHashSharp64Factory.cs create mode 100644 src/System.Data.HashFunction.FarmHash.FarmHashSharp/System.Data.HashFunction.FarmHash.FarmHashSharp.csproj create mode 100644 src/System.Data.HashFunction.Test.Unsigned/App.config create mode 100644 src/System.Data.HashFunction.Test.Unsigned/FarmHash/FarmHashSharp/FarmHashSharp32Factory_Tests.cs create mode 100644 src/System.Data.HashFunction.Test.Unsigned/FarmHash/FarmHashSharp/FarmHashSharp32_Implementation_Tests.cs create mode 100644 src/System.Data.HashFunction.Test.Unsigned/FarmHash/FarmHashSharp/FarmHashSharp64Factory_Tests.cs create mode 100644 src/System.Data.HashFunction.Test.Unsigned/FarmHash/FarmHashSharp/FarmHashSharp64_Implementation_Tests.cs create mode 100644 src/System.Data.HashFunction.Test.Unsigned/System.Data.HashFunction.Test.Unsigned.csproj create mode 100644 src/System.Data.HashFunction.Test.Unsigned/packages.config diff --git a/src/Data.HashFunction.sln b/src/Data.HashFunction.sln index 77c9da9..e4d591a 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 Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -132,6 +137,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 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE 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/FarmHashSharp32Factory.cs b/src/System.Data.HashFunction.FarmHash.FarmHashSharp/FarmHashSharp32Factory.cs new file mode 100644 index 0000000..55525dc --- /dev/null +++ b/src/System.Data.HashFunction.FarmHash.FarmHashSharp/FarmHashSharp32Factory.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace System.Data.HashFunction.FarmHash.FarmHashSharp +{ + /// + /// Provides instances of implementations of . + /// + public sealed class FarmHashSharp32Factory + : FarmHashFactoryBase, + IFarmHashSharp32Factory + { + /// + /// Gets the singleton instance of this factory. + /// + public static IFarmHashSharp32Factory Instance { get; } = new FarmHashSharp32Factory(); + + + private FarmHashSharp32Factory() + { + + } + + + /// + /// Creates a new instance. + /// + /// A instance. + public override IFarmHashSharp32 Create() => + new FarmHashSharp32_Implementation(); + + /// + /// Creates a new instance. + /// + /// A instance. + IFarmHash32 IFarmHash32Factory.Create() => Create(); + } +} diff --git a/src/System.Data.HashFunction.FarmHash.FarmHashSharp/FarmHashSharp32_Implementation.cs b/src/System.Data.HashFunction.FarmHash.FarmHashSharp/FarmHashSharp32_Implementation.cs new file mode 100644 index 0000000..cff6c45 --- /dev/null +++ b/src/System.Data.HashFunction.FarmHash.FarmHashSharp/FarmHashSharp32_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 FarmHashSharp32_Implementation + : HashFunctionAsyncBase, + IFarmHashSharp32 + { + 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/FarmHashSharp64Factory.cs b/src/System.Data.HashFunction.FarmHash.FarmHashSharp/FarmHashSharp64Factory.cs new file mode 100644 index 0000000..a2fe9ef --- /dev/null +++ b/src/System.Data.HashFunction.FarmHash.FarmHashSharp/FarmHashSharp64Factory.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace System.Data.HashFunction.FarmHash.FarmHashSharp +{ + /// + /// Provides instances of implementations of . + /// + public sealed class FarmHashSharp64Factory + : FarmHashFactoryBase, + IFarmHashSharp64Factory + { + /// + /// Gets the singleton instance of this factory. + /// + public static IFarmHashSharp64Factory Instance { get; } = new FarmHashSharp64Factory(); + + + private FarmHashSharp64Factory() + { + + } + + + /// + /// Creates a new instance. + /// + /// A instance. + public override IFarmHashSharp64 Create() => + new FarmHashSharp64_Implementation(); + + /// + /// Creates a new instance. + /// + /// A instance. + IFarmHash64 IFarmHash64Factory.Create() => Create(); + } +} diff --git a/src/System.Data.HashFunction.FarmHash.FarmHashSharp/FarmHashSharp64_Implementation.cs b/src/System.Data.HashFunction.FarmHash.FarmHashSharp/FarmHashSharp64_Implementation.cs new file mode 100644 index 0000000..3537c5d --- /dev/null +++ b/src/System.Data.HashFunction.FarmHash.FarmHashSharp/FarmHashSharp64_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 FarmHashSharp64_Implementation + : HashFunctionAsyncBase, + IFarmHashSharp64 + { + 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/IFarmHashSharp32.cs b/src/System.Data.HashFunction.FarmHash.FarmHashSharp/IFarmHashSharp32.cs new file mode 100644 index 0000000..58ffcb6 --- /dev/null +++ b/src/System.Data.HashFunction.FarmHash.FarmHashSharp/IFarmHashSharp32.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 IFarmHashSharp32 + : IFarmHash32 + { + + } +} diff --git a/src/System.Data.HashFunction.FarmHash.FarmHashSharp/IFarmHashSharp32Factory.cs b/src/System.Data.HashFunction.FarmHash.FarmHashSharp/IFarmHashSharp32Factory.cs new file mode 100644 index 0000000..44e4f46 --- /dev/null +++ b/src/System.Data.HashFunction.FarmHash.FarmHashSharp/IFarmHashSharp32Factory.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 IFarmHashSharp32Factory + : IFarmHash32Factory + { + /// + /// Creates a new instance. + /// + /// A instance. + new IFarmHashSharp32 Create(); + } +} diff --git a/src/System.Data.HashFunction.FarmHash.FarmHashSharp/IFarmHashSharp64.cs b/src/System.Data.HashFunction.FarmHash.FarmHashSharp/IFarmHashSharp64.cs new file mode 100644 index 0000000..b62b1f1 --- /dev/null +++ b/src/System.Data.HashFunction.FarmHash.FarmHashSharp/IFarmHashSharp64.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 IFarmHashSharp64 + : IFarmHash64 + { + + } +} diff --git a/src/System.Data.HashFunction.FarmHash.FarmHashSharp/IFarmHashSharp64Factory.cs b/src/System.Data.HashFunction.FarmHash.FarmHashSharp/IFarmHashSharp64Factory.cs new file mode 100644 index 0000000..4158576 --- /dev/null +++ b/src/System.Data.HashFunction.FarmHash.FarmHashSharp/IFarmHashSharp64Factory.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 IFarmHashSharp64Factory + : IFarmHash64Factory + { + /// + /// Creates a new instance. + /// + /// A instance. + new IFarmHashSharp64 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/FarmHashSharp32Factory_Tests.cs b/src/System.Data.HashFunction.Test.Unsigned/FarmHash/FarmHashSharp/FarmHashSharp32Factory_Tests.cs new file mode 100644 index 0000000..49f4ed3 --- /dev/null +++ b/src/System.Data.HashFunction.Test.Unsigned/FarmHash/FarmHashSharp/FarmHashSharp32Factory_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 FarmHashSharp32Factory_Tests + { + [Fact] + public void FarmHashSharp32Factory_Instance_IsDefined() + { + Assert.NotNull(FarmHashSharp32Factory.Instance); + Assert.IsType(FarmHashSharp32Factory.Instance); + } + + [Fact] + public void FarmHashSharp32Factory_Create_Works() + { + var farmHashSharp32Factory = FarmHashSharp32Factory.Instance; + var farmHashSharp32 = farmHashSharp32Factory.Create(); + + Assert.NotNull(farmHashSharp32); + Assert.IsType(farmHashSharp32); + } + + } +} diff --git a/src/System.Data.HashFunction.Test.Unsigned/FarmHash/FarmHashSharp/FarmHashSharp32_Implementation_Tests.cs b/src/System.Data.HashFunction.Test.Unsigned/FarmHash/FarmHashSharp/FarmHashSharp32_Implementation_Tests.cs new file mode 100644 index 0000000..ff6c439 --- /dev/null +++ b/src/System.Data.HashFunction.Test.Unsigned/FarmHash/FarmHashSharp/FarmHashSharp32_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 FarmHashSharp32_Implementation_Tests + { + + #region Constructor + + [Fact] + public void FarmHashSharp32_Implementation_Constructor_Works() + { + GC.KeepAlive( + new FarmHashSharp32_Implementation()); + } + + #endregion + + #region HashSizeInBits + + [Fact] + public void FarmHashSharp32_Implementation_HashSizeInBits_Is32() + { + var farmHash = new FarmHashSharp32_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 IFarmHashSharp32 CreateHashFunction(int hashSize) => + new FarmHashSharp32_Implementation(); + } + } +} diff --git a/src/System.Data.HashFunction.Test.Unsigned/FarmHash/FarmHashSharp/FarmHashSharp64Factory_Tests.cs b/src/System.Data.HashFunction.Test.Unsigned/FarmHash/FarmHashSharp/FarmHashSharp64Factory_Tests.cs new file mode 100644 index 0000000..74723ba --- /dev/null +++ b/src/System.Data.HashFunction.Test.Unsigned/FarmHash/FarmHashSharp/FarmHashSharp64Factory_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 FarmHashSharp64Factory_Tests + { + [Fact] + public void FarmHashSharp64Factory_Instance_IsDefined() + { + Assert.NotNull(FarmHashSharp64Factory.Instance); + Assert.IsType(FarmHashSharp64Factory.Instance); + } + + [Fact] + public void FarmHashSharp64Factory_Create_Works() + { + var farmHashSharp64Factory = FarmHashSharp64Factory.Instance; + var farmHashSharp64 = farmHashSharp64Factory.Create(); + + Assert.NotNull(farmHashSharp64); + Assert.IsType(farmHashSharp64); + } + + } +} diff --git a/src/System.Data.HashFunction.Test.Unsigned/FarmHash/FarmHashSharp/FarmHashSharp64_Implementation_Tests.cs b/src/System.Data.HashFunction.Test.Unsigned/FarmHash/FarmHashSharp/FarmHashSharp64_Implementation_Tests.cs new file mode 100644 index 0000000..a9ce7d7 --- /dev/null +++ b/src/System.Data.HashFunction.Test.Unsigned/FarmHash/FarmHashSharp/FarmHashSharp64_Implementation_Tests.cs @@ -0,0 +1,57 @@ +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 FarmHashSharp64_Implementation_Tests + { + + #region Constructor + + [Fact] + public void FarmHashSharp64_Implementation_Constructor_Works() + { + GC.KeepAlive( + new FarmHashSharp64_Implementation()); + } + + #endregion + + #region HashSizeInBits + + [Fact] + public void FarmHashSharp64_Implementation_HashSizeInBits_Is64() + { + var farmHash = new FarmHashSharp64_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(50), 0x5462bf74ef4729b1), + new KnownValue(64, TestConstants.LoremIpsum, 0x7975a177275d65bf), + }; + + protected override IFarmHashSharp64 CreateHashFunction(int hashSize) => + new FarmHashSharp64_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]; From a1e3881c7e56d567eab689988a8f0d0385923580 Mon Sep 17 00:00:00 2001 From: Brandon Dahler Date: Mon, 2 Apr 2018 23:06:43 -0500 Subject: [PATCH 2/2] Updated interfaces --- .../FarmHashSharp32Factory.cs | 39 ------------ .../FarmHashSharp64Factory.cs | 39 ------------ .../FarmHashSharpHash32Factory.cs | 33 ++++++++++ ... => FarmHashSharpHash32_Implementation.cs} | 6 +- .../FarmHashSharpHash64Factory.cs | 33 ++++++++++ ... => FarmHashSharpHash64_Implementation.cs} | 6 +- .../IFarmHashSharp32Factory.cs | 19 ------ .../IFarmHashSharp64Factory.cs | 19 ------ ...HashSharp64.cs => IFarmHashSharpHash32.cs} | 6 +- .../IFarmHashSharpHash32Factory.cs | 19 ++++++ ...HashSharp32.cs => IFarmHashSharpHash64.cs} | 6 +- .../IFarmHashSharpHash64Factory.cs | 19 ++++++ .../FarmHashFingerprintFactoryBase.cs | 21 ------- .../FarmHashSharp32Factory_Tests.cs | 29 --------- .../FarmHashSharp64Factory_Tests.cs | 29 --------- .../FarmHashSharpHash32Factory_Tests.cs | 29 +++++++++ ...rmHashSharpHash32_Implementation_Tests.cs} | 16 ++--- .../FarmHashSharpHash64Factory_Tests.cs | 29 +++++++++ ...rmHashSharpHash64_Implementation_Tests.cs} | 19 +++--- .../FarmHashFingerprintFactoryBase_Tests.cs | 61 ------------------- 20 files changed, 192 insertions(+), 285 deletions(-) delete mode 100644 src/System.Data.HashFunction.FarmHash.FarmHashSharp/FarmHashSharp32Factory.cs delete mode 100644 src/System.Data.HashFunction.FarmHash.FarmHashSharp/FarmHashSharp64Factory.cs create mode 100644 src/System.Data.HashFunction.FarmHash.FarmHashSharp/FarmHashSharpHash32Factory.cs rename src/System.Data.HashFunction.FarmHash.FarmHashSharp/{FarmHashSharp32_Implementation.cs => FarmHashSharpHash32_Implementation.cs} (89%) create mode 100644 src/System.Data.HashFunction.FarmHash.FarmHashSharp/FarmHashSharpHash64Factory.cs rename src/System.Data.HashFunction.FarmHash.FarmHashSharp/{FarmHashSharp64_Implementation.cs => FarmHashSharpHash64_Implementation.cs} (89%) delete mode 100644 src/System.Data.HashFunction.FarmHash.FarmHashSharp/IFarmHashSharp32Factory.cs delete mode 100644 src/System.Data.HashFunction.FarmHash.FarmHashSharp/IFarmHashSharp64Factory.cs rename src/System.Data.HashFunction.FarmHash.FarmHashSharp/{IFarmHashSharp64.cs => IFarmHashSharpHash32.cs} (67%) create mode 100644 src/System.Data.HashFunction.FarmHash.FarmHashSharp/IFarmHashSharpHash32Factory.cs rename src/System.Data.HashFunction.FarmHash.FarmHashSharp/{IFarmHashSharp32.cs => IFarmHashSharpHash64.cs} (67%) create mode 100644 src/System.Data.HashFunction.FarmHash.FarmHashSharp/IFarmHashSharpHash64Factory.cs delete mode 100644 src/System.Data.HashFunction.FarmHash/FarmHashFingerprintFactoryBase.cs delete mode 100644 src/System.Data.HashFunction.Test.Unsigned/FarmHash/FarmHashSharp/FarmHashSharp32Factory_Tests.cs delete mode 100644 src/System.Data.HashFunction.Test.Unsigned/FarmHash/FarmHashSharp/FarmHashSharp64Factory_Tests.cs create mode 100644 src/System.Data.HashFunction.Test.Unsigned/FarmHash/FarmHashSharp/FarmHashSharpHash32Factory_Tests.cs rename src/System.Data.HashFunction.Test.Unsigned/FarmHash/FarmHashSharp/{FarmHashSharp32_Implementation_Tests.cs => FarmHashSharpHash32_Implementation_Tests.cs} (67%) create mode 100644 src/System.Data.HashFunction.Test.Unsigned/FarmHash/FarmHashSharp/FarmHashSharpHash64Factory_Tests.cs rename src/System.Data.HashFunction.Test.Unsigned/FarmHash/FarmHashSharp/{FarmHashSharp64_Implementation_Tests.cs => FarmHashSharpHash64_Implementation_Tests.cs} (66%) delete mode 100644 src/System.Data.HashFunction.Test/FarmHash/FarmHashFingerprintFactoryBase_Tests.cs diff --git a/src/System.Data.HashFunction.FarmHash.FarmHashSharp/FarmHashSharp32Factory.cs b/src/System.Data.HashFunction.FarmHash.FarmHashSharp/FarmHashSharp32Factory.cs deleted file mode 100644 index 55525dc..0000000 --- a/src/System.Data.HashFunction.FarmHash.FarmHashSharp/FarmHashSharp32Factory.cs +++ /dev/null @@ -1,39 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace System.Data.HashFunction.FarmHash.FarmHashSharp -{ - /// - /// Provides instances of implementations of . - /// - public sealed class FarmHashSharp32Factory - : FarmHashFactoryBase, - IFarmHashSharp32Factory - { - /// - /// Gets the singleton instance of this factory. - /// - public static IFarmHashSharp32Factory Instance { get; } = new FarmHashSharp32Factory(); - - - private FarmHashSharp32Factory() - { - - } - - - /// - /// Creates a new instance. - /// - /// A instance. - public override IFarmHashSharp32 Create() => - new FarmHashSharp32_Implementation(); - - /// - /// Creates a new instance. - /// - /// A instance. - IFarmHash32 IFarmHash32Factory.Create() => Create(); - } -} diff --git a/src/System.Data.HashFunction.FarmHash.FarmHashSharp/FarmHashSharp64Factory.cs b/src/System.Data.HashFunction.FarmHash.FarmHashSharp/FarmHashSharp64Factory.cs deleted file mode 100644 index a2fe9ef..0000000 --- a/src/System.Data.HashFunction.FarmHash.FarmHashSharp/FarmHashSharp64Factory.cs +++ /dev/null @@ -1,39 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace System.Data.HashFunction.FarmHash.FarmHashSharp -{ - /// - /// Provides instances of implementations of . - /// - public sealed class FarmHashSharp64Factory - : FarmHashFactoryBase, - IFarmHashSharp64Factory - { - /// - /// Gets the singleton instance of this factory. - /// - public static IFarmHashSharp64Factory Instance { get; } = new FarmHashSharp64Factory(); - - - private FarmHashSharp64Factory() - { - - } - - - /// - /// Creates a new instance. - /// - /// A instance. - public override IFarmHashSharp64 Create() => - new FarmHashSharp64_Implementation(); - - /// - /// Creates a new instance. - /// - /// A instance. - IFarmHash64 IFarmHash64Factory.Create() => Create(); - } -} 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/FarmHashSharp32_Implementation.cs b/src/System.Data.HashFunction.FarmHash.FarmHashSharp/FarmHashSharpHash32_Implementation.cs similarity index 89% rename from src/System.Data.HashFunction.FarmHash.FarmHashSharp/FarmHashSharp32_Implementation.cs rename to src/System.Data.HashFunction.FarmHash.FarmHashSharp/FarmHashSharpHash32_Implementation.cs index cff6c45..28d001a 100644 --- a/src/System.Data.HashFunction.FarmHash.FarmHashSharp/FarmHashSharp32_Implementation.cs +++ b/src/System.Data.HashFunction.FarmHash.FarmHashSharp/FarmHashSharpHash32_Implementation.cs @@ -11,11 +11,11 @@ namespace System.Data.HashFunction.FarmHash.FarmHashSharp using Farmhash = global::Farmhash.Sharp.Farmhash; /// - /// Data.HashFunction implementation of via FarmHash.Sharp's Hash32 method. + /// Data.HashFunction implementation of via FarmHash.Sharp's Hash32 method. /// - internal class FarmHashSharp32_Implementation + internal class FarmHashSharpHash32_Implementation : HashFunctionAsyncBase, - IFarmHashSharp32 + IFarmHashSharpHash32 { public override int HashSizeInBits { get; } = 32; 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/FarmHashSharp64_Implementation.cs b/src/System.Data.HashFunction.FarmHash.FarmHashSharp/FarmHashSharpHash64_Implementation.cs similarity index 89% rename from src/System.Data.HashFunction.FarmHash.FarmHashSharp/FarmHashSharp64_Implementation.cs rename to src/System.Data.HashFunction.FarmHash.FarmHashSharp/FarmHashSharpHash64_Implementation.cs index 3537c5d..79a6536 100644 --- a/src/System.Data.HashFunction.FarmHash.FarmHashSharp/FarmHashSharp64_Implementation.cs +++ b/src/System.Data.HashFunction.FarmHash.FarmHashSharp/FarmHashSharpHash64_Implementation.cs @@ -11,11 +11,11 @@ namespace System.Data.HashFunction.FarmHash.FarmHashSharp using Farmhash = global::Farmhash.Sharp.Farmhash; /// - /// Data.HashFunction implementation of via FarmHash.Sharp's Hash32 method. + /// Data.HashFunction implementation of via FarmHash.Sharp's Hash32 method. /// - internal class FarmHashSharp64_Implementation + internal class FarmHashSharpHash64_Implementation : HashFunctionAsyncBase, - IFarmHashSharp64 + IFarmHashSharpHash64 { public override int HashSizeInBits { get; } = 64; diff --git a/src/System.Data.HashFunction.FarmHash.FarmHashSharp/IFarmHashSharp32Factory.cs b/src/System.Data.HashFunction.FarmHash.FarmHashSharp/IFarmHashSharp32Factory.cs deleted file mode 100644 index 44e4f46..0000000 --- a/src/System.Data.HashFunction.FarmHash.FarmHashSharp/IFarmHashSharp32Factory.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace System.Data.HashFunction.FarmHash.FarmHashSharp -{ - /// - /// Provides instances of implementations of . - /// - public interface IFarmHashSharp32Factory - : IFarmHash32Factory - { - /// - /// Creates a new instance. - /// - /// A instance. - new IFarmHashSharp32 Create(); - } -} diff --git a/src/System.Data.HashFunction.FarmHash.FarmHashSharp/IFarmHashSharp64Factory.cs b/src/System.Data.HashFunction.FarmHash.FarmHashSharp/IFarmHashSharp64Factory.cs deleted file mode 100644 index 4158576..0000000 --- a/src/System.Data.HashFunction.FarmHash.FarmHashSharp/IFarmHashSharp64Factory.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace System.Data.HashFunction.FarmHash.FarmHashSharp -{ - /// - /// Provides instances of implementations of . - /// - public interface IFarmHashSharp64Factory - : IFarmHash64Factory - { - /// - /// Creates a new instance. - /// - /// A instance. - new IFarmHashSharp64 Create(); - } -} diff --git a/src/System.Data.HashFunction.FarmHash.FarmHashSharp/IFarmHashSharp64.cs b/src/System.Data.HashFunction.FarmHash.FarmHashSharp/IFarmHashSharpHash32.cs similarity index 67% rename from src/System.Data.HashFunction.FarmHash.FarmHashSharp/IFarmHashSharp64.cs rename to src/System.Data.HashFunction.FarmHash.FarmHashSharp/IFarmHashSharpHash32.cs index b62b1f1..c936f44 100644 --- a/src/System.Data.HashFunction.FarmHash.FarmHashSharp/IFarmHashSharp64.cs +++ b/src/System.Data.HashFunction.FarmHash.FarmHashSharp/IFarmHashSharpHash32.cs @@ -5,10 +5,10 @@ namespace System.Data.HashFunction.FarmHash.FarmHashSharp { /// - /// Data.HashFunction implementation of via FarmHash.Sharp's Hash64 method. + /// Data.HashFunction implementation of via FarmHash.Sharp's Hash32 method. /// - public interface IFarmHashSharp64 - : IFarmHash64 + 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/IFarmHashSharp32.cs b/src/System.Data.HashFunction.FarmHash.FarmHashSharp/IFarmHashSharpHash64.cs similarity index 67% rename from src/System.Data.HashFunction.FarmHash.FarmHashSharp/IFarmHashSharp32.cs rename to src/System.Data.HashFunction.FarmHash.FarmHashSharp/IFarmHashSharpHash64.cs index 58ffcb6..fbccb11 100644 --- a/src/System.Data.HashFunction.FarmHash.FarmHashSharp/IFarmHashSharp32.cs +++ b/src/System.Data.HashFunction.FarmHash.FarmHashSharp/IFarmHashSharpHash64.cs @@ -5,10 +5,10 @@ namespace System.Data.HashFunction.FarmHash.FarmHashSharp { /// - /// Data.HashFunction implementation of via FarmHash.Sharp's Hash32 method. + /// Data.HashFunction implementation of via FarmHash.Sharp's Hash64 method. /// - public interface IFarmHashSharp32 - : IFarmHash32 + 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/FarmHashFingerprintFactoryBase.cs b/src/System.Data.HashFunction.FarmHash/FarmHashFingerprintFactoryBase.cs deleted file mode 100644 index 707dea5..0000000 --- a/src/System.Data.HashFunction.FarmHash/FarmHashFingerprintFactoryBase.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace System.Data.HashFunction.FarmHash -{ - /// - /// Base implementation to provide instances of implementations of . - /// - public abstract class FarmHashFingerprintFactoryBase - : FarmHashFactoryBase, - IFarmHashFingerprintFactory - where TFarmHashFingerprint : IFarmHashFingerprint - { - /// - /// Creates a new instance. - /// - /// A instance. - IFarmHashFingerprint IFarmHashFingerprintFactory.Create() => Create(); - } -} diff --git a/src/System.Data.HashFunction.Test.Unsigned/FarmHash/FarmHashSharp/FarmHashSharp32Factory_Tests.cs b/src/System.Data.HashFunction.Test.Unsigned/FarmHash/FarmHashSharp/FarmHashSharp32Factory_Tests.cs deleted file mode 100644 index 49f4ed3..0000000 --- a/src/System.Data.HashFunction.Test.Unsigned/FarmHash/FarmHashSharp/FarmHashSharp32Factory_Tests.cs +++ /dev/null @@ -1,29 +0,0 @@ -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 FarmHashSharp32Factory_Tests - { - [Fact] - public void FarmHashSharp32Factory_Instance_IsDefined() - { - Assert.NotNull(FarmHashSharp32Factory.Instance); - Assert.IsType(FarmHashSharp32Factory.Instance); - } - - [Fact] - public void FarmHashSharp32Factory_Create_Works() - { - var farmHashSharp32Factory = FarmHashSharp32Factory.Instance; - var farmHashSharp32 = farmHashSharp32Factory.Create(); - - Assert.NotNull(farmHashSharp32); - Assert.IsType(farmHashSharp32); - } - - } -} diff --git a/src/System.Data.HashFunction.Test.Unsigned/FarmHash/FarmHashSharp/FarmHashSharp64Factory_Tests.cs b/src/System.Data.HashFunction.Test.Unsigned/FarmHash/FarmHashSharp/FarmHashSharp64Factory_Tests.cs deleted file mode 100644 index 74723ba..0000000 --- a/src/System.Data.HashFunction.Test.Unsigned/FarmHash/FarmHashSharp/FarmHashSharp64Factory_Tests.cs +++ /dev/null @@ -1,29 +0,0 @@ -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 FarmHashSharp64Factory_Tests - { - [Fact] - public void FarmHashSharp64Factory_Instance_IsDefined() - { - Assert.NotNull(FarmHashSharp64Factory.Instance); - Assert.IsType(FarmHashSharp64Factory.Instance); - } - - [Fact] - public void FarmHashSharp64Factory_Create_Works() - { - var farmHashSharp64Factory = FarmHashSharp64Factory.Instance; - var farmHashSharp64 = farmHashSharp64Factory.Create(); - - Assert.NotNull(farmHashSharp64); - Assert.IsType(farmHashSharp64); - } - - } -} 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/FarmHashSharp32_Implementation_Tests.cs b/src/System.Data.HashFunction.Test.Unsigned/FarmHash/FarmHashSharp/FarmHashSharpHash32_Implementation_Tests.cs similarity index 67% rename from src/System.Data.HashFunction.Test.Unsigned/FarmHash/FarmHashSharp/FarmHashSharp32_Implementation_Tests.cs rename to src/System.Data.HashFunction.Test.Unsigned/FarmHash/FarmHashSharp/FarmHashSharpHash32_Implementation_Tests.cs index ff6c439..7a1d252 100644 --- a/src/System.Data.HashFunction.Test.Unsigned/FarmHash/FarmHashSharp/FarmHashSharp32_Implementation_Tests.cs +++ b/src/System.Data.HashFunction.Test.Unsigned/FarmHash/FarmHashSharp/FarmHashSharpHash32_Implementation_Tests.cs @@ -8,16 +8,16 @@ namespace System.Data.HashFunction.Test.FarmHash.FarmHashSharp { - public class FarmHashSharp32_Implementation_Tests + public class FarmHashSharpHash32_Implementation_Tests { #region Constructor [Fact] - public void FarmHashSharp32_Implementation_Constructor_Works() + public void FarmHashSharpHash32_Implementation_Constructor_Works() { GC.KeepAlive( - new FarmHashSharp32_Implementation()); + new FarmHashSharpHash32_Implementation()); } #endregion @@ -25,9 +25,9 @@ public void FarmHashSharp32_Implementation_Constructor_Works() #region HashSizeInBits [Fact] - public void FarmHashSharp32_Implementation_HashSizeInBits_Is32() + public void FarmHashSharpHash32_Implementation_HashSizeInBits_Is32() { - var farmHash = new FarmHashSharp32_Implementation(); + var farmHash = new FarmHashSharpHash32_Implementation(); Assert.Equal(32, farmHash.HashSizeInBits); } @@ -37,7 +37,7 @@ public void FarmHashSharp32_Implementation_HashSizeInBits_Is32() public class IHashFunctionAsync_Tests - : IHashFunctionAsync_TestBase + : IHashFunctionAsync_TestBase { protected override IEnumerable KnownValues { get; } = new KnownValue[] { @@ -48,8 +48,8 @@ public class IHashFunctionAsync_Tests new KnownValue(32, TestConstants.LoremIpsum, 0x6482ed0d), }; - protected override IFarmHashSharp32 CreateHashFunction(int hashSize) => - new FarmHashSharp32_Implementation(); + 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/FarmHashSharp64_Implementation_Tests.cs b/src/System.Data.HashFunction.Test.Unsigned/FarmHash/FarmHashSharp/FarmHashSharpHash64_Implementation_Tests.cs similarity index 66% rename from src/System.Data.HashFunction.Test.Unsigned/FarmHash/FarmHashSharp/FarmHashSharp64_Implementation_Tests.cs rename to src/System.Data.HashFunction.Test.Unsigned/FarmHash/FarmHashSharp/FarmHashSharpHash64_Implementation_Tests.cs index a9ce7d7..26105ac 100644 --- a/src/System.Data.HashFunction.Test.Unsigned/FarmHash/FarmHashSharp/FarmHashSharp64_Implementation_Tests.cs +++ b/src/System.Data.HashFunction.Test.Unsigned/FarmHash/FarmHashSharp/FarmHashSharpHash64_Implementation_Tests.cs @@ -8,16 +8,16 @@ namespace System.Data.HashFunction.Test.FarmHash.FarmHashSharp { - public class FarmHashSharp64_Implementation_Tests + public class FarmHashSharpHash64_Implementation_Tests { #region Constructor [Fact] - public void FarmHashSharp64_Implementation_Constructor_Works() + public void FarmHashSharpHash64_Implementation_Constructor_Works() { GC.KeepAlive( - new FarmHashSharp64_Implementation()); + new FarmHashSharpHash64_Implementation()); } #endregion @@ -25,9 +25,9 @@ public void FarmHashSharp64_Implementation_Constructor_Works() #region HashSizeInBits [Fact] - public void FarmHashSharp64_Implementation_HashSizeInBits_Is64() + public void FarmHashSharpHash64_Implementation_HashSizeInBits_Is64() { - var farmHash = new FarmHashSharp64_Implementation(); + var farmHash = new FarmHashSharpHash64_Implementation(); Assert.Equal(64, farmHash.HashSizeInBits); } @@ -37,7 +37,7 @@ public void FarmHashSharp64_Implementation_HashSizeInBits_Is64() public class IHashFunctionAsync_Tests - : IHashFunctionAsync_TestBase + : IHashFunctionAsync_TestBase { protected override IEnumerable KnownValues { get; } = new KnownValue[] { @@ -46,12 +46,13 @@ public class IHashFunctionAsync_Tests 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(50), 0x5462bf74ef4729b1), + new KnownValue(64, TestConstants.LoremIpsum.Take(31), 0xd96b0e9e5ce7b4ad), + new KnownValue(64, TestConstants.LoremIpsum.Take(50), 0x13540d7f3372fbc8), new KnownValue(64, TestConstants.LoremIpsum, 0x7975a177275d65bf), }; - protected override IFarmHashSharp64 CreateHashFunction(int hashSize) => - new FarmHashSharp64_Implementation(); + protected override IFarmHashSharpHash64 CreateHashFunction(int hashSize) => + new FarmHashSharpHash64_Implementation(); } } } diff --git a/src/System.Data.HashFunction.Test/FarmHash/FarmHashFingerprintFactoryBase_Tests.cs b/src/System.Data.HashFunction.Test/FarmHash/FarmHashFingerprintFactoryBase_Tests.cs deleted file mode 100644 index 8f992cb..0000000 --- a/src/System.Data.HashFunction.Test/FarmHash/FarmHashFingerprintFactoryBase_Tests.cs +++ /dev/null @@ -1,61 +0,0 @@ -using Moq; -using System; -using System.Collections.Generic; -using System.Data.HashFunction.FarmHash; -using System.Text; -using Xunit; - -namespace System.Data.HashFunction.Test.FarmHash -{ - public class FarmHashFingerprintFactoryBase_Tests - { - private class FarmHashFingerprintFactoryBase_Implementation - : FarmHashFingerprintFactoryBase - { - private readonly Func _create; - - public FarmHashFingerprintFactoryBase_Implementation(Func create) - { - _create = create; - } - - public override IFarmHashFingerprint32 Create() => _create(); - } - - [Fact] - public void FarmHashFingerprintFactoryBase_IFarmHashFactory_Create_CallsImplementation() - { - var timesCalled = 0; - var expectedFarmHash = Mock.Of(); - - Func create = () => { - timesCalled += 1; - return expectedFarmHash; - }; - - var farmHashFactory = new FarmHashFingerprintFactoryBase_Implementation(create); - var farmHash = ((IFarmHashFactory) farmHashFactory).Create(); - - Assert.Equal(1, timesCalled); - Assert.Equal(expectedFarmHash, farmHash); - } - - [Fact] - public void FarmHashFingerprintFactoryBase_IFarmHashFingerprintFactory_Create_CallsImplementation() - { - var timesCalled = 0; - var expectedFarmHash = Mock.Of(); - - Func create = () => { - timesCalled += 1; - return expectedFarmHash; - }; - - var farmHashFactory = new FarmHashFingerprintFactoryBase_Implementation(create); - var farmHash = ((IFarmHashFingerprintFactory) farmHashFactory).Create(); - - Assert.Equal(1, timesCalled); - Assert.Equal(expectedFarmHash, farmHash); - } - } -}