| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- import org.junit.Test;
-
- import static org.junit.Assert.assertArrayEquals;
- import static org.junit.Assert.assertEquals;
-
- public class LuhnTest {
-
- @Test
- public void checkDigitIsRightMostDigit() {
- Luhn luhn = new Luhn(34567);
- int expectedOutput = 7;
-
- assertEquals(expectedOutput, luhn.getCheckDigit());
- }
-
- @Test
- public void addendsDoublesEveryOtherNumberFromRight() {
- Luhn luhn = new Luhn(12121);
- int[] expectedOutput = new int[]{1, 4, 1, 4, 1};
-
- assertArrayEquals(expectedOutput, luhn.getAddends());
- }
-
- @Test
- public void addendsSubtracts9WhenDoubledNumberIsMoreThan9() {
- Luhn luhn = new Luhn(8631);
- int[] expectedOutput = new int[]{7, 6, 6, 1};
-
- assertArrayEquals(expectedOutput, luhn.getAddends());
- }
-
- @Test
- public void checkSumAddsAddendsTogether1() {
- Luhn luhn = new Luhn(4913);
- int expectedOutput = 22;
-
- assertEquals(expectedOutput, luhn.getCheckSum());
- }
-
- @Test
- public void checkSumAddsAddendsTogether2() {
- Luhn luhn = new Luhn(201773);
- int expectedOutput = 21;
-
- assertEquals(expectedOutput, luhn.getCheckSum());
- }
-
- @Test
- public void numberIsValidWhenChecksumMod10IsZero1() {
- Luhn luhn = new Luhn(738);
- boolean expectedOutput = false;
-
- assertEquals(expectedOutput, luhn.isValid());
- }
-
- @Test
- public void numberIsValidWhenChecksumMod10IsZero2() {
- Luhn luhn = new Luhn(8739567);
- boolean expectedOutput = true;
-
- assertEquals(expectedOutput, luhn.isValid());
- }
-
- @Test
- public void luhnCanCreateSimpleNumbersWithValidCheckDigit() {
- long expectedOutput = 1230;
-
- assertEquals(expectedOutput, Luhn.create(123));
- }
-
- @Test
- public void luhnCanCreateLargeNumbersWithValidCheckDigit() {
- long expectedOutput = 8739567;
-
- assertEquals(expectedOutput, Luhn.create(873956));
- }
-
- @Test
- public void luhnCanCreateHugeNumbersWithValidCheckDigit() {
- long expectedOutput = 8372637564L;
-
- assertEquals(expectedOutput, Luhn.create(837263756));
- }
- }
|