public static Bytes32[] Union(byte[] bytes) { var result = new Bytes32[bytes.Length / 4]; for (var i = 0; i < result.Length; i++) { result[i] = new Bytes32(bytes, 4 * i); } return(result); }
public void Bytes_32() { var bytes1 = Enumerable.Range(0, 32).Select(i => (byte)i).ToArray(); var bytes2 = Enumerable.Range(0, 32).Select(i => (byte)(3 * i)).ToArray(); var bytes1_u = Bytes32.Union(bytes1); var bytes2_u = Bytes32.Union(bytes2); var sum = bytes1.Zip(bytes2, (x, y) => (byte)(x + y)).ToArray(); var bytes3_u = bytes1_u.Zip(bytes2_u, (x, y) => x + y).ToArray(); var sum_union = Bytes32.Spread(bytes3_u); CollectionAssert.AreEqual(sum, sum_union); }