|
@@ -42,14 +42,26 @@ def test_person_last_name_string():
|
|
|
p.last_name = 'äbc'
|
|
|
|
|
|
@pytest.mark.parametrize(('text', 'sum'), [
|
|
|
- [u'$1,23 USD', dingguo.Sum(1.23, u'USD')],
|
|
|
- [u'$1.23 USD', dingguo.Sum(1.23, u'USD')],
|
|
|
- [u'$30 USD', dingguo.Sum(30.0, u'USD')],
|
|
|
- [u'$30,00 USD', dingguo.Sum(30.0, u'USD')],
|
|
|
- [u'$30.00 USD', dingguo.Sum(30.0, u'USD')],
|
|
|
- [u'$8', dingguo.Sum(8.0, u'USD')],
|
|
|
- [u'$8,00', dingguo.Sum(8.0, u'USD')],
|
|
|
- [u'$8.00', dingguo.Sum(8.0, u'USD')],
|
|
|
+ [u'$-1,23 USD', dingguo.Sum(-1.23, u'USD')],
|
|
|
+ [u'$-1.23 USD', dingguo.Sum(-1.23, u'USD')],
|
|
|
+ [u'$-30 USD', dingguo.Sum(-30.0, u'USD')],
|
|
|
+ [u'$-30,00 USD', dingguo.Sum(-30.0, u'USD')],
|
|
|
+ [u'$-30.00 USD', dingguo.Sum(-30.0, u'USD')],
|
|
|
+ [u'$-8', dingguo.Sum(-8.0, u'USD')],
|
|
|
+ [u'$-8,00', dingguo.Sum(-8.0, u'USD')],
|
|
|
+ [u'$-8.00', dingguo.Sum(-8.0, u'USD')],
|
|
|
+ [u'$1,23 USD', dingguo.Sum(1.23, u'USD')],
|
|
|
+ [u'$1.23 USD', dingguo.Sum(1.23, u'USD')],
|
|
|
+ [u'$30 USD', dingguo.Sum(30.0, u'USD')],
|
|
|
+ [u'$30,00 USD', dingguo.Sum(30.0, u'USD')],
|
|
|
+ [u'$30.00 USD', dingguo.Sum(30.0, u'USD')],
|
|
|
+ [u'$8', dingguo.Sum(8.0, u'USD')],
|
|
|
+ [u'$8,00', dingguo.Sum(8.0, u'USD')],
|
|
|
+ [u'$8.00', dingguo.Sum(8.0, u'USD')],
|
|
|
+ [u'US$-0.50', dingguo.Sum(-0.5, u'USD')],
|
|
|
+ [u'US$0.50', dingguo.Sum(0.5, u'USD')],
|
|
|
+ [u'€-0.25', dingguo.Sum(-0.25, u'EUR')],
|
|
|
+ [u'€1.20', dingguo.Sum(1.2, u'EUR')],
|
|
|
])
|
|
|
def test_sum_parse_text(text, sum):
|
|
|
assert dingguo.Sum.parse_text(text) == sum
|
|
@@ -83,3 +95,24 @@ def test_figure_sub(minuend, subtrahend, difference):
|
|
|
def test_figure_sub_fail(minuend, subtrahend):
|
|
|
with pytest.raises(Exception):
|
|
|
(minuend - subtrahend)
|
|
|
+
|
|
|
+@pytest.mark.parametrize(('factor_a', 'factor_b', 'product'), [
|
|
|
+ [dingguo.Sum(5.0, u'USD'), 1.5, dingguo.Sum(7.5, u'USD')],
|
|
|
+ [dingguo.Sum(5.0, u'USD'), 2, dingguo.Sum(10.0, u'USD')],
|
|
|
+ [dingguo.ScalarFigure(5.0, u'cm'), -0.5, dingguo.ScalarFigure(-2.5, u'cm')],
|
|
|
+ [dingguo.ScalarFigure(1.0, u'kg'), 10, dingguo.ScalarFigure(10.0, u'kg')],
|
|
|
+ ])
|
|
|
+def test_scalar_figure_mul(factor_a, factor_b, product):
|
|
|
+ factor_a_copy = copy.deepcopy(factor_a)
|
|
|
+ factor_b_copy = copy.deepcopy(factor_b)
|
|
|
+ assert (factor_a * factor_b) == product
|
|
|
+ assert factor_a_copy == factor_a
|
|
|
+ assert factor_b_copy == factor_b
|
|
|
+
|
|
|
+@pytest.mark.parametrize(('factor_a', 'factor_b'), [
|
|
|
+ [dingguo.Sum(5.0, u'USD'), dingguo.Sum(2.0, u'EUR')],
|
|
|
+ [dingguo.ScalarFigure(5.0, u'cm'), dingguo.ScalarFigure(2.0, u'cm')],
|
|
|
+ ])
|
|
|
+def test_figure_mul_fail(factor_a, factor_b):
|
|
|
+ with pytest.raises(Exception):
|
|
|
+ (factor_a * factor_b)
|