go-toml/value_test.go

46 lines
2.0 KiB
Go

package parser
import (
"testing"
)
func TestValue(t *testing.T) {
for _, test := range []parseTest{
{``, []string{`Error: unexpected end of file (expected a value) at start of file`}},
{`"basic s\tring value"`, []string{`string("basic s\tring value")`}},
{`'literal s\tring value'`, []string{`string("literal s\\tring value")`}},
{"\"\"\"basic multi-line\nstring value\"\"\"", []string{`string("basic multi-line\nstring value")`}},
{"'''literal multi-line\nstring value'''", []string{`string("literal multi-line\nstring value")`}},
{"true", []string{`boolean(true)`}},
{"false", []string{`boolean(false)`}},
{"0", []string{`integer(0)`}},
{"+0", []string{`integer(0)`}},
{"-0", []string{`integer(0)`}},
{"0.0", []string{`float(0)`}},
{"+0.0", []string{`float(0)`}},
{"-0.0", []string{`float(-0)`}},
{"1234", []string{`integer(1234)`}},
{"-1234", []string{`integer(-1234)`}},
{"+9_8_7.6_5_4e-321", []string{`float(9.8765e-319)`}},
{"-1_234.5678e-33", []string{`float(-1.2345678e-30)`}},
{"inf", []string{`float(+Inf)`}},
{"+inf", []string{`float(+Inf)`}},
{"-inf", []string{`float(-Inf)`}},
{"nan", []string{`float(NaN)`}},
{"+nan", []string{`float(NaN)`}},
{"-nan", []string{`float(NaN)`}},
{"2019-06-19", []string{`date(2019-06-19 00:00:00 +0000 UTC)`}},
{"08:38:54", []string{`time(0000-01-01 08:38:54 +0000 UTC)`}},
{"2019-06-19 08:38:54", []string{`datetime(2019-06-19 08:38:54 +0000 UTC)`}},
{"2019-06-19T08:38:54", []string{`datetime(2019-06-19 08:38:54 +0000 UTC)`}},
{"2019-06-19 08:38:54", []string{`datetime(2019-06-19 08:38:54 +0000 UTC)`}},
{"2019-06-19T08:38:54.88888", []string{`datetime(2019-06-19 08:38:54.88888 +0000 UTC)`}},
{"1979-05-27T07:32:00Z", []string{`offset_datetime(1979-05-27 07:32:00 +0000 UTC)`}},
{"1979-05-27T00:32:00-07:00", []string{`offset_datetime(1979-05-27 00:32:00 -0700 -0700)`}},
{"1979-05-27T00:32:00.999999-07:00", []string{`offset_datetime(1979-05-27 00:32:00.999999 -0700 -0700)`}},
} {
p := &parser{}
testParseHandler(t, p, p.startValue, test)
}
}