package no.java.incogito; import fj.data.List; import fj.data.Stream; import static fj.data.Stream.stream; import static fj.data.List.list; import fj.pre.Equal; import fj.pre.Show; import junit.framework.TestCase; import static no.java.incogito.Functions.Stream_cycle; import java.util.Iterator; /** * @author <a href="mailto:trygvis@java.no">Trygve Laugstøl</a> * @version $Id$ */ public class FunctionsTest extends TestCase { public void testPrepend() { assertEquals("ab", Functions.prepend.f("a").f("b")); assertEquals("ba", Functions.append.f("a").f("b")); } public void testString_Join() { assertEquals("a\n", list("a").foldRight(Functions.String_join.f("\n"), "")); } public void testStreamProduct() { List<String> stringStream = Functions.List_product(list("09", "10", "11"), list("00", "30"), Functions.prepend); Show<List<String>> show = Show.listShow(Show.stringShow); show.println(stringStream); // Show.streamShow(Show.stringShow).println(stream("09", "10", "11").zipWith(Stream.cycle(stream("00", "30")), Functions.prepend)); // Show.streamShow(Show.stringShow).println(stream("09", "10", "11").zipWith(Stream_cycle(stream("00", "30")), Functions.prepend)); Equal<List<String>> equal = Equal.listEqual(Equal.stringEqual); assertTrue(equal.eq(list("0900", "0930", "1000", "1030", "1100", "1130"), stringStream)); } }