| 1 | package com.github.valid8j.metamor; | |
| 2 | ||
| 3 | import com.github.valid8j.pcond.core.printable.PrintableFunction; | |
| 4 | import com.github.valid8j.pcond.forms.Printables; | |
| 5 | ||
| 6 | import java.util.*; | |
| 7 | import java.util.function.Function; | |
| 8 | import java.util.function.Supplier; | |
| 9 | ||
| 10 | import static java.util.Collections.emptyList; | |
| 11 | import static java.util.Objects.requireNonNull; | |
| 12 | import static java.util.stream.Collectors.joining; | |
| 13 | import static java.util.stream.Collectors.toList; | |
| 14 | ||
| 15 | public interface InputResolver<I, O> extends Function<Dataset<IoPair<I, O>>, I> { | |
| 16 | class Impl<I, O> extends PrintableFunction<Dataset<IoPair<I, O>>, I> implements InputResolver<I, O> { | |
| 17 | public Impl(Supplier<String> s, Function<? super Dataset<IoPair<I, O>>, ? extends I> function) { | |
| 18 | super(new Object(), emptyList(), s, function); | |
| 19 | } | |
| 20 | } | |
| 21 | ||
| 22 | interface Sequence<I, O> extends Dataset<InputResolver<I, O>> { | |
| 23 | class Impl<I, O> implements Sequence<I, O> { | |
| 24 | ||
| 25 | private final String inputVariableName; | |
| 26 | private final List<InputResolver<I, O>> inputResolvers; | |
| 27 | ||
| 28 | public Impl(String inputVariableName, List<InputResolver<I, O>> inputResolvers) { | |
| 29 | this.inputVariableName = requireNonNull(inputVariableName); | |
| 30 | this.inputResolvers = requireNonNull(inputResolvers); | |
| 31 | } | |
| 32 | ||
| 33 | @Override | |
| 34 | public InputResolver<I, O> get(int i) { | |
| 35 |
1
1. get : replaced return value with null for com/github/valid8j/metamor/InputResolver$Sequence$Impl::get → KILLED |
return inputResolvers.get(i); |
| 36 | } | |
| 37 | ||
| 38 | @Override | |
| 39 | public int size() { | |
| 40 |
1
1. size : replaced int return with 0 for com/github/valid8j/metamor/InputResolver$Sequence$Impl::size → NO_COVERAGE |
return inputResolvers.size(); |
| 41 | } | |
| 42 | ||
| 43 | @Override | |
| 44 | public String name() { | |
| 45 |
1
1. name : replaced return value with "" for com/github/valid8j/metamor/InputResolver$Sequence$Impl::name → SURVIVED |
return this.inputVariableName; |
| 46 | } | |
| 47 | ||
| 48 | @Override | |
| 49 | public String toString() { | |
| 50 |
1
1. toString : replaced return value with "" for com/github/valid8j/metamor/InputResolver$Sequence$Impl::toString → SURVIVED |
return inputVariableName + ":" + inputResolvers; |
| 51 | } | |
| 52 | ||
| 53 | @Override | |
| 54 | public Iterator<InputResolver<I, O>> iterator() { | |
| 55 |
1
1. iterator : replaced return value with null for com/github/valid8j/metamor/InputResolver$Sequence$Impl::iterator → NO_COVERAGE |
return new AbstractList<InputResolver<I, O>>() { |
| 56 | ||
| 57 | @Override | |
| 58 | public int size() { | |
| 59 |
1
1. size : replaced int return with 0 for com/github/valid8j/metamor/InputResolver$Sequence$Impl$1::size → NO_COVERAGE |
return Impl.this.size(); |
| 60 | } | |
| 61 | ||
| 62 | @Override | |
| 63 | public InputResolver<I, O> get(int index) { | |
| 64 |
1
1. get : replaced return value with null for com/github/valid8j/metamor/InputResolver$Sequence$Impl$1::get → NO_COVERAGE |
return Impl.this.get(index); |
| 65 | } | |
| 66 | }.iterator(); | |
| 67 | } | |
| 68 | } | |
| 69 | ||
| 70 | interface Factory<X, I, O> extends Function<X, Sequence<I, O>> { | |
| 71 | int count(); | |
| 72 | ||
| 73 | class Impl<X, I, O> | |
| 74 | extends PrintableFunction<X, Sequence<I, O>> | |
| 75 | implements Factory<X, I, O> { | |
| 76 | ||
| 77 | private final int count; | |
| 78 | ||
| 79 | public Impl(Supplier<String> s, Function<? super X, ? extends Sequence<I, O>> function, int count) { | |
| 80 | super(new Object(), emptyList(), s, function); | |
| 81 | this.count = count; | |
| 82 | } | |
| 83 | ||
| 84 | public Impl(String inputVariableName, List<Function<? super X, ? extends InputResolver<I, O>>> functions) { | |
| 85 | this( | |
| 86 | () -> functions.stream() | |
| 87 | .map(Objects::toString) | |
| 88 |
1
1. lambda$new$0 : replaced return value with "" for com/github/valid8j/metamor/InputResolver$Sequence$Factory$Impl::lambda$new$0 → SURVIVED |
.collect(joining(",", "[", "]")), |
| 89 | Factory.Impl.toSequenceCreatorFunction(inputVariableName, functions), functions.size()); | |
| 90 | } | |
| 91 | ||
| 92 | @Override | |
| 93 | public int count() { | |
| 94 |
1
1. count : replaced int return with 0 for com/github/valid8j/metamor/InputResolver$Sequence$Factory$Impl::count → KILLED |
return this.count; |
| 95 | } | |
| 96 | ||
| 97 | private static <X, I, O> Function<? super X, ? extends Sequence<I, O>> toSequenceCreatorFunction(String inputVariableName, List<Function<? super X, ? extends InputResolver<I, O>>> functions) { | |
| 98 |
2
1. lambda$toSequenceCreatorFunction$2 : replaced return value with null for com/github/valid8j/metamor/InputResolver$Sequence$Factory$Impl::lambda$toSequenceCreatorFunction$2 → KILLED 2. toSequenceCreatorFunction : replaced return value with null for com/github/valid8j/metamor/InputResolver$Sequence$Factory$Impl::toSequenceCreatorFunction → KILLED |
return (X value) -> new Sequence.Impl<>( |
| 99 | inputVariableName, | |
| 100 | functions.stream() | |
| 101 |
1
1. lambda$null$1 : replaced return value with null for com/github/valid8j/metamor/InputResolver$Sequence$Factory$Impl::lambda$null$1 → KILLED |
.map(f -> f.apply(value)) |
| 102 | .collect(toList())); | |
| 103 | } | |
| 104 | } | |
| 105 | ||
| 106 | class Builder<X, I, O> { | |
| 107 | private final List<Function<? super X, ? extends InputResolver<I, O>>> functions = new LinkedList<>(); | |
| 108 | private final String placeHolderVariableName; | |
| 109 | private final String inputVariableName; | |
| 110 | ||
| 111 | public Builder(String inputVariableName, String placeHolderVariableName) { | |
| 112 | this.placeHolderVariableName = placeHolderVariableName; | |
| 113 | this.inputVariableName = inputVariableName; | |
| 114 | } | |
| 115 | ||
| 116 | public Builder<X, I, O> function(Function<Object, String> formatter, Function<X, I> f) { | |
| 117 |
4
1. lambda$function$0 : replaced return value with "" for com/github/valid8j/metamor/InputResolver$Sequence$Factory$Builder::lambda$function$0 → SURVIVED 2. lambda$null$1 : replaced return value with "" for com/github/valid8j/metamor/InputResolver$Sequence$Factory$Builder::lambda$null$1 → SURVIVED 3. lambda$function$3 : replaced return value with null for com/github/valid8j/metamor/InputResolver$Sequence$Factory$Builder::lambda$function$3 → KILLED 4. lambda$null$2 : replaced return value with null for com/github/valid8j/metamor/InputResolver$Sequence$Factory$Builder::lambda$null$2 → KILLED |
this.functions.add(Printables.function(() -> formatter.apply(this.placeHolderVariableName), x -> new InputResolver.Impl<>(() -> formatter.apply(x), ds -> f.apply(x)))); |
| 118 |
1
1. function : replaced return value with null for com/github/valid8j/metamor/InputResolver$Sequence$Factory$Builder::function → KILLED |
return this; |
| 119 | } | |
| 120 | ||
| 121 | public Factory<X, I, O> build() { | |
| 122 |
1
1. build : replaced return value with null for com/github/valid8j/metamor/InputResolver$Sequence$Factory$Builder::build → KILLED |
return new Impl<>(this.inputVariableName, this.functions); |
| 123 | } | |
| 124 | } | |
| 125 | } | |
| 126 | } | |
| 127 | } | |
Mutations | ||
| 35 |
1.1 |
|
| 40 |
1.1 |
|
| 45 |
1.1 |
|
| 50 |
1.1 |
|
| 55 |
1.1 |
|
| 59 |
1.1 |
|
| 64 |
1.1 |
|
| 88 |
1.1 |
|
| 94 |
1.1 |
|
| 98 |
1.1 2.2 |
|
| 101 |
1.1 |
|
| 117 |
1.1 2.2 3.3 4.4 |
|
| 118 |
1.1 |
|
| 122 |
1.1 |