def testCurrencyFormat(self): w = QgsNumericFormatSelectorWidget() original = QgsCurrencyNumericFormat() original.setShowPlusSign(True) original.setShowThousandsSeparator(False) original.setNumberDecimalPlaces(4) original.setShowTrailingZeros(True) original.setPrefix('$$') original.setSuffix('AUD') w.setFormat(original) new = w.format() self.assertIsInstance(new, QgsCurrencyNumericFormat) self.assertEqual(new.showPlusSign(), original.showPlusSign()) self.assertEqual(new.showThousandsSeparator(), original.showThousandsSeparator()) self.assertEqual(new.numberDecimalPlaces(), original.numberDecimalPlaces()) self.assertEqual(new.showTrailingZeros(), original.showTrailingZeros()) self.assertEqual(new.prefix(), original.prefix()) self.assertEqual(new.suffix(), original.suffix())
def testCurrencyFormat(self): """ test currency formatter """ f = QgsCurrencyNumericFormat() f.setPrefix('$') context = QgsNumericFormatContext() f.setShowTrailingZeros(False) self.assertEqual(f.formatDouble(0, context), '$0') self.assertEqual(f.formatDouble(5, context), '$5') self.assertEqual(f.formatDouble(5.5, context), '$5.5') self.assertEqual(f.formatDouble(-5, context), '-$5') self.assertEqual(f.formatDouble(-5.5, context), '-$5.5') self.assertEqual(f.formatDouble(-55555555.5, context), '-$55,555,555.5') context.setDecimalSeparator('x') self.assertEqual(f.formatDouble(0, context), '$0') self.assertEqual(f.formatDouble(-5.5, context), '-$5x5') self.assertEqual(f.formatDouble(-55555555.5, context), '-$55,555,555x5') context.setThousandsSeparator('y') self.assertEqual(f.formatDouble(-5.5, context), '-$5x5') self.assertEqual(f.formatDouble(-55555555.5, context), '-$55y555y555x5') f.setShowThousandsSeparator(False) self.assertEqual(f.formatDouble(-5.5, context), '-$5x5') self.assertEqual(f.formatDouble(-55555555.5, context), '-$55555555x5') context.setDecimalSeparator('.') f.setNumberDecimalPlaces(0) self.assertEqual(f.formatDouble(0, context), '$0') self.assertEqual(f.formatDouble(5.5, context), '$6') self.assertEqual(f.formatDouble(55555555.5, context), '$55555556') self.assertEqual(f.formatDouble(55555555.123456, context), '$55555555') self.assertEqual(f.formatDouble(-5.5, context), '-$6') self.assertEqual(f.formatDouble(-55555555.5, context), '-$55555556') f.setNumberDecimalPlaces(3) self.assertEqual(f.formatDouble(0, context), '$0') self.assertEqual(f.formatDouble(5.5, context), '$5.5') self.assertEqual(f.formatDouble(55555555.5, context), '$55555555.5') self.assertEqual(f.formatDouble(55555555.123456, context), '$55555555.123') self.assertEqual(f.formatDouble(-5.5, context), '-$5.5') self.assertEqual(f.formatDouble(-55555555.5, context), '-$55555555.5') f.setShowTrailingZeros(True) self.assertEqual(f.formatDouble(0, context), '$0.000') self.assertEqual(f.formatDouble(5, context), '$5.000') self.assertEqual(f.formatDouble(-5, context), '-$5.000') self.assertEqual(f.formatDouble(5.5, context), '$5.500') self.assertEqual(f.formatDouble(55555555.5, context), '$55555555.500') self.assertEqual(f.formatDouble(55555555.123456, context), '$55555555.123') self.assertEqual(f.formatDouble(-5.5, context), '-$5.500') self.assertEqual(f.formatDouble(-55555555.5, context), '-$55555555.500') f.setShowPlusSign(True) self.assertEqual(f.formatDouble(0, context), '$0.000') self.assertEqual(f.formatDouble(5, context), '+$5.000') self.assertEqual(f.formatDouble(-5, context), '-$5.000') self.assertEqual(f.formatDouble(5.5, context), '+$5.500') self.assertEqual(f.formatDouble(55555555.5, context), '+$55555555.500') self.assertEqual(f.formatDouble(55555555.123456, context), '+$55555555.123') self.assertEqual(f.formatDouble(-5.5, context), '-$5.500') self.assertEqual(f.formatDouble(-55555555.5, context), '-$55555555.500') f.setSuffix('AUD') self.assertEqual(f.formatDouble(0, context), '$0.000AUD') self.assertEqual(f.formatDouble(5, context), '+$5.000AUD') self.assertEqual(f.formatDouble(-5, context), '-$5.000AUD') self.assertEqual(f.formatDouble(5.5, context), '+$5.500AUD') self.assertEqual(f.formatDouble(55555555.5, context), '+$55555555.500AUD') self.assertEqual(f.formatDouble(55555555.123456, context), '+$55555555.123AUD') self.assertEqual(f.formatDouble(-5.5, context), '-$5.500AUD') self.assertEqual(f.formatDouble(-55555555.5, context), '-$55555555.500AUD') f2 = f.clone() self.assertIsInstance(f2, QgsCurrencyNumericFormat) self.assertEqual(f2.showTrailingZeros(), f.showTrailingZeros()) self.assertEqual(f2.showPlusSign(), f.showPlusSign()) self.assertEqual(f2.numberDecimalPlaces(), f.numberDecimalPlaces()) self.assertEqual(f2.showThousandsSeparator(), f.showThousandsSeparator()) self.assertEqual(f2.prefix(), f.prefix()) self.assertEqual(f2.suffix(), f.suffix()) doc = QDomDocument("testdoc") elem = doc.createElement("test") f2.writeXml(elem, doc, QgsReadWriteContext()) f3 = QgsNumericFormatRegistry().createFromXml(elem, QgsReadWriteContext()) self.assertIsInstance(f3, QgsCurrencyNumericFormat) self.assertEqual(f3.showTrailingZeros(), f.showTrailingZeros()) self.assertEqual(f3.showPlusSign(), f.showPlusSign()) self.assertEqual(f3.numberDecimalPlaces(), f.numberDecimalPlaces()) self.assertEqual(f3.showThousandsSeparator(), f.showThousandsSeparator()) self.assertEqual(f3.prefix(), f.prefix()) self.assertEqual(f3.suffix(), f.suffix())