miller/pkg/scan/find_test.go
John Kerl 268a96d002
Export library code in pkg/ (#1391)
* Export library code in `pkg/`

* new doc page
2023-09-10 17:15:13 -04:00

114 lines
5.1 KiB
Go

package scan
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestFindScanTypeNameStrings(t *testing.T) {
assert.Equal(t, typeNameString, findScanTypeName(""))
assert.Equal(t, typeNameString, findScanTypeName("-"))
assert.Equal(t, typeNameString, findScanTypeName("abc"))
assert.Equal(t, typeNameString, findScanTypeName("-abc"))
}
func TestFindScanTypeNameDecimals(t *testing.T) {
assert.Equal(t, typeNameDecimalInt, findScanTypeName("0"))
assert.Equal(t, typeNameDecimalInt, findScanTypeName("-0"))
assert.Equal(t, typeNameDecimalInt, findScanTypeName("1"))
assert.Equal(t, typeNameDecimalInt, findScanTypeName("-1"))
assert.Equal(t, typeNameDecimalInt, findScanTypeName("2"))
assert.Equal(t, typeNameDecimalInt, findScanTypeName("-2"))
assert.Equal(t, typeNameDecimalInt, findScanTypeName("123"))
assert.Equal(t, typeNameDecimalInt, findScanTypeName("-123"))
}
func TestFindScanTypeNameFloats(t *testing.T) {
assert.Equal(t, typeNameMaybeFloat, findScanTypeName("1."))
assert.Equal(t, typeNameMaybeFloat, findScanTypeName("-1."))
assert.Equal(t, typeNameMaybeFloat, findScanTypeName(".2"))
assert.Equal(t, typeNameMaybeFloat, findScanTypeName("-.2"))
assert.Equal(t, typeNameMaybeFloat, findScanTypeName("-."))
assert.Equal(t, typeNameMaybeFloat, findScanTypeName("1.2"))
assert.Equal(t, typeNameMaybeFloat, findScanTypeName("-1.2"))
assert.Equal(t, typeNameMaybeFloat, findScanTypeName("12e-2"))
assert.Equal(t, typeNameMaybeFloat, findScanTypeName("-12e-2"))
assert.Equal(t, typeNameMaybeFloat, findScanTypeName("1.2.3"))
assert.Equal(t, typeNameMaybeFloat, findScanTypeName("-1.2.3"))
assert.Equal(t, typeNameMaybeFloat, findScanTypeName("1e2e3"))
assert.Equal(t, typeNameMaybeFloat, findScanTypeName("-1e2e3"))
assert.Equal(t, typeNameString, findScanTypeName("."))
assert.Equal(t, typeNameString, findScanTypeName("1e2x3"))
assert.Equal(t, typeNameString, findScanTypeName("-1e2x3"))
assert.Equal(t, typeNameString, findScanTypeName("inf"))
assert.Equal(t, typeNameString, findScanTypeName("infinity"))
assert.Equal(t, typeNameString, findScanTypeName("NaN"))
assert.Equal(t, typeNameString, findScanTypeName("-inf"))
assert.Equal(t, typeNameString, findScanTypeName("-infinity"))
assert.Equal(t, typeNameString, findScanTypeName("-NaN"))
}
func TestFindScanTypeNameHexes(t *testing.T) {
assert.Equal(t, typeNameHexInt, findScanTypeName("0x0"))
assert.Equal(t, typeNameHexInt, findScanTypeName("-0x0"))
assert.Equal(t, typeNameHexInt, findScanTypeName("0xf"))
assert.Equal(t, typeNameHexInt, findScanTypeName("-0xf"))
assert.Equal(t, typeNameHexInt, findScanTypeName("0xcafe"))
assert.Equal(t, typeNameHexInt, findScanTypeName("-0xcafe"))
assert.Equal(t, typeNameHexInt, findScanTypeName("0x7ffffffffffffffe"))
assert.Equal(t, typeNameHexInt, findScanTypeName("0x7fffffffffffffff"))
assert.Equal(t, typeNameHexInt, findScanTypeName("0x8000000000000000"))
assert.Equal(t, typeNameHexInt, findScanTypeName("0x8000000000000001"))
assert.Equal(t, typeNameHexInt, findScanTypeName("0xfffffffffffffffe"))
assert.Equal(t, typeNameHexInt, findScanTypeName("0xffffffffffffffff"))
assert.Equal(t, typeNameString, findScanTypeName("0x"))
assert.Equal(t, typeNameString, findScanTypeName("-0x"))
assert.Equal(t, typeNameString, findScanTypeName("0xcape"))
assert.Equal(t, typeNameString, findScanTypeName("-0xcape"))
}
func TestFindScanTypeNameOctals(t *testing.T) {
assert.Equal(t, typeNameLeadingZeroOctalInt, findScanTypeName("00"))
assert.Equal(t, typeNameLeadingZeroOctalInt, findScanTypeName("-00"))
assert.Equal(t, typeNameLeadingZeroOctalInt, findScanTypeName("01"))
assert.Equal(t, typeNameLeadingZeroOctalInt, findScanTypeName("-01"))
assert.Equal(t, typeNameLeadingZeroOctalInt, findScanTypeName("0377"))
assert.Equal(t, typeNameLeadingZeroOctalInt, findScanTypeName("-0377"))
assert.Equal(t, typeNameLeadingZeroDecimalInt, findScanTypeName("08"))
assert.Equal(t, typeNameLeadingZeroDecimalInt, findScanTypeName("-08"))
assert.Equal(t, typeNameLeadingZeroDecimalInt, findScanTypeName("06789"))
assert.Equal(t, typeNameLeadingZeroDecimalInt, findScanTypeName("-06789"))
assert.Equal(t, typeNameOctalInt, findScanTypeName("0o377"))
assert.Equal(t, typeNameOctalInt, findScanTypeName("-0o377"))
assert.Equal(t, typeNameString, findScanTypeName("0o6789"))
assert.Equal(t, typeNameString, findScanTypeName("-0o6789"))
}
func TestFindScanTypeNameBinaries(t *testing.T) {
assert.Equal(t, typeNameBinaryInt, findScanTypeName("0b0"))
assert.Equal(t, typeNameBinaryInt, findScanTypeName("-0b0"))
assert.Equal(t, typeNameBinaryInt, findScanTypeName("0b1011"))
assert.Equal(t, typeNameBinaryInt, findScanTypeName("-0b1011"))
assert.Equal(t, typeNameString, findScanTypeName("0b"))
assert.Equal(t, typeNameString, findScanTypeName("-0b"))
assert.Equal(t, typeNameString, findScanTypeName("0b1021"))
assert.Equal(t, typeNameString, findScanTypeName("-0b1021"))
}
func TestFindScanTypeNameBooleans(t *testing.T) {
assert.Equal(t, typeNameString, findScanTypeName("true"))
assert.Equal(t, typeNameString, findScanTypeName("True"))
assert.Equal(t, typeNameString, findScanTypeName("false"))
assert.Equal(t, typeNameString, findScanTypeName("False"))
}