public async Task BasicHash() { var strings = new[] { "This is string1\n", "This is string2\n", "This is string 3\n" }; byte[][] buffers = strings.Select(x => Encoding.UTF8.GetBytes(x)).ToArray(); var b = buffers.AsBucket(true); var r = await b.ReadSkipAsync(1024); Assert.AreEqual(49L, r); b.Reset(); byte[]? hashResult = null; var c = b.MD5(r => hashResult = r); r = await c.ReadSkipAsync(1024); Assert.AreEqual(49L, r); Assert.IsNotNull(hashResult); Assert.AreEqual("E358B5530A87E41AF9168B4F45548AFC", TestExtensions.FormatHash(hashResult)); b.Reset(); hashResult = null; var c2 = b.SHA1(r => hashResult = r); r = await c2.ReadSkipAsync(1024); Assert.AreEqual(49L, r); Assert.IsNotNull(hashResult); Assert.AreEqual("D9F7CE90FB58072D8A68F69A0CB30C133F9B08CB", TestExtensions.FormatHash(hashResult)); c2.Reset(); r = await c2.ReadSkipAsync(1024); Assert.AreEqual(49L, r); Assert.IsNotNull(hashResult); Assert.AreEqual("D9F7CE90FB58072D8A68F69A0CB30C133F9B08CB", TestExtensions.FormatHash(hashResult)); #if NET5_0_OR_GREATER { var rr = MD5.HashData(Encoding.ASCII.GetBytes(string.Join("", strings))); Assert.AreEqual("E358B5530A87E41AF9168B4F45548AFC", TestExtensions.FormatHash(rr)); rr = SHA1.HashData(Encoding.ASCII.GetBytes(string.Join("", strings))); Assert.AreEqual("D9F7CE90FB58072D8A68F69A0CB30C133F9B08CB", TestExtensions.FormatHash(rr)); } #endif }