| 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 |