1 | package com.github.dakusui.pcond.experimentals.currying.context; | |
2 | ||
3 | import com.github.dakusui.pcond.experimentals.currying.CurriedFunction; | |
4 | import com.github.dakusui.pcond.experimentals.currying.CurryingUtils; | |
5 | import com.github.dakusui.pcond.core.printable.PrintablePredicateFactory; | |
6 | import com.github.dakusui.pcond.forms.Predicates; | |
7 | ||
8 | import java.util.Arrays; | |
9 | import java.util.Collection; | |
10 | import java.util.List; | |
11 | import java.util.function.Function; | |
12 | import java.util.function.Predicate; | |
13 | import java.util.stream.Stream; | |
14 | ||
15 | import static java.util.Arrays.asList; | |
16 | import static java.util.Objects.requireNonNull; | |
17 | ||
18 | /** | |
19 | * A utility class that collects helper methods for the "Context" mechanism. | |
20 | */ | |
21 | public enum CurriedContextUtils { | |
22 | ; | |
23 | ||
24 | public static Stream<CurriedContext> nest(Stream<?> stream, Collection<?> inner) { | |
25 |
1
1. nest : replaced return value with Stream.empty for com/github/dakusui/pcond/experimentals/currying/context/CurriedContextUtils::nest → KILLED |
return toCurriedContextStream(stream) |
26 |
1
1. lambda$nest$0 : replaced return value with Stream.empty for com/github/dakusui/pcond/experimentals/currying/context/CurriedContextUtils::lambda$nest$0 → KILLED |
.flatMap((CurriedContext curriedContext) -> inner |
27 | .stream() | |
28 | .map((Function<Object, CurriedContext>) curriedContext::append)); | |
29 | } | |
30 | ||
31 | public static Stream<CurriedContext> toCurriedContextStream(Stream<?> stream) { | |
32 |
1
1. toCurriedContextStream : replaced return value with Stream.empty for com/github/dakusui/pcond/experimentals/currying/context/CurriedContextUtils::toCurriedContextStream → KILLED |
return stream.map(CurriedContextUtils::toCurriedContext); |
33 | } | |
34 | ||
35 | public static <T> CurriedContext toCurriedContext(T t) { | |
36 |
2
1. toCurriedContext : negated conditional → KILLED 2. toCurriedContext : replaced return value with null for com/github/dakusui/pcond/experimentals/currying/context/CurriedContextUtils::toCurriedContext → KILLED |
return t instanceof CurriedContext ? (CurriedContext) t : CurriedContext.from(t); |
37 | } | |
38 | ||
39 | public static <R> Predicate<CurriedContext> applyAndTest(CurriedFunction<Object, Object> curriedFunction, Predicate<? super R> pred, @SuppressWarnings("SameParameterValue") Class<? extends R> type, int... orderArgs) { | |
40 | List<Object> spec = asList(curriedFunction, pred, asList(Arrays.stream(orderArgs).boxed().toArray())); | |
41 |
1
1. applyAndTest : replaced return value with null for com/github/dakusui/pcond/experimentals/currying/context/CurriedContextUtils::applyAndTest → KILLED |
return PrintablePredicateFactory.parameterizedLeaf( |
42 |
5
1. lambda$applyAndTest$2 : replaced return value with null for com/github/dakusui/pcond/experimentals/currying/context/CurriedContextUtils::lambda$applyAndTest$2 → KILLED 2. lambda$applyAndTest$4 : replaced return value with null for com/github/dakusui/pcond/experimentals/currying/context/CurriedContextUtils::lambda$applyAndTest$4 → KILLED 3. lambda$null$1 : replaced return value with "" for com/github/dakusui/pcond/experimentals/currying/context/CurriedContextUtils::lambda$null$1 → KILLED 4. lambda$null$3 : replaced boolean return with false for com/github/dakusui/pcond/experimentals/currying/context/CurriedContextUtils::lambda$null$3 → KILLED 5. lambda$null$3 : replaced boolean return with true for com/github/dakusui/pcond/experimentals/currying/context/CurriedContextUtils::lambda$null$3 → KILLED |
args -> () -> String.format("%s(%s%s)", args.get(1), args.get(0), args.get(2)), args -> (CurriedContext curriedContext) -> (pred).test(type.cast(CurryingUtils.applyCurriedFunction(curriedFunction, orderArgs).apply(curriedContext))), spec, CurriedContextUtils.class |
43 | ); | |
44 | } | |
45 | ||
46 | public static Predicate<CurriedContext> toContextPredicate(CurriedFunction<Object, Object> curriedFunction, int... orderArgs) { | |
47 |
1
1. toContextPredicate : replaced return value with null for com/github/dakusui/pcond/experimentals/currying/context/CurriedContextUtils::toContextPredicate → KILLED |
return CurriedContextUtils.applyAndTest(curriedFunction, createPredicate("curry", Predicates.isTrue()), Boolean.class, orderArgs); |
48 | } | |
49 | ||
50 | public static <T> Predicate<T> createPredicate(String s, Predicate<T> predicate) { | |
51 | requireNonNull(s); | |
52 |
2
1. createPredicate : replaced return value with null for com/github/dakusui/pcond/experimentals/currying/context/CurriedContextUtils::createPredicate → KILLED 2. lambda$createPredicate$5 : replaced return value with "" for com/github/dakusui/pcond/experimentals/currying/context/CurriedContextUtils::lambda$createPredicate$5 → KILLED |
return PrintablePredicateFactory.leaf(() -> s, predicate, CurriedContextUtils.class); |
53 | } | |
54 | } | |
Mutations | ||
25 |
1.1 |
|
26 |
1.1 |
|
32 |
1.1 |
|
36 |
1.1 2.2 |
|
41 |
1.1 |
|
42 |
1.1 2.2 3.3 4.4 5.5 |
|
47 |
1.1 |
|
52 |
1.1 2.2 |