diff options
author | Haidong Ji | 2018-08-19 10:24:13 -0500 |
---|---|---|
committer | Haidong Ji | 2018-08-19 10:24:13 -0500 |
commit | e56fcf9023ba43919cae20393a2b85d89206271c (patch) | |
tree | d20f9544965feb8d7363ff789d1c8002d37a09de /AlgoDesignAndTechniqueEdxJava/tests | |
parent | 9633df82de06c9ef6b88bb2068e3fdf19a1554c4 (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.java | 33 |
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)); + } +} |