support string X int multiplication as jq (#1988)

This commit is contained in:
Matt Benson
2024-03-22 20:44:49 +11:00
committed by GitHub
parent 76a0da3937
commit 3b85cef340
3 changed files with 116 additions and 0 deletions
+36
View File
@@ -1,6 +1,8 @@
package yqlib
import (
"fmt"
"strings"
"testing"
)
@@ -174,6 +176,40 @@ var multiplyOperatorScenarios = []expressionScenario{
"D0, P[], (!!map)::a: 12\nb: 4\n",
},
},
{
description: "Multiply string node X int",
document: docNoComments,
expression: ".b * 4",
expected: []string{
fmt.Sprintf("D0, P[b], (!!str)::%s\n", strings.Repeat("banana", 4)),
},
},
{
description: "Multiply int X string node",
document: docNoComments,
expression: "4 * .b",
expected: []string{
fmt.Sprintf("D0, P[], (!!str)::%s\n", strings.Repeat("banana", 4)),
},
},
{
description: "Multiply string X int node",
document: `n: 4
`,
expression: `"banana" * .n`,
expected: []string{
fmt.Sprintf("D0, P[], (!!str)::%s\n", strings.Repeat("banana", 4)),
},
},
{
description: "Multiply int node X string",
document: `n: 4
`,
expression: `.n * "banana"`,
expected: []string{
fmt.Sprintf("D0, P[n], (!!str)::%s\n", strings.Repeat("banana", 4)),
},
},
{
skipDoc: true,
document: doc1,