lots of exercises in java... from https://github.com/exercism/java

LuhnTest.java 2.1KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. import org.junit.Test;
  2. import static org.junit.Assert.assertArrayEquals;
  3. import static org.junit.Assert.assertEquals;
  4. public class LuhnTest {
  5. @Test
  6. public void checkDigitIsRightMostDigit() {
  7. Luhn luhn = new Luhn(34567);
  8. int expectedOutput = 7;
  9. assertEquals(expectedOutput, luhn.getCheckDigit());
  10. }
  11. @Test
  12. public void addendsDoublesEveryOtherNumberFromRight() {
  13. Luhn luhn = new Luhn(12121);
  14. int[] expectedOutput = new int[]{1, 4, 1, 4, 1};
  15. assertArrayEquals(expectedOutput, luhn.getAddends());
  16. }
  17. @Test
  18. public void addendsSubtracts9WhenDoubledNumberIsMoreThan9() {
  19. Luhn luhn = new Luhn(8631);
  20. int[] expectedOutput = new int[]{7, 6, 6, 1};
  21. assertArrayEquals(expectedOutput, luhn.getAddends());
  22. }
  23. @Test
  24. public void checkSumAddsAddendsTogether1() {
  25. Luhn luhn = new Luhn(4913);
  26. int expectedOutput = 22;
  27. assertEquals(expectedOutput, luhn.getCheckSum());
  28. }
  29. @Test
  30. public void checkSumAddsAddendsTogether2() {
  31. Luhn luhn = new Luhn(201773);
  32. int expectedOutput = 21;
  33. assertEquals(expectedOutput, luhn.getCheckSum());
  34. }
  35. @Test
  36. public void numberIsValidWhenChecksumMod10IsZero1() {
  37. Luhn luhn = new Luhn(738);
  38. boolean expectedOutput = false;
  39. assertEquals(expectedOutput, luhn.isValid());
  40. }
  41. @Test
  42. public void numberIsValidWhenChecksumMod10IsZero2() {
  43. Luhn luhn = new Luhn(8739567);
  44. boolean expectedOutput = true;
  45. assertEquals(expectedOutput, luhn.isValid());
  46. }
  47. @Test
  48. public void luhnCanCreateSimpleNumbersWithValidCheckDigit() {
  49. long expectedOutput = 1230;
  50. assertEquals(expectedOutput, Luhn.create(123));
  51. }
  52. @Test
  53. public void luhnCanCreateLargeNumbersWithValidCheckDigit() {
  54. long expectedOutput = 8739567;
  55. assertEquals(expectedOutput, Luhn.create(873956));
  56. }
  57. @Test
  58. public void luhnCanCreateHugeNumbersWithValidCheckDigit() {
  59. long expectedOutput = 8372637564L;
  60. assertEquals(expectedOutput, Luhn.create(837263756));
  61. }
  62. }