1313import com .jnape .palatable .traitor .runners .Traits ;
1414import org .junit .Test ;
1515import org .junit .runner .RunWith ;
16- import testsupport .traits .ApplicativeLaws ;
17- import testsupport .traits .Equivalence ;
18- import testsupport .traits .FunctorLaws ;
19- import testsupport .traits .MonadLaws ;
20- import testsupport .traits .MonadRecLaws ;
16+ import testsupport .traits .*;
2117
2218import java .util .ArrayList ;
2319import java .util .Collection ;
3430import static com .jnape .palatable .lambda .functions .recursion .RecursiveResult .terminate ;
3531import static com .jnape .palatable .lambda .functor .builtin .Identity .pureIdentity ;
3632import static com .jnape .palatable .lambda .functor .builtin .Lazy .lazy ;
37- import static com .jnape .palatable .lambda .functor .builtin .Writer .listen ;
38- import static com .jnape .palatable .lambda .functor .builtin .Writer .pureWriter ;
39- import static com .jnape .palatable .lambda .functor .builtin .Writer .tell ;
40- import static com .jnape .palatable .lambda .functor .builtin .Writer .writer ;
33+ import static com .jnape .palatable .lambda .functor .builtin .Writer .*;
4134import static com .jnape .palatable .lambda .io .IO .io ;
42- import static com .jnape .palatable .lambda .monad .transformer .builtin .IterateT .empty ;
43- import static com .jnape .palatable .lambda .monad .transformer .builtin .IterateT .singleton ;
44- import static com .jnape .palatable .lambda .monad .transformer .builtin .IterateT .unfold ;
35+ import static com .jnape .palatable .lambda .monad .transformer .builtin .IterateT .*;
4536import static com .jnape .palatable .lambda .monoid .builtin .AddAll .addAll ;
4637import static com .jnape .palatable .lambda .monoid .builtin .Join .join ;
4738import static com .jnape .palatable .traitor .framework .Subjects .subjects ;
5344import static org .junit .Assert .assertThat ;
5445import static testsupport .Constants .STACK_EXPLODING_NUMBER ;
5546import static testsupport .matchers .IOMatcher .yieldsValue ;
56- import static testsupport .matchers .IterateTMatcher .isEmpty ;
57- import static testsupport .matchers .IterateTMatcher .iterates ;
58- import static testsupport .matchers .IterateTMatcher .iteratesAll ;
47+ import static testsupport .matchers .IterateTMatcher .*;
5948import static testsupport .traits .Equivalence .equivalence ;
6049
6150@ RunWith (Traits .class )
@@ -242,4 +231,20 @@ public void concatIsStackSafe() {
242231 assertEquals (new Identity <>(10_000 ),
243232 bigIterateT .fold ((x , y ) -> new Identity <>(x + y ), new Identity <>(0 )));
244233 }
234+
235+ @ Test
236+ public void staticPure () {
237+ assertEquals (new Identity <>(singletonList (1 )),
238+ pureIterateT (pureIdentity ())
239+ .<Integer , IterateT <Identity <?>, Integer >>apply (1 )
240+ .<List <Integer >, Identity <List <Integer >>>toCollection (ArrayList ::new ));
241+ }
242+
243+ @ Test
244+ public void staticLift () {
245+ assertEquals (new Identity <>(singletonList (1 )),
246+ liftIterateT ()
247+ .<Integer , Identity <?>, IterateT <Identity <?>, Integer >>apply (new Identity <>(1 ))
248+ .<List <Integer >, Identity <List <Integer >>>toCollection (ArrayList ::new ));
249+ }
245250}
0 commit comments