@@ -2443,6 +2443,48 @@ class TestQgsExpression: public QObject
2443
2443
QCOMPARE ( badArray.evalErrorString (), QString ( " Cannot convert 'not an array' to array" ) );
2444
2444
}
2445
2445
2446
+ void compare_arrays ()
2447
+ {
2448
+ QCOMPARE ( QgsExpression ( " array() = array()" ).evaluate (), QVariant ( true ) );
2449
+ QCOMPARE ( QgsExpression ( " array(NULL) = array(NULL)" ).evaluate (), QVariant ( true ) );
2450
+ QCOMPARE ( QgsExpression ( " array() = array(NULL)" ).evaluate (), QVariant ( false ) );
2451
+ QCOMPARE ( QgsExpression ( " array(1, NULL) = array(NULL, 1)" ).evaluate (), QVariant ( false ) );
2452
+
2453
+ QCOMPARE ( QgsExpression ( " array('hello') = array('hello')" ).evaluate (), QVariant ( true ) );
2454
+ QCOMPARE ( QgsExpression ( " array('hello') = array('hello2')" ).evaluate (), QVariant ( false ) );
2455
+ QCOMPARE ( QgsExpression ( " array('h', 'e', 'l', 'l', 'o') = array('h', 'e', 'l', 'l', 'o')" ).evaluate (), QVariant ( true ) );
2456
+ QCOMPARE ( QgsExpression ( " array('h', 'e', 'l', 'l', 'o') = array('h', 'e', 'l', 'l')" ).evaluate (), QVariant ( false ) );
2457
+
2458
+ QCOMPARE ( QgsExpression ( " array('1') = array(1)" ).evaluate (), QVariant ( true ) );
2459
+ QCOMPARE ( QgsExpression ( " array('1.2') = array(1.2)" ).evaluate (), QVariant ( true ) );
2460
+
2461
+ QCOMPARE ( QgsExpression ( " array() != array()" ).evaluate (), QVariant ( false ) );
2462
+ QCOMPARE ( QgsExpression ( " array(NULL) != array(NULL)" ).evaluate (), QVariant ( false ) );
2463
+ QCOMPARE ( QgsExpression ( " array() != array(NULL)" ).evaluate (), QVariant ( true ) );
2464
+ QCOMPARE ( QgsExpression ( " array('hello') != array('hello')" ).evaluate (), QVariant ( false ) );
2465
+ QCOMPARE ( QgsExpression ( " array('hello') != array('hello2')" ).evaluate (), QVariant ( true ) );
2466
+
2467
+ QCOMPARE ( QgsExpression ( " array() < array(1)" ).evaluate (), QVariant ( true ) );
2468
+ QCOMPARE ( QgsExpression ( " array(1) < array(NULL)" ).evaluate (), QVariant ( true ) );
2469
+ QCOMPARE ( QgsExpression ( " array(1) < array(1)" ).evaluate (), QVariant ( false ) );
2470
+ QCOMPARE ( QgsExpression ( " array(1) < array(2)" ).evaluate (), QVariant ( true ) );
2471
+ QCOMPARE ( QgsExpression ( " array(2) < array(1)" ).evaluate (), QVariant ( false ) );
2472
+ QCOMPARE ( QgsExpression ( " array(1) < array(1, 2)" ).evaluate (), QVariant ( true ) );
2473
+ QCOMPARE ( QgsExpression ( " array(1, 2) < array(1)" ).evaluate (), QVariant ( false ) );
2474
+ QCOMPARE ( QgsExpression ( " array('h', 'e', 'l', 'l', 'o') < array('h', 'e', 'l', 'l')" ).evaluate (), QVariant ( false ) );
2475
+ QCOMPARE ( QgsExpression ( " array('h', 'e', 'l', 'l', 'o') > array('h', 'e', 'l', 'l')" ).evaluate (), QVariant ( true ) );
2476
+
2477
+ QCOMPARE ( QgsExpression ( " array() <= array(1)" ).evaluate (), QVariant ( true ) );
2478
+ QCOMPARE ( QgsExpression ( " array(1) <= array(NULL)" ).evaluate (), QVariant ( true ) );
2479
+ QCOMPARE ( QgsExpression ( " array(1) <= array(1)" ).evaluate (), QVariant ( true ) );
2480
+ QCOMPARE ( QgsExpression ( " array(1) <= array(2)" ).evaluate (), QVariant ( true ) );
2481
+ QCOMPARE ( QgsExpression ( " array(2) <= array(1)" ).evaluate (), QVariant ( false ) );
2482
+ QCOMPARE ( QgsExpression ( " array(1) <= array(1, 2)" ).evaluate (), QVariant ( true ) );
2483
+ QCOMPARE ( QgsExpression ( " array(1, 2) <= array(1)" ).evaluate (), QVariant ( false ) );
2484
+ QCOMPARE ( QgsExpression ( " array('h', 'e', 'l', 'l', 'o') <= array('h', 'e', 'l', 'l')" ).evaluate (), QVariant ( false ) );
2485
+ QCOMPARE ( QgsExpression ( " array('h', 'e', 'l', 'l', 'o') >= array('h', 'e', 'l', 'l')" ).evaluate (), QVariant ( true ) );
2486
+ }
2487
+
2446
2488
void eval_map ()
2447
2489
{
2448
2490
QgsFeature f ( 100 );
0 commit comments