summaryrefslogtreecommitdiff
path: root/src/section-9
diff options
context:
space:
mode:
Diffstat (limited to 'src/section-9')
-rw-r--r--src/section-9/Number.java46
-rw-r--r--src/section-9/NumberTest.java58
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"));
+ }
+}