diff --git a/src/Humanizer.Tests.Shared/Bytes/ToFullWordsTests.cs b/src/Humanizer.Tests.Shared/Bytes/ToFullWordsTests.cs index db88528b2..f9e1e8442 100644 --- a/src/Humanizer.Tests.Shared/Bytes/ToFullWordsTests.cs +++ b/src/Humanizer.Tests.Shared/Bytes/ToFullWordsTests.cs @@ -25,6 +25,7 @@ namespace Humanizer.Tests.Bytes { + [UseCulture("en")] public class ToFullWordsTests { [Fact] diff --git a/src/Humanizer.Tests.Shared/Humanizer.Tests.Shared.projitems b/src/Humanizer.Tests.Shared/Humanizer.Tests.Shared.projitems index 8518e6926..ffe1a3cd1 100644 --- a/src/Humanizer.Tests.Shared/Humanizer.Tests.Shared.projitems +++ b/src/Humanizer.Tests.Shared/Humanizer.Tests.Shared.projitems @@ -61,6 +61,9 @@ + + + diff --git a/src/Humanizer.Tests.Shared/Localisation/de/Bytes/ByteSizeExtensionsTests.cs b/src/Humanizer.Tests.Shared/Localisation/de/Bytes/ByteSizeExtensionsTests.cs new file mode 100644 index 000000000..8bc5cd0cd --- /dev/null +++ b/src/Humanizer.Tests.Shared/Localisation/de/Bytes/ByteSizeExtensionsTests.cs @@ -0,0 +1,77 @@ +using Xunit; + +namespace Humanizer.Tests.Localisation.de.Bytes +{ + [UseCulture("de-DE")] + public class ByteSizeExtensionsTests + { + [Theory] + [InlineData(2, null, "2 TB")] + [InlineData(2, "GB", "2048 GB")] + [InlineData(2.123, "#.#", "2,1 TB")] + public void HumanizesTerabytes(double input, string format, string expectedValue) + { + Assert.Equal(expectedValue, input.Terabytes().Humanize(format)); + } + + [Theory] + [InlineData(0, null, "0 bit")] + [InlineData(0, "GB", "0 GB")] + [InlineData(2, null, "2 GB")] + [InlineData(2, "MB", "2048 MB")] + [InlineData(2.123, "#.##", "2,12 GB")] + public void HumanizesGigabytes(double input, string format, string expectedValue) + { + Assert.Equal(expectedValue, input.Gigabytes().Humanize(format)); + } + + [Theory] + [InlineData(0, null, "0 bit")] + [InlineData(0, "MB", "0 MB")] + [InlineData(2, null, "2 MB")] + [InlineData(2, "KB", "2048 kB")] + [InlineData(2.123, "#", "2 MB")] + public void HumanizesMegabytes(double input, string format, string expectedValue) + { + Assert.Equal(expectedValue, input.Megabytes().Humanize(format)); + } + + [Theory] + [InlineData(0, null, "0 bit")] + [InlineData(0, "KB", "0 kB")] + [InlineData(2, null, "2 kB")] + [InlineData(2, "B", "2048 B")] + [InlineData(2.123, "#.####", "2,123 kB")] + public void HumanizesKilobytes(double input, string format, string expectedValue) + { + Assert.Equal(expectedValue, input.Kilobytes().Humanize(format)); + } + + [Theory] + [InlineData(0, null, "0 bit")] + [InlineData(0, "#.##", "0 bit")] + [InlineData(0, "#.## B", "0 B")] + [InlineData(0, "B", "0 B")] + [InlineData(2, null, "2 B")] + [InlineData(2000, "KB", "1,95 kB")] + [InlineData(2123, "#.##", "2,07 kB")] + [InlineData(10000000, "KB", "9765,63 kB")] + [InlineData(10000000, "#,##0 KB", "9.766 kB")] + [InlineData(10000000, "#,##0.# KB", "9.765,6 kB")] + public void HumanizesBytes(double input, string format, string expectedValue) + { + Assert.Equal(expectedValue, input.Bytes().Humanize(format)); + } + + [Theory] + [InlineData(0, null, "0 bit")] + [InlineData(0, "b", "0 bit")] + [InlineData(2, null, "2 bit")] + [InlineData(12, "B", "1,5 B")] + [InlineData(10000, "#.# KB", "1,2 kB")] + public void HumanizesBits(long input, string format, string expectedValue) + { + Assert.Equal(expectedValue, input.Bits().Humanize(format)); + } + } +} diff --git a/src/Humanizer.Tests.Shared/Localisation/de/Bytes/ToFullWordsTests.cs b/src/Humanizer.Tests.Shared/Localisation/de/Bytes/ToFullWordsTests.cs new file mode 100644 index 000000000..ce063fbd6 --- /dev/null +++ b/src/Humanizer.Tests.Shared/Localisation/de/Bytes/ToFullWordsTests.cs @@ -0,0 +1,90 @@ +using Humanizer.Bytes; + +using Xunit; + +namespace Humanizer.Tests.Localisation.de.Bytes +{ + [UseCulture("de-DE")] + public class ToFullWordsTests + { + [Fact] + public void ReturnsSingularBit() + { + Assert.Equal("1 Bit", ByteSize.FromBits(1).ToFullWords()); + } + + [Fact] + public void ReturnsPluralBits() + { + Assert.Equal("2 Bits", ByteSize.FromBits(2).ToFullWords()); + } + + [Fact] + public void ReturnsSingularByte() + { + Assert.Equal("1 Byte", ByteSize.FromBytes(1).ToFullWords()); + } + + [Fact] + public void ReturnsPluralBytes() + { + Assert.Equal("10 Bytes", ByteSize.FromBytes(10).ToFullWords()); + } + + [Fact] + public void ReturnsSingularKiloByte() + { + Assert.Equal("1 Kilobyte", ByteSize.FromKilobytes(1).ToFullWords()); + } + + [Fact] + public void ReturnsPluralKilobytes() + { + Assert.Equal("10 Kilobytes", ByteSize.FromKilobytes(10).ToFullWords()); + } + + [Fact] + public void ReturnsSingularMegabyte() + { + Assert.Equal("1 Megabyte", ByteSize.FromMegabytes(1).ToFullWords()); + } + + [Fact] + public void ReturnsPluralMegabytes() + { + Assert.Equal("10 Megabytes", ByteSize.FromMegabytes(10).ToFullWords()); + } + + [Fact] + public void ReturnsSingularGigabyte() + { + Assert.Equal("1 Gigabyte", ByteSize.FromGigabytes(1).ToFullWords()); + } + + [Fact] + public void ReturnsPluralGigabytes() + { + Assert.Equal("10 Gigabytes", ByteSize.FromGigabytes(10).ToFullWords()); + } + + [Fact] + public void ReturnsSingularTerabyte() + { + Assert.Equal("1 Terabyte", ByteSize.FromTerabytes(1).ToFullWords()); + } + + [Fact] + public void ReturnsPluralTerabytes() + { + Assert.Equal("10 Terabytes", ByteSize.FromTerabytes(10).ToFullWords()); + } + + [Theory] + [InlineData(229376, "B", "229376 Bytes")] + [InlineData(229376, "# KB", "224 Kilobytes")] + public void ToFullWordsFormatted(double input, string format, string expectedValue) + { + Assert.Equal(expectedValue, ByteSize.FromBytes(input).ToFullWords(format)); + } + } +} diff --git a/src/Humanizer.Tests.Shared/Localisation/de/Bytes/ToStringTests.cs b/src/Humanizer.Tests.Shared/Localisation/de/Bytes/ToStringTests.cs new file mode 100644 index 000000000..5b592d7f3 --- /dev/null +++ b/src/Humanizer.Tests.Shared/Localisation/de/Bytes/ToStringTests.cs @@ -0,0 +1,88 @@ +using Humanizer.Bytes; + +using Xunit; + +namespace Humanizer.Tests.Localisation.de.Bytes +{ + [UseCulture("de-DE")] + public class ToStringTests + { + [Fact] + public void ReturnsLargestMetricSuffix() + { + Assert.Equal("10,5 kB", ByteSize.FromKilobytes(10.5).ToString()); + } + + [Fact] + public void ReturnsDefaultNumberFormat() + { + Assert.Equal("10,5 kB", ByteSize.FromKilobytes(10.5).ToString("KB")); + } + + [Fact] + public void ReturnsProvidedNumberFormat() + { + Assert.Equal("10,1234 kB", ByteSize.FromKilobytes(10.1234).ToString("#.#### KB")); + } + + [Fact] + public void ReturnsBits() + { + Assert.Equal("10 bit", ByteSize.FromBits(10).ToString("##.#### b")); + } + + [Fact] + public void ReturnsBytes() + { + Assert.Equal("10 B", ByteSize.FromBytes(10).ToString("##.#### B")); + } + + [Fact] + public void ReturnsKilobytes() + { + Assert.Equal("10 kB", ByteSize.FromKilobytes(10).ToString("##.#### KB")); + } + + [Fact] + public void ReturnsMegabytes() + { + Assert.Equal("10 MB", ByteSize.FromMegabytes(10).ToString("##.#### MB")); + } + + [Fact] + public void ReturnsGigabytes() + { + Assert.Equal("10 GB", ByteSize.FromGigabytes(10).ToString("##.#### GB")); + } + + [Fact] + public void ReturnsTerabytes() + { + Assert.Equal("10 TB", ByteSize.FromTerabytes(10).ToString("##.#### TB")); + } + + [Fact] + public void ReturnsSelectedFormat() + { + Assert.Equal("10,0 TB", ByteSize.FromTerabytes(10).ToString("0.0 TB")); + } + + [Fact] + public void ReturnsLargestMetricPrefixLargerThanZero() + { + Assert.Equal("512 kB", ByteSize.FromMegabytes(.5).ToString("#.#")); + } + + [Fact] + public void ReturnsLargestMetricPrefixLargerThanZeroForNegativeValues() + { + Assert.Equal("-512 kB", ByteSize.FromMegabytes(-.5).ToString("#.#")); + } + + [Fact] + public void ReturnsBytesViaGeneralFormat() + { + Assert.Equal("10 B", $"{ByteSize.FromBytes(10)}"); + } + } +} diff --git a/src/Humanizer/Properties/Resources.de.resx b/src/Humanizer/Properties/Resources.de.resx index 9a40f6eab..33e4cff43 100644 --- a/src/Humanizer/Properties/Resources.de.resx +++ b/src/Humanizer/Properties/Resources.de.resx @@ -270,4 +270,40 @@ ein Jahr + + Bit + + + bit + + + Byte + + + B + + + Kilobyte + + + kB + + + Megabyte + + + MB + + + Gigabyte + + + GB + + + Terabyte + + + TB + \ No newline at end of file