MCPcopy Create free account
hub / github.com/cel-expr/cel-go / TestStringFormatHeterogeneousLiterals

Function TestStringFormatHeterogeneousLiterals

ext/formatting_test.go:1025–1067  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

1023}
1024
1025func TestStringFormatHeterogeneousLiterals(t *testing.T) {
1026 tests := []struct {
1027 expr string
1028 out string
1029 }{
1030 {
1031 expr: `"list: %s".format([[[1, 2, [3.0, 4]]]])`,
1032 out: `list: [[1, 2, [3.000000, 4]]]`,
1033 },
1034 {
1035 expr: `"list size: %d".format([[[1, 2, [3.0, 4]]].size()])`,
1036 out: `list size: 1`,
1037 },
1038 {
1039 expr: `"list element: %s".format([[[1, 2, [3.0, 4]]][0]])`,
1040 out: `list element: [1, 2, [3.000000, 4]]`,
1041 },
1042 }
1043 env, err := cel.NewEnv(Strings(StringsVersion(3)), cel.ASTValidators(cel.ValidateHomogeneousAggregateLiterals()))
1044 if err != nil {
1045 t.Fatalf("cel.NewEnv() failed: %v", err)
1046 }
1047 for _, tst := range tests {
1048 tc := tst
1049 t.Run(tc.expr, func(t *testing.T) {
1050 ast, iss := env.Compile(tc.expr)
1051 if iss.Err() != nil {
1052 t.Fatalf("env.Compile(%q) failed: %v", tc.expr, iss.Err())
1053 }
1054 prg, err := env.Program(ast)
1055 if err != nil {
1056 t.Fatalf("env.Program() failed: %v", err)
1057 }
1058 out, _, err := prg.Eval(cel.NoVars())
1059 if err != nil {
1060 t.Fatalf("Eval() failed: %v", err)
1061 }
1062 if out.Value() != tc.out {
1063 t.Errorf("Eval() got %v, wanted %v", out, tc.out)
1064 }
1065 })
1066 }
1067}
1068
1069func TestBadLocale(t *testing.T) {
1070 _, err := cel.NewEnv(Strings(StringsLocale("bad-locale"), StringsVersion(3)))

Callers

nothing calls this directly

Calls 11

CompileMethod · 0.95
ProgramMethod · 0.95
NewEnvFunction · 0.92
ASTValidatorsFunction · 0.92
NoVarsFunction · 0.92
StringsFunction · 0.85
StringsVersionFunction · 0.85
ErrMethod · 0.80
EvalMethod · 0.65
ValueMethod · 0.65

Tested by

no test coverage detected