diff --git a/release_notes.md b/release_notes.md
index f2547f820..cbe7a6bdf 100644
--- a/release_notes.md
+++ b/release_notes.md
@@ -1,5 +1,6 @@
###In Development
+ - [#365](https://github.com/MehdiK/Humanizer/pull/365): Added ByteSizeExtensions method for long inputs
- [#364](https://github.com/MehdiK/Humanizer/pull/364): Added "campuses" as plural of "campus"
- [#363](https://github.com/MehdiK/Humanizer/pull/363): Use RegexOptions.Compiled if available
diff --git a/src/Humanizer.Tests/ApiApprover/PublicApiApprovalTest.approve_public_api.approved.txt b/src/Humanizer.Tests/ApiApprover/PublicApiApprovalTest.approve_public_api.approved.txt
index a7f24d443..955bf1c34 100644
--- a/src/Humanizer.Tests/ApiApprover/PublicApiApprovalTest.approve_public_api.approved.txt
+++ b/src/Humanizer.Tests/ApiApprover/PublicApiApprovalTest.approve_public_api.approved.txt
@@ -71,6 +71,7 @@ public class ByteSizeExtensions
public Humanizer.Bytes.ByteSize Bytes(int input) { }
public Humanizer.Bytes.ByteSize Bytes(uint input) { }
public Humanizer.Bytes.ByteSize Bytes(double input) { }
+ public Humanizer.Bytes.ByteSize Bytes(long input) { }
public Humanizer.Bytes.ByteSize Gigabytes(byte input) { }
public Humanizer.Bytes.ByteSize Gigabytes(sbyte input) { }
public Humanizer.Bytes.ByteSize Gigabytes(short input) { }
@@ -78,6 +79,7 @@ public class ByteSizeExtensions
public Humanizer.Bytes.ByteSize Gigabytes(int input) { }
public Humanizer.Bytes.ByteSize Gigabytes(uint input) { }
public Humanizer.Bytes.ByteSize Gigabytes(double input) { }
+ public Humanizer.Bytes.ByteSize Gigabytes(long input) { }
public string Humanize(Humanizer.Bytes.ByteSize input, string format) { }
public Humanizer.Bytes.ByteSize Kilobytes(byte input) { }
public Humanizer.Bytes.ByteSize Kilobytes(sbyte input) { }
@@ -86,6 +88,7 @@ public class ByteSizeExtensions
public Humanizer.Bytes.ByteSize Kilobytes(int input) { }
public Humanizer.Bytes.ByteSize Kilobytes(uint input) { }
public Humanizer.Bytes.ByteSize Kilobytes(double input) { }
+ public Humanizer.Bytes.ByteSize Kilobytes(long input) { }
public Humanizer.Bytes.ByteSize Megabytes(byte input) { }
public Humanizer.Bytes.ByteSize Megabytes(sbyte input) { }
public Humanizer.Bytes.ByteSize Megabytes(short input) { }
@@ -93,6 +96,7 @@ public class ByteSizeExtensions
public Humanizer.Bytes.ByteSize Megabytes(int input) { }
public Humanizer.Bytes.ByteSize Megabytes(uint input) { }
public Humanizer.Bytes.ByteSize Megabytes(double input) { }
+ public Humanizer.Bytes.ByteSize Megabytes(long input) { }
public Humanizer.Bytes.ByteRate Per(Humanizer.Bytes.ByteSize size, System.TimeSpan interval) { }
public Humanizer.Bytes.ByteSize Terabytes(byte input) { }
public Humanizer.Bytes.ByteSize Terabytes(sbyte input) { }
@@ -101,6 +105,7 @@ public class ByteSizeExtensions
public Humanizer.Bytes.ByteSize Terabytes(int input) { }
public Humanizer.Bytes.ByteSize Terabytes(uint input) { }
public Humanizer.Bytes.ByteSize Terabytes(double input) { }
+ public Humanizer.Bytes.ByteSize Terabytes(long input) { }
}
public class CasingExtensions
diff --git a/src/Humanizer.Tests/Bytes/ByteSizeExtensionsTests.cs b/src/Humanizer.Tests/Bytes/ByteSizeExtensionsTests.cs
index 4ed19d7b4..9ff6500ac 100644
--- a/src/Humanizer.Tests/Bytes/ByteSizeExtensionsTests.cs
+++ b/src/Humanizer.Tests/Bytes/ByteSizeExtensionsTests.cs
@@ -57,6 +57,13 @@ public void DoubleTerabytes()
Assert.Equal(ByteSize.FromTerabytes(size), size.Terabytes());
}
+ [Fact]
+ public void LongTerabytes()
+ {
+ const long size = 2;
+ Assert.Equal(ByteSize.FromTerabytes(size), size.Terabytes());
+ }
+
[Theory]
[InlineData(2, null, "2 TB")]
[InlineData(2, "GB", "2048 GB")]
@@ -115,6 +122,13 @@ public void DoubleGigabytes()
Assert.Equal(ByteSize.FromGigabytes(size), size.Gigabytes());
}
+ [Fact]
+ public void LongGigabytes()
+ {
+ const long size = 2;
+ Assert.Equal(ByteSize.FromGigabytes(size), size.Gigabytes());
+ }
+
[Theory]
[InlineData(2, null, "2 GB")]
[InlineData(2, "MB", "2048 MB")]
@@ -173,6 +187,13 @@ public void DoubleMegabytes()
Assert.Equal(ByteSize.FromMegabytes(size), size.Megabytes());
}
+ [Fact]
+ public void LongMegabytes()
+ {
+ const long size = 2;
+ Assert.Equal(ByteSize.FromMegabytes(size), size.Megabytes());
+ }
+
[Theory]
[InlineData(2, null, "2 MB")]
[InlineData(2, "KB", "2048 KB")]
@@ -231,6 +252,13 @@ public void DoubleKilobytes()
Assert.Equal(ByteSize.FromKilobytes(size), size.Kilobytes());
}
+ [Fact]
+ public void LongKilobytes()
+ {
+ const long size = 2;
+ Assert.Equal(ByteSize.FromKilobytes(size), size.Kilobytes());
+ }
+
[Theory]
[InlineData(2, null, "2 KB")]
[InlineData(2, "B", "2048 B")]
@@ -289,6 +317,13 @@ public void DoubleBytes()
Assert.Equal(ByteSize.FromBytes(size), size.Bytes());
}
+ [Fact]
+ public void LongBytes()
+ {
+ const long size = 2;
+ Assert.Equal(ByteSize.FromBytes(size), size.Bytes());
+ }
+
[Theory]
[InlineData(2, null, "2 B")]
[InlineData(2000, "KB", "1.95 KB")]
diff --git a/src/Humanizer/Bytes/ByteSizeExtensions.cs b/src/Humanizer/Bytes/ByteSizeExtensions.cs
index 2fbd7a784..b16ad5992 100644
--- a/src/Humanizer/Bytes/ByteSizeExtensions.cs
+++ b/src/Humanizer/Bytes/ByteSizeExtensions.cs
@@ -149,6 +149,16 @@ public static ByteSize Bytes(this double input)
return ByteSize.FromBytes(input);
}
+ ///
+ /// Considers input as bytes
+ ///
+ ///
+ ///
+ public static ByteSize Bytes(this long input)
+ {
+ return ByteSize.FromBytes(input);
+ }
+
///
/// Considers input as kilobytes
///
@@ -219,6 +229,16 @@ public static ByteSize Kilobytes(this double input)
return ByteSize.FromKilobytes(input);
}
+ ///
+ /// Considers input as kilobytes
+ ///
+ ///
+ ///
+ public static ByteSize Kilobytes(this long input)
+ {
+ return ByteSize.FromKilobytes(input);
+ }
+
///
/// Considers input as megabytes
///
@@ -289,6 +309,16 @@ public static ByteSize Megabytes(this double input)
return ByteSize.FromMegabytes(input);
}
+ ///
+ /// Considers input as megabytes
+ ///
+ ///
+ ///
+ public static ByteSize Megabytes(this long input)
+ {
+ return ByteSize.FromMegabytes(input);
+ }
+
///
/// Considers input as gigabytes
///
@@ -359,6 +389,16 @@ public static ByteSize Gigabytes(this double input)
return ByteSize.FromGigabytes(input);
}
+ ///
+ /// Considers input as gigabytes
+ ///
+ ///
+ ///
+ public static ByteSize Gigabytes(this long input)
+ {
+ return ByteSize.FromGigabytes(input);
+ }
+
///
/// Considers input as terabytes
///
@@ -429,6 +469,16 @@ public static ByteSize Terabytes(this double input)
return ByteSize.FromTerabytes(input);
}
+ ///
+ /// Considers input as terabytes
+ ///
+ ///
+ ///
+ public static ByteSize Terabytes(this long input)
+ {
+ return ByteSize.FromTerabytes(input);
+ }
+
///
/// Turns a byte quantity into human readable form, eg 2 GB
///