// CSE 143, Winter 2011, Marty Stepp // This JUnit test program checks the functionality of our pow method. import static org.junit.Assert.*; import org.junit.*; public class PowersTest { // Returns (base) raised to the (exponent)th power, recursively. // Precondition: exponent >= 0 public static int pow(int base, int exponent) { // System.out.println("pow " + base + " " + exponent); if (exponent == 0 || base == 1) { return 1; } else if (exponent % 2 == 0) { return pow(base * base, exponent / 2); } else { // exponent > 1 return base * pow(base, exponent - 1); } } @Test public void test1() { // assertEquals(81, pow(3, 4)); helper(3, 4, 81); } @Test public void test2() { helper(2, 8, 256); } @Test public void test3() { helper(10, 5, 100000); } @Test public void test4() { helper(-4, 5, -4*-4*-4*-4*-4); } @Test public void test5() { helper(2, 30, (int) Math.pow(2, 30)); } private void helper(int b, int e, int expect) { assertEquals("pow(" + b + ", " + e + ")", expect, pow(b, e)); } }