@@ -316,12 +316,12 @@ void TestQgsField::displayString()
316
316
// test int value in int type
317
317
QgsField intField2 ( QStringLiteral ( " int" ), QVariant::Int, QStringLiteral ( " int" ) );
318
318
QCOMPARE ( intField2.displayString ( 5 ), QString ( " 5" ) );
319
- QCOMPARE ( intField2.displayString ( 599999898999LL ), QString ( " 599999898999 " ) );
319
+ QCOMPARE ( intField2.displayString ( 599999898999LL ), QString ( " 599,999,898,999 " ) );
320
320
321
321
// test long type
322
322
QgsField longField ( QStringLiteral ( " long" ), QVariant::LongLong, QStringLiteral ( " longlong" ) );
323
323
QCOMPARE ( longField.displayString ( 5 ), QString ( " 5" ) );
324
- QCOMPARE ( longField.displayString ( 599999898999LL ), QString ( " 599999898999 " ) );
324
+ QCOMPARE ( longField.displayString ( 599999898999LL ), QString ( " 599,999,898,999 " ) );
325
325
326
326
// test NULL int
327
327
QVariant nullInt = QVariant ( QVariant::Int );
@@ -333,6 +333,8 @@ void TestQgsField::displayString()
333
333
QgsField doubleFieldNoPrec ( QStringLiteral ( " double" ), QVariant::Double, QStringLiteral ( " double" ), 10 );
334
334
QCOMPARE ( doubleFieldNoPrec.displayString ( 5.005005 ), QString ( " 5.005005" ) );
335
335
QCOMPARE ( doubleFieldNoPrec.displayString ( 5.005005005 ), QString ( " 5.005005005" ) );
336
+ QCOMPARE ( QLocale ().decimalPoint (), ' .' );
337
+ QCOMPARE ( QLocale ().numberOptions () & QLocale::NumberOption::OmitGroupSeparator, QLocale::NumberOption::DefaultNumberOptions );
336
338
QCOMPARE ( doubleFieldNoPrec.displayString ( 599999898999.0 ), QString ( " 599,999,898,999" ) );
337
339
338
340
// test NULL double
@@ -345,6 +347,43 @@ void TestQgsField::displayString()
345
347
QCOMPARE ( doubleFieldNoPrec.displayString ( 5.005005 ), QString ( " 5,005005" ) );
346
348
QCOMPARE ( doubleFieldNoPrec.displayString ( 5.005005005 ), QString ( " 5,005005005" ) );
347
349
QCOMPARE ( doubleFieldNoPrec.displayString ( 599999898999.0 ), QString ( " 599.999.898.999" ) );
350
+ QCOMPARE ( doubleFieldNoPrec.displayString ( 5999.123456 ), QString ( " 5.999,123456" ) );
351
+
352
+ // test value with custom German locale (OmitGroupSeparator)
353
+ QLocale customGerman ( QLocale::German );
354
+ customGerman.setNumberOptions ( QLocale::NumberOption::OmitGroupSeparator );
355
+ QLocale::setDefault ( customGerman );
356
+ QCOMPARE ( doubleField.displayString ( 5.005005 ), QString ( " 5,005" ) );
357
+ QCOMPARE ( doubleFieldNoPrec.displayString ( 5.005005 ), QString ( " 5,005005" ) );
358
+ QCOMPARE ( doubleFieldNoPrec.displayString ( 5.005005005 ), QString ( " 5,005005005" ) );
359
+ QCOMPARE ( doubleFieldNoPrec.displayString ( 599999898999.0 ), QString ( " 599999898999" ) );
360
+ QCOMPARE ( doubleFieldNoPrec.displayString ( 5999.123456 ), QString ( " 5999,123456" ) );
361
+
362
+ // test int value in int type with custom German locale (OmitGroupSeparator)
363
+ QCOMPARE ( intField2.displayString ( 5 ), QString ( " 5" ) );
364
+ QCOMPARE ( intField2.displayString ( 599999898999LL ), QString ( " 599999898999" ) );
365
+
366
+ // test long type with custom German locale (OmitGroupSeparator)
367
+ QCOMPARE ( longField.displayString ( 5 ), QString ( " 5" ) );
368
+ QCOMPARE ( longField.displayString ( 599999898999LL ), QString ( " 599999898999" ) );
369
+
370
+ // test value with custom english locale (OmitGroupSeparator)
371
+ QLocale customEnglish ( QLocale::English );
372
+ customEnglish.setNumberOptions ( QLocale::NumberOption::OmitGroupSeparator );
373
+ QLocale::setDefault ( customEnglish );
374
+ QCOMPARE ( doubleField.displayString ( 5.005005 ), QString ( " 5.005" ) );
375
+ QCOMPARE ( doubleFieldNoPrec.displayString ( 5.005005 ), QString ( " 5.005005" ) );
376
+ QCOMPARE ( doubleFieldNoPrec.displayString ( 5.005005005 ), QString ( " 5.005005005" ) );
377
+ QCOMPARE ( doubleFieldNoPrec.displayString ( 599999898999.0 ), QString ( " 599999898999" ) );
378
+ QCOMPARE ( doubleFieldNoPrec.displayString ( 5999.123456 ), QString ( " 5999.123456" ) );
379
+
380
+ // test int value in int type with custom english locale (OmitGroupSeparator)
381
+ QCOMPARE ( intField2.displayString ( 5 ), QString ( " 5" ) );
382
+ QCOMPARE ( intField2.displayString ( 599999898999LL ), QString ( " 599999898999" ) );
383
+
384
+ // test long type with custom english locale (OmitGroupSeparator)
385
+ QCOMPARE ( longField.displayString ( 5 ), QString ( " 5" ) );
386
+ QCOMPARE ( longField.displayString ( 599999898999LL ), QString ( " 599999898999" ) );
348
387
349
388
}
350
389
0 commit comments