Browse Source

Merge branch 'feature/currency-exchange' into feature/balance-operations

remotes/origin/feature/loan-eligibility
Shivam Chaudhary 2 years ago
parent
commit
9d7d3d3902
  1. 13
      src/currencyExchange.c
  2. 9
      src/currencyExchange.h
  3. 48
      tests/test_currencyExchange.c

13
src/currencyExchange.c

@ -0,0 +1,13 @@
#include "currencyExchange.h"
float convert(float euro, int newCurrencyCode) {
switch(newCurrencyCode) {
case CURRENCY_CODE_USD:
return ( euro * USD_RATE_OF_ONE_EURO );
case CURRENCY_CODE_GBP:
return ( euro * GBP_RATE_OF_ONE_EURO );
}
return -1;
}

9
src/currencyExchange.h

@ -0,0 +1,9 @@
#include <stdio.h>
#define USD_RATE_OF_ONE_EURO 1.07
#define GBP_RATE_OF_ONE_EURO 0.89
#define CURRENCY_CODE_USD 1
#define CURRENCY_CODE_GBP 2
float convert(float euro, int newCurrencyCode);

48
tests/test_currencyExchange.c

@ -0,0 +1,48 @@
#ifdef TEST
#include "unity.h"
#include "currencyExchange.h"
void setUp(void)
{
}
void tearDown(void)
{
}
void test_convert(void) {
/* Arrange */
int length = 10;
float euro[] = {34, 233, 400, 100, 45, 344, 767.32, 122, 435, 899};
float expectedUSD[length];
float expectedGBP[length];
float resultUSD[length];
float resultGBP[length];
for (int i = 0; i < length; i++) {
expectedUSD[i] = euro[i] * USD_RATE_OF_ONE_EURO;
expectedGBP[i] = euro[i] * GBP_RATE_OF_ONE_EURO;
}
/* Act */
for (int i = 0; i < length; i++) {
resultUSD[i] = convert(euro[i], CURRENCY_CODE_USD);
resultGBP[i] = convert(euro[i], CURRENCY_CODE_GBP);
}
/* Assert*/
for (int i = 0; i < length; i++) {
TEST_ASSERT_EQUAL_FLOAT(expectedUSD[i], resultUSD[i]);
TEST_ASSERT_EQUAL_FLOAT(expectedGBP[i], resultGBP[i]);
}
}
#endif // TEST
Loading…
Cancel
Save