示例#1
0
        public void IncrementOperatorMegabytes(int fromMegaBytes, int expectedBytes)
        {
            var size = ByteMeasurement.FromMegaBytes(fromMegaBytes);

            size++;
            Assert.Equal(expectedBytes, size.Bytes);
        }
示例#2
0
        public void DecrementOperator(int fromBytes, int expectedBytes)
        {
            var size = ByteMeasurement.FromBytes(fromBytes);

            size--;
            Assert.Equal(expectedBytes, size.Bytes);
        }
示例#3
0
 public void ParseThrowsOnNull()
 {
     Assert.Throws <ArgumentNullException>(() =>
     {
         ByteMeasurement.Parse(null);
     });
 }
示例#4
0
        public void SubtractMethod(int fromBytes, int subtractBytes, int expectedBytes, int expectedBits)
        {
            ByteMeasurement size = ByteMeasurement.FromBytes(fromBytes).Subtract(ByteMeasurement.FromBytes(subtractBytes));

            Assert.Equal(expectedBytes, size.Bytes);
            Assert.Equal(expectedBits, size.Bits);
        }
示例#5
0
        public void AddMethod(int startBytes, int addBytes, int expectedBytes, int expectedBits)
        {
            var             original = ByteMeasurement.FromBytes(startBytes);
            ByteMeasurement result   = original.Add(ByteMeasurement.FromBytes(addBytes));

            Assert.Equal(expectedBytes, result.Bytes);
            Assert.Equal(expectedBits, result.Bits);
        }
示例#6
0
        public static string FormatFileSize(
            this FileInfo info,
            ByteMeasurement format = ByteMeasurement.Auto)
        {
            Check.ArgNotNull(info, nameof(info));

            return(FormatFileSize(info.Length, format));
        }
示例#7
0
        public void ParseBytes()
        {
            string val      = "1B";
            var    expected = ByteMeasurement.FromBytes(1);

            var result = ByteMeasurement.Parse(val);

            Assert.Equal(expected, result);
        }
示例#8
0
        public void ParseKB()
        {
            string val      = "1020KB";
            var    expected = ByteMeasurement.FromKiloBytes(1020);

            var result = ByteMeasurement.Parse(val);

            Assert.Equal(expected, result);
        }
示例#9
0
        public void ParseThrowsOnInvalid()
        {
            string badValue = "Unexpected Value";

            Assert.Throws <FormatException>(() =>
            {
                ByteMeasurement.Parse(badValue);
            });
        }
示例#10
0
        public void ParseDecimalMB()
        {
            string val      = $"{100.5.ToString("N1")}MB";
            var    expected = ByteMeasurement.FromMegaBytes(100.5);

            var result = ByteMeasurement.Parse(val);

            Assert.Equal(expected, result);
        }
示例#11
0
        public void ParsePartialBits()
        {
            string val = "10,5b";

            Assert.Throws <FormatException>(() =>
            {
                ByteMeasurement.Parse(val);
            });
        }
示例#12
0
        public void TryParseWorksWithLotsOfSpaces()
        {
            string val      = " 100 KB ";
            var    expected = ByteMeasurement.FromKiloBytes(100);

            var result = ByteMeasurement.Parse(val);

            Assert.Equal(expected, result);
        }
示例#13
0
        public void TryParseReturnsFalseOnMissingValue()
        {
            string val = "KB";

            bool resultBool = ByteMeasurement.TryParse(val, out ByteMeasurement resultByteMeasurement);

            Assert.False(resultBool);
            Assert.Equal(new ByteMeasurement(), resultByteMeasurement);
        }
示例#14
0
        public void ParsePB()
        {
            string val      = "100PB";
            var    expected = ByteMeasurement.FromPetaBytes(100);

            var result = ByteMeasurement.Parse(val);

            Assert.Equal(expected, result);
        }
示例#15
0
        public void ParseGB()
        {
            string val      = "805GB";
            var    expected = ByteMeasurement.FromGigaBytes(805);

            var result = ByteMeasurement.Parse(val);

            Assert.Equal(expected, result);
        }
示例#16
0
        public void TryParse()
        {
            string val      = "1020KB";
            var    expected = ByteMeasurement.FromKiloBytes(1020);

            bool resultBool = ByteMeasurement.TryParse(val, out ByteMeasurement resultByteMeasurement);

            Assert.True(resultBool);
            Assert.Equal(expected, resultByteMeasurement);
        }
