Skip to content

Commit fdd8092

Browse files
committed
EquatableM delegates lazyZip to monad; loosening test timeout
1 parent a5d81ee commit fdd8092

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

src/test/java/com/jnape/palatable/lambda/io/IOTest.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
import static java.util.concurrent.Executors.newFixedThreadPool;
4646
import static java.util.concurrent.ForkJoinPool.commonPool;
4747
import static java.util.concurrent.TimeUnit.MILLISECONDS;
48+
import static java.util.concurrent.TimeUnit.SECONDS;
4849
import static org.junit.Assert.assertArrayEquals;
4950
import static org.junit.Assert.assertEquals;
5051
import static org.junit.Assert.assertTrue;
@@ -364,7 +365,8 @@ public void monitorSync() throws InterruptedException {
364365
start();
365366
}};
366367

367-
finishLine.await(500, MILLISECONDS);
368+
if (!finishLine.await(1, SECONDS))
369+
fail("Expected threads to have completed by now");
368370
assertEquals(asList("one entered", "one exited", "two entered", "two exited"), accesses);
369371
}
370372

src/test/java/testsupport/EquatableM.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.jnape.palatable.lambda.functions.Fn1;
44
import com.jnape.palatable.lambda.functor.Applicative;
5+
import com.jnape.palatable.lambda.functor.builtin.Lazy;
56
import com.jnape.palatable.lambda.monad.Monad;
67

78
import java.util.Objects;
@@ -44,6 +45,13 @@ public <B> EquatableM<M, B> zip(Applicative<Fn1<? super A, ? extends B>, Equatab
4445
return new EquatableM<>(ma.zip(appFn.<EquatableM<M, Fn1<? super A, ? extends B>>>coerce().ma), equatable);
4546
}
4647

48+
@Override
49+
public <B> Lazy<EquatableM<M, B>> lazyZip(
50+
Lazy<? extends Applicative<Fn1<? super A, ? extends B>, EquatableM<M, ?>>> lazyAppFn) {
51+
return ma.lazyZip(lazyAppFn.fmap(eqF -> eqF.<EquatableM<M, Fn1<? super A, ? extends B>>>coerce().ma))
52+
.fmap(mb -> new EquatableM<>(mb, equatable));
53+
}
54+
4755
@Override
4856
public <B> EquatableM<M, B> discardL(Applicative<B, EquatableM<M, ?>> appB) {
4957
return new EquatableM<>(ma.discardL(appB.<EquatableM<M, B>>coerce().ma), equatable);

0 commit comments

Comments
 (0)