From 624ac706ddf482451528c5c2f8ec409af96888fa Mon Sep 17 00:00:00 2001 From: Matthias Kuhn Date: Thu, 23 Aug 2018 09:21:26 +0200 Subject: [PATCH] Add array_filter tests --- tests/src/core/testqgsexpression.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tests/src/core/testqgsexpression.cpp b/tests/src/core/testqgsexpression.cpp index eec700ee4f6..c6d9f512f20 100644 --- a/tests/src/core/testqgsexpression.cpp +++ b/tests/src/core/testqgsexpression.cpp @@ -2691,6 +2691,9 @@ class TestQgsExpression: public QObject foreachExpected << QStringLiteral( "ABC" ) << QStringLiteral( "HELLO" ); QCOMPARE( QgsExpression( "array_foreach(array('abc', 'hello'), upper(@element))" ).evaluate( &context ), QVariant( foreachExpected ) ); + QVariantList filterExpected() << QStringLiteral( "A: a" ) << QStringLiteral( "A: d" ); + QCOMPARE( QgsExpression( "array_filter(array('A: a', 'B: b', 'C: c', 'A: d'), substr(@element, 1, 2) = 'A:')" ).evaluate( &context ), QVariant( filterExpected ) ); + QCOMPARE( QgsExpression( "array_intersect(array('1', '2', '3', '4'), array('4', '0', '2', '5'))" ).evaluate( &context ), QVariant( true ) ); QCOMPARE( QgsExpression( "array_intersect(array('1', '2', '3', '4'), array('0', '5'))" ).evaluate( &context ), QVariant( false ) ); @@ -2774,6 +2777,9 @@ class TestQgsExpression: public QObject foreachExpected << 10 << 20 << 40; QCOMPARE( QgsExpression( "array_foreach(array(1, 2, 4), @element * 10)" ).evaluate( &context ), QVariant( foreachExpected ) ); + QVariantList filterExpected() << 1 << 2; + QCOMPARE( QgsExpression( "array_filter(array(1, 2, 4), @element < 3)" ).evaluate( &context ), QVariant( filterExpected ) ); + QgsExpression badArray( QStringLiteral( "array_get('not an array', 0)" ) ); QCOMPARE( badArray.evaluate( &context ), QVariant() ); QVERIFY( badArray.hasEvalError() );