import junit.framework.TestCase;

/**
 * A JUnit test case class.
 * Every method starting with the word "test" will be called when running
 * the test with JUnit.
 */
public class DemoTester extends TestCase {
    
    public void testPwr() {
        assertEquals(1, Demo.pwr(1));
        assertEquals(2, Demo.pwr(2));
        assertEquals(2, Demo.pwr(3));
        assertEquals(4, Demo.pwr(4));
        assertEquals(4, Demo.pwr(5));
        assertEquals(4, Demo.pwr(6));
        assertEquals(4, Demo.pwr(7));
        assertEquals(8, Demo.pwr(8));
        assertEquals(8, Demo.pwr(9));
        assertEquals(32, Demo.pwr(63));
        assertEquals(64, Demo.pwr(64));
        assertEquals(64, Demo.pwr(65));
    }
    
    public void testBeginningLength() {
        assertEquals(1, Demo.beginningLength("x"));
        assertEquals(1, Demo.beginningLength("xy"));
        assertEquals(1, Demo.beginningLength("x"));
        assertEquals(3, Demo.beginningLength("aaabbaa"));
        assertEquals(4, Demo.beginningLength("aaaa"));
    }
    
    public void testLinearSearch() {
        assertEquals(0, Demo.linearSearch('a', "a"));
        assertEquals(0, Demo.linearSearch('a', "abcgggg"));
        assertEquals(1, Demo.linearSearch('b', "abcgggg"));
        assertEquals(2, Demo.linearSearch('c', "abcgggg"));
        assertEquals(3, Demo.linearSearch('g', "abcgggg"));
        assertEquals(7, Demo.linearSearch('h', "abcggggh"));
    }
}