summaryrefslogtreecommitdiff
path: root/AlgoDesignAndTechniqueEdxJava/tests
diff options
context:
space:
mode:
authorHaidong Ji2018-08-19 10:24:13 -0500
committerHaidong Ji2018-08-19 10:24:13 -0500
commite56fcf9023ba43919cae20393a2b85d89206271c (patch)
treed20f9544965feb8d7363ff789d1c8002d37a09de /AlgoDesignAndTechniqueEdxJava/tests
parent9633df82de06c9ef6b88bb2068e3fdf19a1554c4 (diff)
GCD done!
Interesting. The original code was like this: public static int getGCD(int a, int b) { if (b == 0) { return a; } if (b > a) { return getGCD(b, b % a); } else { return getGCD(b, a % b); } } And it failed the test of 14159572, 63967072. After chaning the code to: public static int getGCD(int a, int b) { if (b == 0) { return a; } if (b > a) { return getGCD(b, a); } else { return getGCD(b, a % b); } } It worked! I guess it's important to do a pretty exhaustive testing to find this subtle bug
Diffstat (limited to 'AlgoDesignAndTechniqueEdxJava/tests')
-rw-r--r--AlgoDesignAndTechniqueEdxJava/tests/GCDTest.java33
1 files changed, 33 insertions, 0 deletions
diff --git a/AlgoDesignAndTechniqueEdxJava/tests/GCDTest.java b/AlgoDesignAndTechniqueEdxJava/tests/GCDTest.java
new file mode 100644
index 0000000..1c8fedd
--- /dev/null
+++ b/AlgoDesignAndTechniqueEdxJava/tests/GCDTest.java
@@ -0,0 +1,33 @@
+import static org.junit.jupiter.api.Assertions.*;
+import org.junit.jupiter.api.Test;
+
+public class GCDTest {
+ @Test
+ void testGCD1() {
+ assertEquals(1, GCD.getGCD(18, 35));
+ }
+ @Test
+ void testGCD2() {
+ assertEquals(17657, GCD.getGCD(28851538, 1183019));
+ }
+
+ @Test
+ void testGCD3() {
+ assertEquals(7, GCD.getGCD(1344, 217));
+ }
+
+ @Test
+ void testGCD4() {
+ assertEquals(1344, GCD.getGCD(1344, 1344));
+ }
+
+ @Test
+ void testGCD5() {
+ assertEquals(4, GCD.getGCD(14159572, 63967072));
+ }
+
+ @Test
+ void testGCD6() {
+ assertEquals(4, GCD.getGCD(63967072,14159572));
+ }
+}