From 184f80127c868d31883b968aecaa11746e1fc695 Mon Sep 17 00:00:00 2001 From: Michael Mkwelele Date: Tue, 12 Nov 2019 07:18:52 -0800 Subject: [PATCH] Add tests for factorial example. (#112) --- .../java/03_factorial/src/Factorial2.java | 21 +++++++++++++++++++ .../java/03_factorial/src/Factorial2Test.java | 20 ++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 03_recursion/java/03_factorial/src/Factorial2.java create mode 100644 03_recursion/java/03_factorial/src/Factorial2Test.java diff --git a/03_recursion/java/03_factorial/src/Factorial2.java b/03_recursion/java/03_factorial/src/Factorial2.java new file mode 100644 index 0000000..c9bafcb --- /dev/null +++ b/03_recursion/java/03_factorial/src/Factorial2.java @@ -0,0 +1,21 @@ +public class Factorial2 { + public static void main(String[] args) { + Factorial2 factorial2 = new Factorial2(); + System.out.println("The factorial of 5 is " + factorial2.getFactorial(5)); + } + + public int getFactorial(int number) { + if (isZeroOrOne(number)) { + return 1; + } + + return number * getFactorial(number - 1); + } + + public boolean isZeroOrOne(int number) { + if (number > 1) { + return false; + } + return true; + } +} diff --git a/03_recursion/java/03_factorial/src/Factorial2Test.java b/03_recursion/java/03_factorial/src/Factorial2Test.java new file mode 100644 index 0000000..a5fdd4e --- /dev/null +++ b/03_recursion/java/03_factorial/src/Factorial2Test.java @@ -0,0 +1,20 @@ +import org.junit.Assert; +import org.junit.Test; + +public class Factorial2Test { + @Test + public void testIsZeroOrOne() { + Factorial2 factorial2 = new Factorial2(); + + Assert.assertEquals(true, factorial2.isZeroOrOne(0)); + Assert.assertEquals(true, factorial2.isZeroOrOne(1)); + Assert.assertEquals(false, factorial2.isZeroOrOne(5)); + } + + @Test + public void testFactorial() { + Factorial2 factorial2 = new Factorial2(); + + Assert.assertEquals(120, factorial2.getFactorial(5)); + } +}