/test/kilim/test/TestRing.java

http://github.com/kilim/kilim · Java · 49 lines · 41 code · 6 blank · 2 comment · 8 complexity · 9a7f11ab4e7a91f3ec78f4487b4bcc7e MD5 · raw file

  1. package kilim.test;
  2. import junit.framework.TestCase;
  3. import java.util.Random;
  4. import kilim.RingQueue;
  5. public class TestRing extends TestCase {
  6. public void testInfiniteQueue() {
  7. Integer[] a = mkRandom();
  8. RingQueue<Integer> rq = new RingQueue<Integer>(10);
  9. for (int i = 0; i < a.length; i++) {
  10. assertTrue("put returned false", rq.put(a[i]));
  11. }
  12. assertEquals("Queue size", a.length, rq.size());
  13. for (int i = 0; i < a.length; i++) {
  14. assertEquals("get[" + i + " ]returned different element", a[i], rq.get());
  15. }
  16. // No more elements. The next ha d better be null
  17. assertNull("Queue should not have any more elements", rq.get());
  18. assertTrue(rq.size() == 0);
  19. }
  20. public void testBoundedQueue() {
  21. Integer[] a = mkRandom();
  22. RingQueue<Integer> rq = new RingQueue<Integer>(10, a.length);
  23. for (int i = 0; i < a.length; i++) {
  24. assertTrue("put returned false", rq.put(a[i]));
  25. }
  26. assertFalse("put should not accept more than bound", rq.put(100));
  27. assertTrue(rq.size() == a.length);
  28. for (int i = 0; i < a.length; i++) {
  29. assertEquals("get[" + i + " ]returned different element", a[i], rq.get());
  30. }
  31. // No more elements. The next had better be null
  32. assertNull("Queue should not have any more elements", rq.get());
  33. assertTrue(rq.size() == 0);
  34. }
  35. private Integer[] mkRandom() {
  36. Random r = new Random();
  37. Integer[] ret = new Integer[1000];
  38. for (int i = 0; i < 1000; i++) {
  39. ret[i] = new Integer(r.nextInt(1000));
  40. }
  41. return ret;
  42. }
  43. }