1 22 23 package tests.sosnoski.util.stack; 24 25 import com.sosnoski.util.stack.IntStack; 26 27 import junit.framework.*; 28 29 public class IntStackTest extends TestCase 30 { 31 private static final int TEST_ITEMS = 10; 32 33 private IntStack m_stack; 34 35 public IntStackTest(String name) { 36 super(name); 37 } 38 39 public void setUp() { 40 m_stack = new IntStack(); 41 } 42 43 public void tearDown() { 44 m_stack = null; 45 } 46 47 private int gen(int index) { 48 return index; 49 } 50 51 private boolean ifMatch(int a, int b) { 52 return a == b; 53 } 54 55 private void fillSequential(int count) { 56 for (int i = 0; i < count; i++) { 57 m_stack.push(gen(i)); 58 } 59 } 60 61 public void testAdd() { 62 fillSequential(TEST_ITEMS); 63 assert(m_stack.size() == TEST_ITEMS); 64 fillSequential(TEST_ITEMS); 65 assert(m_stack.size() == TEST_ITEMS*2); 66 } 67 68 public void testClear() { 69 fillSequential(TEST_ITEMS); 70 m_stack.clear(); 71 assert(m_stack.size() == 0); 72 assert(m_stack.isEmpty()); 73 } 74 75 public void testPop() { 76 fillSequential(TEST_ITEMS); 77 assert(m_stack.size() == TEST_ITEMS); 78 for (int i = 0; i < TEST_ITEMS; i++) { 79 assert(ifMatch(m_stack.pop(), TEST_ITEMS-1-i)); 80 } 81 assert(m_stack.size() == 0); 82 fillSequential(TEST_ITEMS); 83 assert(ifMatch(m_stack.pop(TEST_ITEMS/2), TEST_ITEMS/2)); 84 for (int i = 0; i < TEST_ITEMS/2; i++) { 85 assert(ifMatch(m_stack.pop(), TEST_ITEMS/2-1-i)); 86 } 87 } 88 89 public void testPeek() { 90 fillSequential(TEST_ITEMS); 91 assert(ifMatch(m_stack.peek(), TEST_ITEMS-1)); 92 for (int i = 0; i < TEST_ITEMS; i++) { 93 assert(ifMatch(m_stack.pop(), TEST_ITEMS-1-i)); 94 } 95 } 96 97 public void testToArray() { 98 fillSequential(TEST_ITEMS); 99 int[] array = m_stack.toArray(); 100 assert(array.length == TEST_ITEMS); 101 for (int i = 0; i < TEST_ITEMS; i++) { 102 assert(ifMatch(array[i], gen(i))); 103 } 104 } 105 106 public void testClone() { 107 fillSequential(TEST_ITEMS); 108 IntStack clone = (IntStack)m_stack.clone(); 109 assert(clone.size() == TEST_ITEMS); 110 for (int i = 0; i < TEST_ITEMS; i++) { 111 assert(ifMatch(m_stack.pop(), TEST_ITEMS-1-i)); 112 } 113 } 114 115 public static Test suite() { 116 return new TestSuite(IntStackTest.class); 117 } 118 119 public static void main(String [] args) { 120 String [] names = { IntStackTest.class.getName() }; 121 junit.textui.TestRunner.main(names); 122 } 123 } 124 | Popular Tags |