Skip to content

Commit 05fccb4

Browse files
committed
Removed cached conversion factor after setting it
1 parent 5529eac commit 05fccb4

2 files changed

Lines changed: 21 additions & 1 deletion

File tree

PyCaliper/test/test_misc.py

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,4 +36,20 @@ def testNamedQuantity(self):
3636
self.assertTrue(q.uom is not None)
3737
self.assertTrue(str(q) is not None)
3838

39-
39+
def testCurrencyConversion(self):
40+
msys = MeasurementSystem.instance()
41+
42+
usd_uom = msys.createScalarUOM(UnitType.CURRENCY, None, "US-Dollar", "USD", "US paper dollar")
43+
usdt_uom = msys.createScalarUOM(UnitType.CURRENCY, None, "Tether", "USDT", "USD stable coin")
44+
45+
# Initial conversion rate
46+
usdt_uom.setConversion(0.9, usd_uom)
47+
48+
portfolio = Quantity(200, usdt_uom)
49+
portfolio_usd = portfolio.convert(usd_uom)
50+
self.assertAlmostEqual(portfolio_usd.amount, 180.0, None, None, TestingUtils.DELTA6)
51+
52+
# change conversion rate
53+
usdt_uom.setConversion(1.0, usd_uom)
54+
portfolio_usd = portfolio.convert(usd_uom)
55+
self.assertAlmostEqual(portfolio_usd.amount, 200.0, None, None, TestingUtils.DELTA6)

PyCaliper/uom/unit_of_measure.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -454,6 +454,10 @@ def setConversion(self, scalingFactor, abscissaUnit, offset=0.0):
454454

455455
# re-cache
456456
CacheManager.instance().registerUOM(self)
457+
458+
# remove from conversion registry
459+
if abscissaUnit in self.conversionRegistry:
460+
self.conversionRegistry.pop(abscissaUnit)
457461

458462
##
459463
# Get the exponent of a power unit

0 commit comments

Comments
 (0)