Example #1
0
 public void GetContentsHash()
 {
     {
         System.IO.Stream stream1 = this.getRandomStream(54611);
         System.IO.Stream stream2 = this.getRandomStream(54611);
         Hash256          hash1   = Hash256.GetContentsHash(stream1);
         Hash256          hash2   = Hash256.GetContentsHash(stream2);
         Assert.AreEqual(hash1, hash2);
         Assert.AreEqual(hash1.GetHashCode(), hash2.GetHashCode());
     }
     {
         System.IO.Stream stream1 = this.getRandomStream(54600);
         System.IO.Stream stream2 = this.getRandomStream(54611);
         Hash256          hash1   = Hash256.GetContentsHash(stream1);
         Hash256          hash2   = Hash256.GetContentsHash(stream2);
         Assert.AreNotEqual(hash1, hash2);
         Assert.AreNotEqual(hash1.GetHashCode(), hash2.GetHashCode());
     }
     {
         Random         random1a   = new Random(123151);
         Random         random1b   = new Random(123151);
         Random         random1c   = new Random(123151);
         Random         random2    = new Random(9876);
         MockFileSystem fileSystem = new MockFileSystem(new Dictionary <string, MockFileData>()
         {
             { "getfilehashtest1a.file", new MockFileData(Enumerable.Range(0, 10240).Select((i) => (byte)random1a.Next(256)).ToArray()) },
             { "getfilehashtest1b.file", new MockFileData(Enumerable.Range(0, 10240).Select((i) => (byte)random1b.Next(256)).ToArray()) },
             { "getfilehashtest1c.file", new MockFileData(Enumerable.Range(0, 10241).Select((i) => (byte)random1c.Next(256)).ToArray()) },
             { "getfilehashtest2.file", new MockFileData(Enumerable.Range(0, 10240).Select((i) => (byte)random2.Next(256)).ToArray()) },
         });
         Hash256 hash1a = Hash256.GetContentsHash(fileSystem.File.OpenRead("getfilehashtest1a.file"));
         Hash256 hash1b = Hash256.GetContentsHash(fileSystem.File.OpenRead("getfilehashtest1b.file"));
         Hash256 hash1c = Hash256.GetContentsHash(fileSystem.File.OpenRead("getfilehashtest1c.file"));
         Hash256 hash2  = Hash256.GetContentsHash(fileSystem.File.OpenRead("getfilehashtest2.file"));
         Assert.AreEqual(hash1a, hash1b);
         Assert.AreNotEqual(hash1a, hash1c);
         Assert.AreNotEqual(hash1a, hash2);
         Assert.AreNotEqual(hash1c, hash2);
         Assert.AreEqual(new Hash256(-4503150692253193366, -4589931198477819425, -7393329944829092212, 1525878695725488611), hash1a);
         Assert.AreEqual("c181984dda31ab6ac04d49e4bb3f21df99659d9633341e8c152d0296dd0dd9e3", hash1a.ToString());
         Assert.AreEqual(new Hash256(-4503150692253193366, -4589931198477819425, -7393329944829092212, 1525878695725488611), hash1b);
         Assert.AreEqual("c181984dda31ab6ac04d49e4bb3f21df99659d9633341e8c152d0296dd0dd9e3", hash1b.ToString());
         Assert.AreEqual(new Hash256(4050519298861383970, -7596970268443003904, -6680004443397598450, -8393995096044701854), hash1c);
         Assert.AreEqual("383655d77c7f4122969223ca94403400a34bdb59d541530e8b8289eef5e27762", hash1c.ToString());
         Assert.AreEqual(new Hash256(8844761264859441472, 3207933974862152339, 7733136889014184772, 1800345724947963099), hash2);
         Assert.AreEqual("7abee7824314e9402c84def42a90c2936b519f075528eb4418fc1ce5f06a9cdb", hash2.ToString());
     }
 }