From a7af5d4a553503488b7e1e6c9b510e505fe0d297 Mon Sep 17 00:00:00 2001 From: premanandreddysama Date: Mon, 23 Sep 2024 09:29:04 +0530 Subject: [PATCH 1/2] firstcommit --- src/main/java/RewardValue.java | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 src/main/java/RewardValue.java diff --git a/src/main/java/RewardValue.java b/src/main/java/RewardValue.java new file mode 100644 index 000000000..7d21e3150 --- /dev/null +++ b/src/main/java/RewardValue.java @@ -0,0 +1,31 @@ + + +public class RewardValue { + private double cashValue; + private double milesValue; + + // Conversion rate from miles to cash + private static final double MILES_TO_CASH_RATE = 0.0035; + + // Constructor that accepts a cash value + public RewardValue(double cashValue) { + this.cashValue = cashValue; + this.milesValue = cashValue / MILES_TO_CASH_RATE; // Convert cash to miles + } + + // Constructor that accepts a miles value + public RewardValue(double milesValue, boolean isMiles) { + this.milesValue = milesValue; + this.cashValue = milesValue * MILES_TO_CASH_RATE; // Convert miles to cash + } + + // Method to get the cash value + public double getCashValue() { + return cashValue; + } + + // Method to get the miles value + public double getMilesValue() { + return milesValue; + } +} From 61173b184d2775bef9133a5a2b578bf0f3133f88 Mon Sep 17 00:00:00 2001 From: premanandreddysama Date: Mon, 23 Sep 2024 10:22:11 +0530 Subject: [PATCH 2/2] updatedLogic --- src/main/java/RewardValue.java | 51 +++++++++++++++-------------- src/test/java/RewardValueTests.java | 13 +++++--- 2 files changed, 36 insertions(+), 28 deletions(-) diff --git a/src/main/java/RewardValue.java b/src/main/java/RewardValue.java index 7d21e3150..13832d38a 100644 --- a/src/main/java/RewardValue.java +++ b/src/main/java/RewardValue.java @@ -1,31 +1,34 @@ - - public class RewardValue { - private double cashValue; - private double milesValue; - - // Conversion rate from miles to cash - private static final double MILES_TO_CASH_RATE = 0.0035; + private Double cash; + private Integer miles; - // Constructor that accepts a cash value - public RewardValue(double cashValue) { - this.cashValue = cashValue; - this.milesValue = cashValue / MILES_TO_CASH_RATE; // Convert cash to miles + public static final double MILES_TO_CASH_CONVERSION_RATE = 0.0000035; + public RewardValue(double cash){ + this.cash = cash; } + public RewardValue(int miles){ + this.miles = miles; - // Constructor that accepts a miles value - public RewardValue(double milesValue, boolean isMiles) { - this.milesValue = milesValue; - this.cashValue = milesValue * MILES_TO_CASH_RATE; // Convert miles to cash } - - // Method to get the cash value - public double getCashValue() { - return cashValue; + Double getCashValue(){ + if (cash != null) { + return cash; + } else if (miles != null) { + // Convert miles to cash + return miles * MILES_TO_CASH_CONVERSION_RATE; + } else { + return -1.00; // Handle error case + } } - - // Method to get the miles value - public double getMilesValue() { - return milesValue; + int getMilesValue() { + if (miles != null) { + return miles; + } else if (cash != null) { + // Convert cash to miles + return (int) (cash / MILES_TO_CASH_CONVERSION_RATE); + } else { + return -1; // Handle error case + } } -} + +} \ No newline at end of file diff --git a/src/test/java/RewardValueTests.java b/src/test/java/RewardValueTests.java index b3a78de7d..0652e2d16 100644 --- a/src/test/java/RewardValueTests.java +++ b/src/test/java/RewardValueTests.java @@ -1,5 +1,4 @@ import org.junit.jupiter.api.Test; - import static org.junit.jupiter.api.Assertions.assertEquals; public class RewardValueTests { @@ -14,17 +13,23 @@ void create_with_cash_value() { @Test void create_with_miles_value() { int milesValue = 10000; - var rewardValue = new RewardValue(milesValue); + var rewardValue = new RewardValue(milesValue); // Pass 'true' to indicate miles constructor assertEquals(milesValue, rewardValue.getMilesValue()); } @Test void convert_from_cash_to_miles() { - assert false; + double cashValue = 100.0; + int expectedMilesValue = (int) (cashValue / RewardValue.MILES_TO_CASH_CONVERSION_RATE); + var rewardValue = new RewardValue(cashValue); + assertEquals(expectedMilesValue, rewardValue.getMilesValue()); } @Test void convert_from_miles_to_cash() { - assert false; + int milesValue = 10000; + double expectedCashValue = milesValue * RewardValue.MILES_TO_CASH_CONVERSION_RATE; + var rewardValue = new RewardValue(milesValue); // Pass 'true' to indicate miles constructor + assertEquals(expectedCashValue, rewardValue.getCashValue()); } }