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

CollatzCalculatorTest.java 1.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import org.junit.Before;
  2. import org.junit.Ignore;
  3. import org.junit.Rule;
  4. import org.junit.Test;
  5. import org.junit.rules.ExpectedException;
  6. import static org.junit.Assert.assertEquals;
  7. public class CollatzCalculatorTest {
  8. @Rule
  9. public ExpectedException expectedException = ExpectedException.none();
  10. private CollatzCalculator collatzCalculator;
  11. @Before
  12. public void setUp() {
  13. collatzCalculator = new CollatzCalculator();
  14. }
  15. @Test
  16. public void testZeroStepsRequiredWhenStartingFrom1() {
  17. assertEquals(0, collatzCalculator.computeStepCount(1));
  18. }
  19. @Ignore("Remove to run test")
  20. @Test
  21. public void testCorrectNumberOfStepsWhenAllStepsAreDivisions() {
  22. assertEquals(4, collatzCalculator.computeStepCount(16));
  23. }
  24. @Ignore("Remove to run test")
  25. @Test
  26. public void testCorrectNumberOfStepsWhenBothStepTypesAreNeeded() {
  27. assertEquals(9, collatzCalculator.computeStepCount(12));
  28. }
  29. @Ignore("Remove to run test")
  30. @Test
  31. public void testAVeryLargeInput() {
  32. assertEquals(152, collatzCalculator.computeStepCount(1000000));
  33. }
  34. @Ignore("Remove to run test")
  35. @Test
  36. public void testZeroIsConsideredInvalidInput() {
  37. expectedException.expect(IllegalArgumentException.class);
  38. expectedException.expectMessage("Only natural numbers are allowed");
  39. collatzCalculator.computeStepCount(0);
  40. }
  41. @Ignore("Remove to run test")
  42. @Test
  43. public void testNegativeIntegerIsConsideredInvalidInput() {
  44. expectedException.expect(IllegalArgumentException.class);
  45. expectedException.expectMessage("Only natural numbers are allowed");
  46. collatzCalculator.computeStepCount(-15);
  47. }
  48. }