From cec49607f776c9f7f3b300e746ddbd493b2f45ed Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Thu, 28 Apr 2022 12:16:27 -0700 Subject: [PATCH] size_test: add more tests Co-authored-by: Kir Kolyshkin --- size_test.go | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/size_test.go b/size_test.go index b18dacb..e43f19a 100644 --- a/size_test.go +++ b/size_test.go @@ -83,6 +83,10 @@ func TestHumanSize(t *testing.T) { } func TestFromHumanSize(t *testing.T) { + assertSuccessEquals(t, 0, FromHumanSize, "0") + assertSuccessEquals(t, 0, FromHumanSize, "0b") + assertSuccessEquals(t, 0, FromHumanSize, "0B") + assertSuccessEquals(t, 0, FromHumanSize, "0 B") assertSuccessEquals(t, 32, FromHumanSize, "32") assertSuccessEquals(t, 32, FromHumanSize, "32b") assertSuccessEquals(t, 32, FromHumanSize, "32B") @@ -100,10 +104,56 @@ func TestFromHumanSize(t *testing.T) { assertSuccessEquals(t, 32, FromHumanSize, "32.5 B") assertSuccessEquals(t, 300, FromHumanSize, "0.3 K") + // We do not tolerate extra leading or trailing spaces + // (except for a space after the number and a missing suffix). + assertSuccessEquals(t, 0, FromHumanSize, "0 ") + + assertError(t, FromHumanSize, " 0") + assertError(t, FromHumanSize, " 0b") + assertError(t, FromHumanSize, " 0B") + assertError(t, FromHumanSize, " 0 B") + assertError(t, FromHumanSize, "0b ") + assertError(t, FromHumanSize, "0B ") + assertError(t, FromHumanSize, "0 B ") + assertError(t, FromHumanSize, "") assertError(t, FromHumanSize, "hello") + assertError(t, FromHumanSize, ".") + assertError(t, FromHumanSize, ". ") + assertError(t, FromHumanSize, " ") + assertError(t, FromHumanSize, " ") + assertError(t, FromHumanSize, " .") + assertError(t, FromHumanSize, " . ") + assertError(t, FromHumanSize, "0.") + assertError(t, FromHumanSize, "0. ") + assertError(t, FromHumanSize, "0.b") + assertError(t, FromHumanSize, "0.B") + assertError(t, FromHumanSize, "-0") + assertError(t, FromHumanSize, "-0b") + assertError(t, FromHumanSize, "-0B") + assertError(t, FromHumanSize, "-0 b") + assertError(t, FromHumanSize, "-0 B") assertError(t, FromHumanSize, "-32") assertError(t, FromHumanSize, ".3kB") + assertError(t, FromHumanSize, "-32b") + assertError(t, FromHumanSize, "-32B") + assertError(t, FromHumanSize, "-32 b") + assertError(t, FromHumanSize, "-32 B") + assertError(t, FromHumanSize, "32.") + assertError(t, FromHumanSize, "32.b") + assertError(t, FromHumanSize, "32.B") + assertError(t, FromHumanSize, "32. b") + assertError(t, FromHumanSize, "32. B") + assertError(t, FromHumanSize, "32b.") + assertError(t, FromHumanSize, "32B.") + assertError(t, FromHumanSize, "32 b.") + assertError(t, FromHumanSize, "32 B.") + assertError(t, FromHumanSize, "32 bb") + assertError(t, FromHumanSize, "32 BB") + assertError(t, FromHumanSize, "32 b b") + assertError(t, FromHumanSize, "32 B B") + assertError(t, FromHumanSize, "32 b") + assertError(t, FromHumanSize, "32 B") assertError(t, FromHumanSize, " 32 ") assertError(t, FromHumanSize, "32m b") assertError(t, FromHumanSize, "32bm")