From b15e874d00e113813a928ef4769e8a73fd6090a5 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Sat, 24 Dec 2022 23:05:34 -0700 Subject: textui: Add some utilities for human-friendly text --- lib/textui/text_test.go | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 lib/textui/text_test.go (limited to 'lib/textui/text_test.go') diff --git a/lib/textui/text_test.go b/lib/textui/text_test.go new file mode 100644 index 0000000..c4b42f6 --- /dev/null +++ b/lib/textui/text_test.go @@ -0,0 +1,39 @@ +// Copyright (C) 2022 Luke Shumaker +// +// SPDX-License-Identifier: GPL-2.0-or-later + +package textui_test + +import ( + "fmt" + "strings" + "testing" + + "github.com/stretchr/testify/assert" + + "git.lukeshu.com/btrfs-progs-ng/lib/btrfs/btrfsvol" + "git.lukeshu.com/btrfs-progs-ng/lib/textui" +) + +func TestFprintf(t *testing.T) { + var out strings.Builder + textui.Fprintf(&out, "%d", 12345) + assert.Equal(t, "12,345", out.String()) +} + +func TestHumanized(t *testing.T) { + assert.Equal(t, "12,345", fmt.Sprint(textui.Humanized(12345))) + assert.Equal(t, "12,345 ", fmt.Sprintf("%-8d", textui.Humanized(12345))) + + laddr := btrfsvol.LogicalAddr(345243543) + assert.Equal(t, "0x000000001493ff97", fmt.Sprintf("%v", textui.Humanized(laddr))) + assert.Equal(t, "345243543", fmt.Sprintf("%d", textui.Humanized(laddr))) + assert.Equal(t, "345,243,543", fmt.Sprintf("%d", textui.Humanized(uint64(laddr)))) +} + +func TestPortion(t *testing.T) { + assert.Equal(t, "100% (0/0)", fmt.Sprint(textui.Portion[int]{})) + assert.Equal(t, "0% (1/12,345)", fmt.Sprint(textui.Portion[int]{N: 1, D: 12345})) + assert.Equal(t, "100% (0/0)", fmt.Sprint(textui.Portion[btrfsvol.PhysicalAddr]{})) + assert.Equal(t, "0% (1/12,345)", fmt.Sprint(textui.Portion[btrfsvol.PhysicalAddr]{N: 1, D: 12345})) +} -- cgit v1.2.3-2-g168b