@@ -2691,6 +2691,9 @@ class TestQgsExpression: public QObject
2691
2691
foreachExpected << QStringLiteral ( " ABC" ) << QStringLiteral ( " HELLO" );
2692
2692
QCOMPARE ( QgsExpression ( " array_foreach(array('abc', 'hello'), upper(@element))" ).evaluate ( &context ), QVariant ( foreachExpected ) );
2693
2693
2694
+ QVariantList filterExpected () << QStringLiteral ( " A: a" ) << QStringLiteral ( " A: d" );
2695
+ QCOMPARE ( QgsExpression ( " array_filter(array('A: a', 'B: b', 'C: c', 'A: d'), substr(@element, 1, 2) = 'A:')" ).evaluate ( &context ), QVariant ( filterExpected ) );
2696
+
2694
2697
QCOMPARE ( QgsExpression ( " array_intersect(array('1', '2', '3', '4'), array('4', '0', '2', '5'))" ).evaluate ( &context ), QVariant ( true ) );
2695
2698
QCOMPARE ( QgsExpression ( " array_intersect(array('1', '2', '3', '4'), array('0', '5'))" ).evaluate ( &context ), QVariant ( false ) );
2696
2699
@@ -2774,6 +2777,9 @@ class TestQgsExpression: public QObject
2774
2777
foreachExpected << 10 << 20 << 40 ;
2775
2778
QCOMPARE ( QgsExpression ( " array_foreach(array(1, 2, 4), @element * 10)" ).evaluate ( &context ), QVariant ( foreachExpected ) );
2776
2779
2780
+ QVariantList filterExpected () << 1 << 2 ;
2781
+ QCOMPARE ( QgsExpression ( " array_filter(array(1, 2, 4), @element < 3)" ).evaluate ( &context ), QVariant ( filterExpected ) );
2782
+
2777
2783
QgsExpression badArray ( QStringLiteral ( " array_get('not an array', 0)" ) );
2778
2784
QCOMPARE ( badArray.evaluate ( &context ), QVariant () );
2779
2785
QVERIFY ( badArray.hasEvalError () );
0 commit comments