From d7fb0467bdf762da5b1f4974963fe512e7a261a9 Mon Sep 17 00:00:00 2001 From: Dean Fitzgerald Date: Tue, 20 Jan 2015 16:49:04 -0500 Subject: [PATCH 1/6] Testing 1 to 1 conversion Please enter the commit message for your changes. Lines starting --- currency_converter.py | 5 +++++ test_currency_converter.py | 6 ++++++ 2 files changed, 11 insertions(+) create mode 100644 currency_converter.py create mode 100644 test_currency_converter.py diff --git a/currency_converter.py b/currency_converter.py new file mode 100644 index 0000000..1672545 --- /dev/null +++ b/currency_converter.py @@ -0,0 +1,5 @@ +def convert(rates, value, from_code, to_code): + """Take a monetary value in one currency and return a value in another + currency""" + if from_code == to_code: + return str(value) + " " + to_code diff --git a/test_currency_converter.py b/test_currency_converter.py new file mode 100644 index 0000000..797d065 --- /dev/null +++ b/test_currency_converter.py @@ -0,0 +1,6 @@ +import currency_converter as cc +rates = [("USD", "EUR", 0.74), ("EUR", "JPY", 145.949)] + + +def test_one_to_one(): + assert cc.convert(rates, 1, "USD", "USD") == "1 USD" From c51e5fcc0df41083a9c6593bf4f6f27510e1d65b Mon Sep 17 00:00:00 2001 From: Dean Fitzgerald Date: Tue, 20 Jan 2015 16:55:37 -0500 Subject: [PATCH 2/6] Test for conversion. --- currency_converter.py | 8 ++++++++ test_currency_converter.py | 3 +++ 2 files changed, 11 insertions(+) diff --git a/currency_converter.py b/currency_converter.py index 1672545..0bc846b 100644 --- a/currency_converter.py +++ b/currency_converter.py @@ -3,3 +3,11 @@ def convert(rates, value, from_code, to_code): currency""" if from_code == to_code: return str(value) + " " + to_code + else: + returned_list = [(origin, destination, rate) for (origin, destination, rate) + in rates if from_code == origin] + returned_tuple = returned_list[0] + returned_rate = returned_tuple[2] + new_value = returned_rate * value + return str(new_value) + " " + to_code + diff --git a/test_currency_converter.py b/test_currency_converter.py index 797d065..c0247b0 100644 --- a/test_currency_converter.py +++ b/test_currency_converter.py @@ -4,3 +4,6 @@ def test_one_to_one(): assert cc.convert(rates, 1, "USD", "USD") == "1 USD" + +def test_conversion_simple(): + assert cc.convert(rates, 1, "USD", "EUR") == "0.74 EUR" From 21b275d047b34518f20708d8dc3bd99d4f216277 Mon Sep 17 00:00:00 2001 From: Dean Fitzgerald Date: Tue, 20 Jan 2015 17:00:04 -0500 Subject: [PATCH 3/6] Test for not 1. --- test_currency_converter.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/test_currency_converter.py b/test_currency_converter.py index c0247b0..277ea74 100644 --- a/test_currency_converter.py +++ b/test_currency_converter.py @@ -7,3 +7,6 @@ def test_one_to_one(): def test_conversion_simple(): assert cc.convert(rates, 1, "USD", "EUR") == "0.74 EUR" + +def test_conversion(): + assert cc.convert(rates, 0.5, "USD", "EUR") == "0.37 EUR" From 52e510afc2708704c3953fed9d0b17e5c5d6ecb0 Mon Sep 17 00:00:00 2001 From: Dean Fitzgerald Date: Tue, 20 Jan 2015 17:02:38 -0500 Subject: [PATCH 4/6] test 2 dollars to EUR --- test_currency_converter.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/test_currency_converter.py b/test_currency_converter.py index 277ea74..70b5959 100644 --- a/test_currency_converter.py +++ b/test_currency_converter.py @@ -5,8 +5,14 @@ def test_one_to_one(): assert cc.convert(rates, 1, "USD", "USD") == "1 USD" + def test_conversion_simple(): assert cc.convert(rates, 1, "USD", "EUR") == "0.74 EUR" + def test_conversion(): assert cc.convert(rates, 0.5, "USD", "EUR") == "0.37 EUR" + + +def test_conversion_2_dollars(): + assert cc.convert(rates, 2, "USD", "EUR") == "1.48 EUR" From 819ebeb0c03a1eae7c4cccbe4cb8716d88067cad Mon Sep 17 00:00:00 2001 From: Dean Fitzgerald Date: Tue, 20 Jan 2015 18:04:16 -0500 Subject: [PATCH 5/6] test reverse --- currency_converter.py | 20 ++++++++++++++++++-- test_currency_converter.py | 6 ++++++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/currency_converter.py b/currency_converter.py index 0bc846b..adea0d4 100644 --- a/currency_converter.py +++ b/currency_converter.py @@ -1,13 +1,29 @@ +from decimal import Decimal + +rates = [("USD", "EUR", 0.74), ("EUR", "JPY", 145.949)] +cents = Decimal("0.01") + + def convert(rates, value, from_code, to_code): """Take a monetary value in one currency and return a value in another currency""" if from_code == to_code: return str(value) + " " + to_code else: - returned_list = [(origin, destination, rate) for (origin, destination, rate) + returned_list = [(origin, destination, rate) + for (origin, destination, rate) in rates if from_code == origin] returned_tuple = returned_list[0] returned_rate = returned_tuple[2] new_value = returned_rate * value return str(new_value) + " " + to_code - + + +def convert_reverse(rates, value, from_code, to_code): + returned_list = [(destination, origin, rate) + for (destination, origin, rate) + in rates if to_code == destination] + returned_tuple = returned_list[0] + returned_rate = returned_tuple[2] + new_value = Decimal(value / returned_rate).quantize(cents) + return str(new_value) + " " + to_code diff --git a/test_currency_converter.py b/test_currency_converter.py index 70b5959..57d962a 100644 --- a/test_currency_converter.py +++ b/test_currency_converter.py @@ -12,7 +12,13 @@ def test_conversion_simple(): def test_conversion(): assert cc.convert(rates, 0.5, "USD", "EUR") == "0.37 EUR" + assert cc.convert(rates, 2, "EUR", "JPY") == "291.898 JPY" def test_conversion_2_dollars(): assert cc.convert(rates, 2, "USD", "EUR") == "1.48 EUR" + + +def test_reverse(): + assert cc.convert_reverse(rates, 2, "EUR", "USD") == "2.70 USD" + assert cc.convert_reverse(rates, 145.949, "JPY", "EUR") == "1.00 EUR" From cb03fc554e50336e6a70c732a4292c16d3e038f2 Mon Sep 17 00:00:00 2001 From: Dean Fitzgerald Date: Tue, 7 Apr 2015 11:33:09 -0400 Subject: [PATCH 6/6] restructure --- more_tests.py | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 more_tests.py diff --git a/more_tests.py b/more_tests.py new file mode 100644 index 0000000..2a3dac1 --- /dev/null +++ b/more_tests.py @@ -0,0 +1,10 @@ + + + + # returned_list = [(origin, destination, rate) for (origin, destination, rate) + # in rates if from_code == origin] + # returned_tuple = returned_list[0] + # returned_rate = returned_tuple[2] + # new_value = returned_rate * value + # return new_value + # #return ("{} {}".format(return_value, to_code))