diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/Q3/CreditCard.java | 12 | ||||
| -rw-r--r-- | src/Q3/CreditCardTest.java | 26 |
2 files changed, 23 insertions, 15 deletions
diff --git a/src/Q3/CreditCard.java b/src/Q3/CreditCard.java index e6dc0f8..d8a5371 100644 --- a/src/Q3/CreditCard.java +++ b/src/Q3/CreditCard.java @@ -12,6 +12,16 @@ public class CreditCard { public CreditCard(String num) { this.ccNumber = num; this.company = this.identifyCompany(num); + String reversed = new StringBuilder(num).reverse().toString(); + for (int i = 0; i < reversed.length(); i++) { + if (!Character.isDigit(reversed.charAt(i))) break; + + int digit = Character.getNumericValue(reversed.charAt(i)); + if ((i + 1) % 2 == 0) { + } else { + this.oddSum += digit; + } + } } public int getEvenSum() { @@ -35,7 +45,7 @@ public class CreditCard { } public boolean isValid() { - return this.validateCompany() && this.validateLength(); + return this.validateCompany() && this.validateLength() && this.validateNumber(); } public boolean isDivisibleBy10() { diff --git a/src/Q3/CreditCardTest.java b/src/Q3/CreditCardTest.java index 1f4ec49..9033f65 100644 --- a/src/Q3/CreditCardTest.java +++ b/src/Q3/CreditCardTest.java @@ -16,11 +16,6 @@ public class CreditCardTest extends TestCase { return new TestSuite(CreditCardTest.class); } - public void testTruthy() { - assertEquals(true, true); - assertTrue(true); - } - public void test_getCompany() { assertEquals(CreateSUT("4111111111111111").getCompany(), "Visa"); assertEquals(CreateSUT("5555555555554444").getCompany(), "MasterCard"); @@ -42,16 +37,19 @@ public class CreditCardTest extends TestCase { assertFalse(CreateSUT("hello").validateNumber()); } - // public void test_getEvenSum() { - // assertEquals(CreateSUT("4388576018402626").getEvenSum(), 0); - // } + public void test_isValid() { + assertFalse(CreateSUT("49927398717").isValid()); + assertFalse(CreateSUT("1234567812345678").isValid()); + assertTrue(CreateSUT("4111111111111111").isValid()); + assertTrue(CreateSUT("5555555555554444").isValid()); + assertTrue(CreateSUT("378282246310005").isValid()); + assertTrue(CreateSUT("6011111111111117").isValid()); + } - // public void test_isValid() { - // assertTrue(CreateSUT("49927398716").isValid()); - // assertFalse(CreateSUT("49927398717").isValid()); - // assertFalse(CreateSUT("1234567812345678").isValid()); - // assertTrue(CreateSUT("1234567812345670").isValid()); - // } + public void test_getOddSum() { + assertEquals(42, CreateSUT("49927398716").getOddSum()); + assertEquals(38, CreateSUT("4388576018402626").getOddSum()); + } private CreditCard CreateSUT(String number) { return new CreditCard(number); |
