package net.varkhan.base.containers; import junit.framework.TestCase; /** * <b></b>. * <p/> * * @author varkhan * @date 11/2/13 * @time 4:52 PM */ public class IterableTest extends TestCase { public void testEmpty() throws Exception { Iterable<Object> ix = new Iterable.Empty<Object>(); Iterator<? extends Object> ii = ix.iterator(); assertFalse("indexes().hasNext()", ii.hasNext()); } public void testSingleton() throws Exception { Object val = new Object(); Iterable<Object> ix = new Iterable.Singleton<Object>(val); Iterator<? extends Object> ii = ix.iterator(); assertTrue("indexes().hasNext()", ii.hasNext()); assertEquals("indexes().next()==val",val,ii.next()); assertFalse("indexes().hasNext()", ii.hasNext()); } public void testEnumerate() throws Exception { Object[] val0 = new Object[] {}; Iterable<Object> ix0 = new Iterable.Enumerate<Object>(val0); Iterator<? extends Object> ii0 = ix0.iterator(); assertFalse("indexes().hasNext()", ii0.hasNext()); Object[] val1 = new Object[] {4}; Iterable<Object> ix1 = new Iterable.Enumerate<Object>(val1); Iterator<? extends Object> ii1 = ix1.iterator(); assertTrue("indexes().hasNext()", ii1.hasNext()); assertEquals("indexes().next()==min",val1[0],ii1.next()); assertFalse("indexes().hasNext()", ii1.hasNext()); Object[] val2 = new Object[] {4, 5, 6}; Iterable<Object> ix2 = new Iterable.Enumerate<Object>(val2); Iterator<? extends Object> ii2 = ix2.iterator(); assertTrue("indexes().hasNext()", ii2.hasNext()); assertEquals("indexes().next()==min",val2[0],ii2.next()); assertEquals("indexes().next()==..",val2[1],ii2.next()); assertEquals("indexes().next()==..",val2[2],ii2.next()); assertFalse("indexes().hasNext()", ii2.hasNext()); } public void testSequence() throws Exception { Object[] idx1 = new Object[] {4, 5, 6 }; Iterable<Object> ix1 = new Iterable.Enumerate<Object>(idx1); Object[] idx2 = new Object[] {17, 18}; Iterable<Object> ix2 = new Iterable.Enumerate<Object>(idx2); Iterable<Object> ix = new Iterable.Sequence<Object>(ix1, ix2); Iterator<? extends Object> ii = ix.iterator(); assertTrue("indexes().hasNext()", ii.hasNext()); assertEquals("indexes().next()==min",idx1[0],ii.next()); assertEquals("indexes().next()==...",idx1[1],ii.next()); assertEquals("indexes().next()==...",idx1[2],ii.next()); assertEquals("indexes().next()==...",idx2[0],ii.next()); assertEquals("indexes().next()==...",idx2[1],ii.next()); assertFalse("indexes().hasNext()", ii.hasNext()); } }