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.
|
:return: float - exchanged value of the foreign currency you can receive.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
pass
|
return budget / exchange_rate
|
||||||
|
|
||||||
|
|
||||||
def get_change(budget, exchanging_value):
|
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.
|
:return: float - amount left of your starting currency after exchanging.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
pass
|
return budget - exchanging_value
|
||||||
|
|
||||||
|
|
||||||
def get_value_of_bills(denomination, number_of_bills):
|
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.
|
:return: int - total value of bills you now have.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
pass
|
return denomination * number_of_bills
|
||||||
|
|
||||||
|
|
||||||
def get_number_of_bills(budget, denomination):
|
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.
|
:return: int - number of bills after exchanging all your money.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
pass
|
return int(budget) // int(denomination)
|
||||||
|
|
||||||
|
|
||||||
def exchangeable_value(budget, exchange_rate, spread, 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.
|
: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):
|
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.
|
: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):
|
class CurrencyExchangeTest(unittest.TestCase):
|
||||||
|
|
||||||
@pytest.mark.task(taskno=1)
|
|
||||||
def test_exchange_money(self):
|
def test_exchange_money(self):
|
||||||
input_data = [(100000, 0.84), (700000, 10.1)]
|
input_data = [(100000, 0.84), (700000, 10.1)]
|
||||||
output_data = [119047, 69306]
|
output_data = [119047, 69306]
|
||||||
|
|
||||||
for variant, (input_data, output_data) in enumerate(zip(input_data, output_data), start=1):
|
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):
|
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):
|
def test_get_change(self):
|
||||||
input_data = [(463000, 5000), (1250, 120), (15000, 1380)]
|
input_data = [(463000, 5000), (1250, 120), (15000, 1380)]
|
||||||
output_data = [458000, 1130, 13620]
|
output_data = [458000, 1130, 13620]
|
||||||
|
|
||||||
for variant, (input_data, output_data) in enumerate(zip(input_data, output_data), start=1):
|
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):
|
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):
|
def test_get_value_of_bills(self):
|
||||||
input_data = [(10000, 128), (50, 360), (200, 200)]
|
input_data = [(10000, 128), (50, 360), (200, 200)]
|
||||||
output_data = [1280000, 18000, 40000]
|
output_data = [1280000, 18000, 40000]
|
||||||
|
|
||||||
for variant, (input_data, output_data) in enumerate(zip(input_data, output_data), start=1):
|
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):
|
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):
|
def test_get_number_of_bills(self):
|
||||||
input_data = [(163270, 50000), (54361, 1000)]
|
input_data = [(163270, 50000), (54361, 1000)]
|
||||||
output_data = [3, 54]
|
output_data = [3, 54]
|
||||||
|
|
||||||
for variant, (input_data, output_data) in enumerate(zip(input_data, output_data), start=1):
|
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):
|
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):
|
def test_exchangeable_value(self):
|
||||||
inputs = [
|
inputs = [
|
||||||
(100000, 10.61, 10, 1),
|
(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):
|
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):
|
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):
|
def test_non_exchangeable_value(self):
|
||||||
inputs = [
|
inputs = [
|
||||||
(100000, 10.61, 10, 1),
|
(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):
|
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):
|
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