示例#17
0
        //[Theory(DisplayName = "Convert from megabyte manual assert")]
        //[InlineData(25.8, 216426087, 27053260.8, 26419.2, 25.8, 0.0251953125, 0.00002, 0.000000024)]
        //public void ConvertFromBytesManualAssert(double fromMegabtes, long expectedBits, double expectedBytes, double expectedKiloBytes, double expectedMegaBytes, double expectedGigaBytes, double expectedTeraBytes, double expectedPetaBytes) => AssertConverssion(ByteMeasurement.FromMegaBytes(fromMegabtes), expectedBits, expectedBytes, expectedKiloBytes, expectedMegaBytes, expectedGigaBytes, expectedTeraBytes, expectedPetaBytes);

        private void AssertConverssion(ByteMeasurement result, long expectedBits, double expectedBytes, double expectedKiloBytes, double expectedMegaBytes, double expectedGigaBytes, double expectedTeraBytes, double expectedPetaBytes)
        {
            Assert.Equal(expectedBits, result.Bits);
            Assert.Equal(expectedBytes, result.Bytes);
            Assert.Equal(expectedKiloBytes, result.KiloBytes);
            Assert.Equal(expectedMegaBytes, result.MegaBytes);
            Assert.Equal(expectedGigaBytes, result.GigaBytes);
            Assert.Equal(expectedTeraBytes, result.TeraBytes);
            Assert.Equal(expectedPetaBytes, result.PetaBytes);
        }
示例#18
0
        public void ReturnsLargestMetricSuffix()
        {
            // Arrange
            var b = ByteMeasurement.FromKiloBytes(10.5);

            // Act
            string result = b.ToString();

            // Assert
            Assert.Equal(10.5.ToString("0.0 KB"), result);
        }
示例#19
0
        public void ReturnsZeroBits()
        {
            // Arrange
            var b = ByteMeasurement.FromBits(0);

            // Act
            string result = b.ToString();

            // Assert
            Assert.Equal("0 b", result);
        }
示例#20
0
        public void ReturnsLargestMetricSuffixUsingSpecifiedCulture()
        {
            // Arrange
            var b = ByteMeasurement.FromKiloBytes(10000);

            // Act
            string result = b.ToString("#.#", new CultureInfo("fr-FR"));

            // Assert
            Assert.Equal("9,8 MB", result);
        }
示例#21
0
        public void ReturnsSelectedFormat()
        {
            // Arrange
            var b = ByteMeasurement.FromTeraBytes(10);

            // Act
            string result = b.ToString("0.0 TB");

            // Assert
            Assert.Equal(10.ToString("0.0 TB"), result);
        }
示例#22
0
        public void ReturnsLargestMetricPrefixLargerThanZeroForNegativeValues()
        {
            // Arrange
            var b = ByteMeasurement.FromMegaBytes(-.5);

            // Act
            string result = b.ToString("#.#");

            // Assert
            Assert.Equal("-512 KB", result);
        }
示例#23
0
        public void ReturnsBits()
        {
            // Arrange
            var b = ByteMeasurement.FromBits(10);

            // Act
            string result = b.ToString("##.#### b");

            // Assert
            Assert.Equal("10 b", result);
        }
示例#24
0
        public void ReturnsPetaBytes()
        {
            // Arrange
            var b = ByteMeasurement.FromPetaBytes(10);

            // Act
            string result = b.ToString("##.#### PB");

            // Assert
            Assert.Equal("10 PB", result);
        }
示例#25
0
        public void ReturnsProvidedNumberFormat()
        {
            // Arrange
            var b = ByteMeasurement.FromKiloBytes(10.1234);

            // Act
            string result = b.ToString("#.#### KB");

            // Assert
            Assert.Equal(10.1234.ToString("0.0000 KB"), result);
        }
示例#26
0
        public void ReturnsDefaultNumberFormat()
        {
            // Arrange
            var b = ByteMeasurement.FromKiloBytes(10.5);

            // Act
            string result = b.ToString("KB");

            // Assert
            Assert.Equal(10.5.ToString("0.0 KB"), result);
        }
示例#27
0
        public void ReturnsCultureSpecificFormat()
        {
            // Arrange
            var b = ByteMeasurement.FromKiloBytes(10.5);

            // Act
            var    deCulture = new CultureInfo("de-DE");
            string result    = b.ToString("0.0 KB", deCulture);

            // Assert
            Assert.Equal(10.5.ToString("0.0 KB", deCulture), result);
        }
示例#28
0
        public void FromPetaBytesMethod()
        {
            // Arrange
            double value = 1.5;

            // Act
            var result = ByteMeasurement.FromPetaBytes(value);

            // Assert
            Assert.Equal(1688849860263936, result.Bytes);
            Assert.Equal(1.5, result.PetaBytes);
        }
示例#29
0
        public void ParseCultureNumberSeparator()
        {
            CultureInfo.CurrentCulture = new CultureInfo("de-DE");
            string val      = "1.500,5 MB";
            var    expected = ByteMeasurement.FromMegaBytes(1500.5);

            var result = ByteMeasurement.Parse(val);

            Assert.Equal(expected, result);

            CultureInfo.CurrentCulture = new CultureInfo("en-US");
        }
示例#30
0
        public void FromTeraBytesMethod()
        {
            // Arrange
            double value = 1.5;

            // Act
            var result = ByteMeasurement.FromTeraBytes(value);

            // Assert
            Assert.Equal(1649267441664, result.Bytes);
            Assert.Equal(1.5, result.TeraBytes);
        }