finish the exercise
This commit is contained in:
parent
afbfecdc55
commit
7674f30a91
|
@ -6,7 +6,7 @@ def exchange_money(budget, exchange_rate):
|
|||
:return: float - exchanged value of the foreign currency you can receive.
|
||||
"""
|
||||
|
||||
pass
|
||||
return budget / exchange_rate
|
||||
|
||||
|
||||
def get_change(budget, exchanging_value):
|
||||
|
@ -17,7 +17,7 @@ def get_change(budget, exchanging_value):
|
|||
:return: float - amount left of your starting currency after exchanging.
|
||||
"""
|
||||
|
||||
pass
|
||||
return budget - exchanging_value
|
||||
|
||||
|
||||
def get_value_of_bills(denomination, number_of_bills):
|
||||
|
@ -28,7 +28,7 @@ def get_value_of_bills(denomination, number_of_bills):
|
|||
:return: int - total value of bills you now have.
|
||||
"""
|
||||
|
||||
pass
|
||||
return denomination * number_of_bills
|
||||
|
||||
|
||||
def get_number_of_bills(budget, denomination):
|
||||
|
@ -39,7 +39,7 @@ def get_number_of_bills(budget, denomination):
|
|||
:return: int - number of bills after exchanging all your money.
|
||||
"""
|
||||
|
||||
pass
|
||||
return int(budget) // int(denomination)
|
||||
|
||||
|
||||
def exchangeable_value(budget, exchange_rate, spread, denomination):
|
||||
|
@ -52,7 +52,12 @@ def exchangeable_value(budget, exchange_rate, spread, denomination):
|
|||
:return: int - maximum value you can get.
|
||||
"""
|
||||
|
||||
pass
|
||||
percentage = spread / 100
|
||||
real_exchange_rate = exchange_rate + exchange_rate * percentage
|
||||
number_of_bills = get_number_of_bills(
|
||||
budget / real_exchange_rate, denomination)
|
||||
|
||||
return number_of_bills * denomination
|
||||
|
||||
|
||||
def non_exchangeable_value(budget, exchange_rate, spread, denomination):
|
||||
|
@ -65,4 +70,11 @@ def non_exchangeable_value(budget, exchange_rate, spread, denomination):
|
|||
:return: int non-exchangeable value.
|
||||
"""
|
||||
|
||||
pass
|
||||
percentage = spread / 100
|
||||
real_exchange_rate = exchange_rate + exchange_rate * percentage
|
||||
number_of_bills = get_number_of_bills(
|
||||
budget / real_exchange_rate, denomination)
|
||||
|
||||
foreign = number_of_bills * denomination
|
||||
|
||||
return int(budget / real_exchange_rate - foreign)
|
||||
|
|
|
@ -11,43 +11,42 @@ from exchange import (
|
|||
|
||||
class CurrencyExchangeTest(unittest.TestCase):
|
||||
|
||||
@pytest.mark.task(taskno=1)
|
||||
def test_exchange_money(self):
|
||||
input_data = [(100000, 0.84), (700000, 10.1)]
|
||||
output_data = [119047, 69306]
|
||||
|
||||
for variant, (input_data, output_data) in enumerate(zip(input_data, output_data), start=1):
|
||||
with self.subTest(f"variation #{variant}", input_data=input_data, output_data=output_data):
|
||||
self.assertEqual(int(exchange_money(input_data[0], input_data[1])), output_data)
|
||||
self.assertEqual(
|
||||
int(exchange_money(input_data[0], input_data[1])), output_data)
|
||||
|
||||
@pytest.mark.task(taskno=2)
|
||||
def test_get_change(self):
|
||||
input_data = [(463000, 5000), (1250, 120), (15000, 1380)]
|
||||
output_data = [458000, 1130, 13620]
|
||||
|
||||
for variant, (input_data, output_data) in enumerate(zip(input_data, output_data), start=1):
|
||||
with self.subTest(f"variation #{variant}", input_data=input_data, output_data=output_data):
|
||||
self.assertEqual(get_change(input_data[0], input_data[1]), output_data)
|
||||
self.assertEqual(get_change(
|
||||
input_data[0], input_data[1]), output_data)
|
||||
|
||||
@pytest.mark.task(taskno=3)
|
||||
def test_get_value_of_bills(self):
|
||||
input_data = [(10000, 128), (50, 360), (200, 200)]
|
||||
output_data = [1280000, 18000, 40000]
|
||||
|
||||
for variant, (input_data, output_data) in enumerate(zip(input_data, output_data), start=1):
|
||||
with self.subTest(f"variation #{variant}", input_data=input_data, output_data=output_data):
|
||||
self.assertEqual(get_value_of_bills(input_data[0], input_data[1]), output_data)
|
||||
self.assertEqual(get_value_of_bills(
|
||||
input_data[0], input_data[1]), output_data)
|
||||
|
||||
@pytest.mark.task(taskno=4)
|
||||
def test_get_number_of_bills(self):
|
||||
input_data = [(163270, 50000), (54361, 1000)]
|
||||
output_data = [3, 54]
|
||||
|
||||
for variant, (input_data, output_data) in enumerate(zip(input_data, output_data), start=1):
|
||||
with self.subTest(f"variation #{variant}", input_data=input_data, output_data=output_data):
|
||||
self.assertEqual(get_number_of_bills(input_data[0], input_data[1]), output_data)
|
||||
self.assertEqual(get_number_of_bills(
|
||||
input_data[0], input_data[1]), output_data)
|
||||
|
||||
@pytest.mark.task(taskno=5)
|
||||
def test_exchangeable_value(self):
|
||||
inputs = [
|
||||
(100000, 10.61, 10, 1),
|
||||
|
@ -60,9 +59,9 @@ class CurrencyExchangeTest(unittest.TestCase):
|
|||
|
||||
for variant, (inputs, output_data) in enumerate(zip(inputs, output_data), start=1):
|
||||
with self.subTest(f"variation #{variant}", inputs=inputs, output_data=output_data):
|
||||
self.assertEqual(exchangeable_value(inputs[0], inputs[1], inputs[2], inputs[3]), output_data)
|
||||
self.assertEqual(exchangeable_value(
|
||||
inputs[0], inputs[1], inputs[2], inputs[3]), output_data)
|
||||
|
||||
@pytest.mark.task(taskno=6)
|
||||
def test_non_exchangeable_value(self):
|
||||
inputs = [
|
||||
(100000, 10.61, 10, 1),
|
||||
|
@ -74,4 +73,5 @@ class CurrencyExchangeTest(unittest.TestCase):
|
|||
|
||||
for variant, (inputs, output_data) in enumerate(zip(inputs, output_data), start=1):
|
||||
with self.subTest(f"variation #{variant}", inputs=inputs, output_data=output_data):
|
||||
self.assertEqual(non_exchangeable_value(inputs[0], inputs[1], inputs[2], inputs[3]), output_data)
|
||||
self.assertEqual(non_exchangeable_value(
|
||||
inputs[0], inputs[1], inputs[2], inputs[3]), output_data)
|
||||
|
|
Loading…
Reference in New Issue