1package json23import "testing"45func TestParseStringLiteral(t *testing.T) {6 tests := []struct {7 input string8 expected string9 isError bool10 }{11 {`"Hello, World!"`, "\"Hello, World!\"", false},12 {`\uFF11`, "\uFF11", false},13 {`\uFFFF`, "\uFFFF", false},14 {`true`, "true", false},15 {`false`, "false", false},16 {`\uDF00`, "", true},17 }1819 for i, tt := range tests {20 s, err := ParseStringLiteral([]byte(tt.input))2122 if !tt.isError && err != nil {23 t.Errorf("%d. unexpected error: %s", i, err)24 }2526 if tt.isError && err == nil {27 t.Errorf("%d. expected error, but not error", i)28 }2930 if s != tt.expected {31 t.Errorf("%d. expected=%s, but actual=%s", i, tt.expected, s)32 }33 }34}3536func TestParseBoolLiteral(t *testing.T) {37 tests := []struct {38 input string39 expected bool40 isError bool41 }{42 {`true`, true, false},43 {`false`, false, false},44 {`TRUE`, false, true},45 {`FALSE`, false, true},46 {`foo`, false, true},47 {`"true"`, false, true},48 {`"false"`, false, true},49 }5051 for i, tt := range tests {52 b, err := ParseBoolLiteral([]byte(tt.input))5354 if !tt.isError && err != nil {55 t.Errorf("%d. unexpected error: %s", i, err)56 }5758 if tt.isError && err == nil {59 t.Errorf("%d. expected error, but not error", i)60 }6162 if b != tt.expected {63 t.Errorf("%d. expected=%t, but actual=%t", i, tt.expected, b)64 }65 }66}67Signatures reconstructed verbatim from vm/qfuncs — interface params keep their inline definitions.