mirror of
https://github.com/johnkerl/miller.git
synced 2026-01-23 02:14:13 +00:00
114 lines
5.1 KiB
Go
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"))
|
|
}
|