69 lines
1.7 KiB
Go
69 lines
1.7 KiB
Go
package langext
|
|
|
|
import (
|
|
"git.blackforestbytes.com/BlackForestBytes/goext/tst"
|
|
"testing"
|
|
)
|
|
|
|
func TestFormatBytesToSI(t *testing.T) {
|
|
tst.AssertEqual(t, FormatBytesToSI(0), "0 B")
|
|
tst.AssertEqual(t, FormatBytesToSI(999), "999 B")
|
|
tst.AssertEqual(t, FormatBytesToSI(1000), "1.0 kB")
|
|
tst.AssertEqual(t, FormatBytesToSI(1500), "1.5 kB")
|
|
tst.AssertEqual(t, FormatBytesToSI(1000*1000), "1.0 MB")
|
|
tst.AssertEqual(t, FormatBytesToSI(1000*1000*1000), "1.0 GB")
|
|
}
|
|
|
|
func TestFormatBytes(t *testing.T) {
|
|
tst.AssertEqual(t, FormatBytes(0), "0 B")
|
|
tst.AssertEqual(t, FormatBytes(1023), "1023 B")
|
|
tst.AssertEqual(t, FormatBytes(1024), "1.0 KiB")
|
|
tst.AssertEqual(t, FormatBytes(1024*1024), "1.0 MiB")
|
|
tst.AssertEqual(t, FormatBytes(1024*1024*1024), "1.0 GiB")
|
|
tst.AssertEqual(t, FormatBytes(1536), "1.5 KiB")
|
|
}
|
|
|
|
func TestBytesXOR(t *testing.T) {
|
|
a := []byte{0x01, 0x02, 0x03, 0xFF}
|
|
b := []byte{0xFF, 0xFE, 0xFD, 0x00}
|
|
|
|
r, err := BytesXOR(a, b)
|
|
if err != nil {
|
|
t.Fatalf("unexpected error: %v", err)
|
|
}
|
|
|
|
expected := []byte{0xFE, 0xFC, 0xFE, 0xFF}
|
|
tst.AssertArrayEqual(t, r, expected)
|
|
}
|
|
|
|
func TestBytesXORLengthMismatch(t *testing.T) {
|
|
a := []byte{0x01, 0x02}
|
|
b := []byte{0x01, 0x02, 0x03}
|
|
|
|
_, err := BytesXOR(a, b)
|
|
if err == nil {
|
|
t.Fatalf("expected error on length mismatch, got nil")
|
|
}
|
|
}
|
|
|
|
func TestBytesXOREmpty(t *testing.T) {
|
|
r, err := BytesXOR([]byte{}, []byte{})
|
|
if err != nil {
|
|
t.Fatalf("unexpected error: %v", err)
|
|
}
|
|
tst.AssertEqual(t, len(r), 0)
|
|
}
|
|
|
|
func TestBytesXORSelfIsZero(t *testing.T) {
|
|
a := []byte{0xAB, 0xCD, 0xEF}
|
|
r, err := BytesXOR(a, a)
|
|
if err != nil {
|
|
t.Fatalf("unexpected error: %v", err)
|
|
}
|
|
for i, v := range r {
|
|
if v != 0 {
|
|
t.Errorf("expected zero at index %d, got %#x", i, v)
|
|
}
|
|
}
|
|
}
|