diff options
Diffstat (limited to 'src/section-9')
| -rw-r--r-- | src/section-9/Number.java | 46 | ||||
| -rw-r--r-- | src/section-9/NumberTest.java | 58 |
2 files changed, 104 insertions, 0 deletions
diff --git a/src/section-9/Number.java b/src/section-9/Number.java new file mode 100644 index 0000000..d96274f --- /dev/null +++ b/src/section-9/Number.java @@ -0,0 +1,46 @@ +package ca.mokhan.assignment1; + +import java.util.ArrayList; + +public class Number { + public static boolean isDivisibleBy5(int n) { + return isDivisibleBy(n, 5); + } + + public static boolean isDivisibleBy7(int n) { + return isDivisibleBy(n, 7); + } + + public static boolean isOdd(int n) { + return !isDivisibleBy(n, 2); + } + + public static boolean isPrime(int n) { + if (n <= 1) return false; + + for (int i = n - 1; i > 1; i--) if (isDivisibleBy(n, i)) return false; + + return true; + } + + public static boolean isDivisibleBy(int n, int denominator) { + return n % denominator == 0; + } + + public static ArrayList<String> iterate() { + ArrayList<String> items = new ArrayList<String>(); + ArrayList<String> row = new ArrayList<String>(); + for (Integer i = 0; i < 113; i++) { + row.clear(); + row.add(String.format("%d", i)); + + if (isOdd(i)) row.add(String.format("%d is odd", i)); + if (isDivisibleBy5(i)) row.add("hi five"); + if (isDivisibleBy7(i + (i + 1))) row.add("wow"); + if (isPrime(i)) row.add("prime"); + + items.add(String.join(",", row)); + } + return items; + } +} diff --git a/src/section-9/NumberTest.java b/src/section-9/NumberTest.java new file mode 100644 index 0000000..1ef9d96 --- /dev/null +++ b/src/section-9/NumberTest.java @@ -0,0 +1,58 @@ +package ca.mokhan.assignment1; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +public class NumberTest extends TestCase { + public NumberTest(String testName) { + super(testName); + } + + public static Test suite() { + return new TestSuite(NumberTest.class); + } + + public void testIsDivisibleBy5() { + for (int i = 0; i < 113; i++) + if (i % 5 == 0) assertTrue(Number.isDivisibleBy5(i)); + else assertFalse(Number.isDivisibleBy5(i)); + } + + public void testIsDivisibleBy7() { + for (int i = 0; i < 113; i++) + if (i % 7 == 0) assertTrue(Number.isDivisibleBy7(i)); + else assertFalse(Number.isDivisibleBy7(i)); + } + + public void testIsOdd() { + for (int i = 0; i < 113; i++) + if (i % 2 == 0) assertFalse(Number.isOdd(i)); + else assertTrue(Number.isOdd(i)); + } + + public void testIsPrime() { + List<Integer> primes = + Arrays.asList( + new Integer[] { + 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, + 83, 89, 97, 101, 103, 107, 109, 113 + }); + + for (Integer i = 0; i < 113; i++) + if (primes.contains(i)) assertTrue(Number.isPrime(i)); + else assertFalse(Number.isPrime(i)); + } + + public void testIterate() { + ArrayList<String> results = Number.iterate(); + assertTrue(results.contains("0,hi five")); + assertTrue(results.contains("1,1 is odd")); + assertTrue(results.contains("2,prime")); + assertTrue(results.contains("3,3 is odd,wow,prime")); + assertTrue(results.contains("4")); + } +} |
