From 0bec1d3a9e9d9613b04d9904c22c7efba3e09600 Mon Sep 17 00:00:00 2001 From: MAYANK5287003 Date: Sat, 21 Sep 2024 23:50:16 +0530 Subject: [PATCH] Implement RewardValue class for conversions --- src/main/java/RewardsConverter.java | 2 + src/main/java/main/java/RewardValue.java | 33 ++++++++++++++ src/test/java/RewardValueTests.java | 24 ++++++++-- src/test/java/test/java/RewardValueTest.java | 48 ++++++++++++++++++++ 4 files changed, 104 insertions(+), 3 deletions(-) create mode 100644 src/main/java/main/java/RewardValue.java create mode 100644 src/test/java/test/java/RewardValueTest.java diff --git a/src/main/java/RewardsConverter.java b/src/main/java/RewardsConverter.java index 2c35d11a5..c87bf83a8 100644 --- a/src/main/java/RewardsConverter.java +++ b/src/main/java/RewardsConverter.java @@ -1,3 +1,5 @@ +import main.java.RewardValue; + import java.util.Scanner; public class RewardsConverter { diff --git a/src/main/java/main/java/RewardValue.java b/src/main/java/main/java/RewardValue.java new file mode 100644 index 000000000..a7cde4d6a --- /dev/null +++ b/src/main/java/main/java/RewardValue.java @@ -0,0 +1,33 @@ +package main.java; +public class RewardValue { + + + private double cashValue; + private double milesValue; + + // Constructor for cash value + public RewardValue(double cashValue) { + this.cashValue = cashValue; + this.milesValue = cashValue / 0.0035; // Convert cash to miles + } + + // Constructor for miles value + public RewardValue(double milesValue, boolean isMiles) { + if (isMiles) { + this.milesValue = milesValue; + this.cashValue = milesValue * 0.0035; // 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; + } + } + + diff --git a/src/test/java/RewardValueTests.java b/src/test/java/RewardValueTests.java index b3a78de7d..138ea392d 100644 --- a/src/test/java/RewardValueTests.java +++ b/src/test/java/RewardValueTests.java @@ -1,3 +1,4 @@ +import main.java.RewardValue; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -15,16 +16,33 @@ void create_with_cash_value() { void create_with_miles_value() { int milesValue = 10000; var rewardValue = new RewardValue(milesValue); - assertEquals(milesValue, rewardValue.getMilesValue()); + assertEquals(milesValue, rewardValue.getCashValue()); } @Test void convert_from_cash_to_miles() { - assert false; + + double cashValue = 350.0; + RewardValue rewardValue = new RewardValue(cashValue); + + // When converting to miles + double expectedMiles = cashValue / 0.0035; + + // Then the miles value should be correct + assertEquals(expectedMiles, rewardValue.getMilesValue(), 0.01); } + @Test void convert_from_miles_to_cash() { - assert false; + // Given a miles value + double milesValue = 1000.0; + RewardValue rewardValue = new RewardValue(milesValue, true); + + // When converting to cash + double expectedCash = milesValue * 0.0035; + + // Then the cash value should be correct + assertEquals(expectedCash, rewardValue.getCashValue(), 0.01); } } diff --git a/src/test/java/test/java/RewardValueTest.java b/src/test/java/test/java/RewardValueTest.java new file mode 100644 index 000000000..3aa661744 --- /dev/null +++ b/src/test/java/test/java/RewardValueTest.java @@ -0,0 +1,48 @@ +package test.java; // Adjust this according to your package structure + +import main.java.RewardValue; +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class RewardValueTest { + + @Test + public void testCashToMilesConversion() { + // Given a cash value + double cashValue = 350.0; + RewardValue rewardValue = new RewardValue(cashValue); + + // When converting to miles + double expectedMiles = cashValue / 0.0035; + + // Then the miles value should be correct + assertEquals(expectedMiles, rewardValue.getMilesValue(), 0.01); + } + + @Test + public void testMilesToCashConversion() { + // Given a miles value + double milesValue = 1000.0; + RewardValue rewardValue = new RewardValue(milesValue, true); + + // When converting to cash + double expectedCash = milesValue * 0.0035; + + // Then the cash value should be correct + assertEquals(expectedCash, rewardValue.getCashValue(), 0.01); + } + + @Test + public void testMilesToCashConversionNegative() { + // Given a negative miles value + double milesValue = -1000.0; + RewardValue rewardValue = new RewardValue(milesValue, true); + + // When converting to cash + double expectedCash = milesValue * 0.0035; + + // Then the cash value should be correct + assertEquals(expectedCash, rewardValue.getCashValue(), 0.01); + } +} +