예제 #1
0
 public void ObjectEqualsTest()
 {
     foreach (long highBitsX in new long[] { 0L, 0x12345678L, 0x32L })
     {
         foreach (long lowBitsX in new long[] { 0L, 0x12345678L, 0x32L })
         {
             object targetX = new MD5Checksum(GetByteArray(lowBitsX, highBitsX));
             foreach (long highBitsY in new long[] { 0L, 0x12345678L, 0x32L })
             {
                 foreach (long lowBitsY in new long[] { 0L, 0x12345678L, 0x32L })
                 {
                     object targetY = new MD5Checksum(GetByteArray(lowBitsY, highBitsY));
                     if (highBitsX == highBitsY && lowBitsX == lowBitsY)
                     {
                         Assert.True(targetX.Equals(targetY));
                         Assert.True(targetY.Equals(targetX));
                         Assert.Equal(targetX, targetY);
                     }
                     else
                     {
                         Assert.False(targetX.Equals(targetY));
                         Assert.False(targetY.Equals(targetX));
                         Assert.NotEqual(targetX, targetY);
                     }
                 }
             }
         }
     }
 }
 public IFileStats ValidateChecksum(long length, MD5Checksum checksum, DateTime lastCalculated)
 {
     lastCalculated = FileStats.NormalizeDateTime(lastCalculated);
     if (length == _md5.Length && checksum.Equals(_md5.Checksum))
     {
         return((lastCalculated.Equals(_lastCompared)) ? (IFileCompareStats)(new FileCompareStats(_md5.Length, lastCalculated, checksum, _groupID)) : new FileCompareStatsVerifiedMD5(this, lastCalculated));
     }
     return(new FileMD5Stats(_md5.Length, lastCalculated, _md5.Checksum));
 }
 IFileMD5Stats IFileStats.WithMD5(DateTime calculated, MD5Checksum checksum)
 {
     calculated = FileStats.NormalizeDateTime(calculated);
     if (_md5.LastCalculatedUTC.Equals(calculated))
     {
         if (checksum.Equals(_md5.Checksum))
         {
             return(this);
         }
         return(new FileCompareStatsVerifiedMD5(_md5.Length, calculated, checksum, _groupID, _lastCompared));
     }
     if (_lastCompared.Equals(calculated))
     {
         return(new FileCompareStatsVerifiedLength(_md5.Length, _md5.LastCalculatedUTC, checksum, _groupID, calculated));
     }
     return(new FileCompareStatusReverified(_md5.Length, _md5.LastCalculatedUTC, checksum, calculated, _groupID, _lastCompared));
 }
예제 #4
0
 public bool Equals(FileMD5Stats other) => _checksum.Equals(other._checksum) && _fileStats.Equals(other._fileStats);
예제 #5
0
 public bool Equals(FileComparisonInfo other) => _comparisonGroupID.Equals(other._comparisonGroupID) && _checksum.Equals(other._checksum);
예제 #6
0
 public bool Equals(FileMD5StatsVerifiedLength other) => _checksum.Equals(other._checksum) && _lastCalculated.Equals(other._lastCalculated) && _fileStats.Equals(other._fileStats);