package yqlib import "testing" var reverseOperatorScenarios = []expressionScenario{ { description: "Reverse", document: "[1, 2, 3]", expression: `reverse`, expected: []string{ "D0, P[], (!!seq)::[3, 2, 1]\n", }, }, { description: "Reverse", skipDoc: true, document: "[1, 2]", expression: `reverse[]`, expected: []string{ "D0, P[1], (!!int)::2\n", "D0, P[0], (!!int)::1\n", }, }, { skipDoc: true, document: "[]", expression: `reverse`, expected: []string{ "D0, P[], (!!seq)::[]\n", }, }, { skipDoc: true, document: "[1]", expression: `reverse`, expected: []string{ "D0, P[], (!!seq)::[1]\n", }, }, { skipDoc: true, document: "[1,2]", expression: `reverse`, expected: []string{ "D0, P[], (!!seq)::[2, 1]\n", }, }, { description: "Sort descending by string field", subdescription: "Use sort with reverse to sort in descending order.", document: "[{a: banana},{a: cat},{a: apple}]", expression: `sort_by(.a) | reverse`, expected: []string{ "D0, P[], (!!seq)::[{a: cat}, {a: banana}, {a: apple}]\n", }, }, { description: "Sort descending by string field, with comments", skipDoc: true, document: "# abc\n[{a: banana},{a: cat},{a: apple}]\n# xyz", expression: `sort_by(.a) | reverse`, expected: []string{ "D0, P[], (!!seq)::# abc\n[{a: cat}, {a: banana}, {a: apple}]\n# xyz\n", }, }, } func TestReverseOperatorScenarios(t *testing.T) { for _, tt := range reverseOperatorScenarios { testScenario(t, &tt) } documentOperatorScenarios(t, "reverse", reverseOperatorScenarios) }