11import re
2+ from decimal import Decimal
23
34import pytest
45
@@ -79,6 +80,12 @@ def test_price(self, finance):
7980 result = finance .price (minimum = 100.00 , maximum = 1999.99 )
8081 assert isinstance (result , float )
8182
83+ def test_price_as_decimal (self , finance ):
84+ result = finance .price (minimum = 100.00 , maximum = 1999.99 , as_decimal = True )
85+ assert isinstance (result , Decimal )
86+ assert result >= Decimal ("100.00" )
87+ assert result <= Decimal ("1999.99" )
88+
8289 @pytest .mark .parametrize (
8390 "minimum, maximum" ,
8491 [
@@ -92,6 +99,26 @@ def test_price_in_btc(self, _finance, minimum, maximum):
9299 assert float (price ) >= minimum
93100 assert float (price ) <= maximum
94101
102+ def test_price_in_btc_as_decimal (self , _finance ):
103+ result = _finance .price_in_btc (minimum = 0.5 , maximum = 1.5 , as_decimal = True )
104+ assert isinstance (result , Decimal )
105+ assert result >= Decimal ("0.5" )
106+ assert result <= Decimal ("1.5" )
107+
108+ def test_price_precision (self , _finance ):
109+ result = _finance .price (minimum = 10 , maximum = 100 , precision = 4 , as_decimal = True )
110+ assert isinstance (result , Decimal )
111+ decimal_places = abs (result .as_tuple ().exponent )
112+ assert decimal_places <= 4
113+
114+ def test_price_in_btc_precision (self , _finance ):
115+ result = _finance .price_in_btc (
116+ minimum = 0 , maximum = 1 , precision = 4 , as_decimal = True
117+ )
118+ assert isinstance (result , Decimal )
119+ decimal_places = abs (result .as_tuple ().exponent )
120+ assert decimal_places <= 4
121+
95122
96123class TestSeededFinance :
97124 @pytest .fixture ()
@@ -138,5 +165,11 @@ def test_price_in_btc(self, f1, f2):
138165 assert f1 .price_in_btc () == f2 .price_in_btc ()
139166 assert f1 .price_in_btc (1.11 , 22.2 ) == f2 .price_in_btc (1.11 , 22.2 )
140167
168+ def test_price_as_decimal (self , f1 , f2 ):
169+ assert f1 .price (as_decimal = True ) == f2 .price (as_decimal = True )
170+
171+ def test_price_in_btc_as_decimal (self , f1 , f2 ):
172+ assert f1 .price_in_btc (as_decimal = True ) == f2 .price_in_btc (as_decimal = True )
173+
141174 def test_bank (self , f1 , f2 ):
142175 assert f1 .bank () == f2 .bank ()
0 commit comments