ExplainablePredicate.java

1
package com.github.dakusui.pcond.core.printable;
2
3
import com.github.dakusui.pcond.core.Evaluable;
4
import com.github.dakusui.pcond.core.Evaluator;
5
6
import java.util.Objects;
7
import java.util.function.Predicate;
8
import java.util.function.Supplier;
9
10
import static com.github.dakusui.pcond.internals.InternalUtils.formatObject;
11
import static com.github.dakusui.pcond.internals.InternalUtils.toNonStringObject;
12
import static java.util.Collections.emptyList;
13
14
public abstract class ExplainablePredicate<V> extends PrintablePredicate<V>
15
    implements Predicate<V>, Evaluable.LeafPred<V>, Evaluator.Explainable {
16
  V actualInput;
17
18
  protected ExplainablePredicate(Supplier<String> formatter, Predicate<? super V> predicate) {
19
    super(new Object(), emptyList(), formatter, predicate);
20
  }
21
22
  @Override
23
  public boolean test(V value) {
24
    actualInput = value;
25 2 1. test : replaced boolean return with false for com/github/dakusui/pcond/core/printable/ExplainablePredicate::test → NO_COVERAGE
2. test : replaced boolean return with true for com/github/dakusui/pcond/core/printable/ExplainablePredicate::test → NO_COVERAGE
    return super.test(value);
26
  }
27
28
  protected V actualInput() {
29 1 1. actualInput : replaced return value with null for com/github/dakusui/pcond/core/printable/ExplainablePredicate::actualInput → SURVIVED
    return this.actualInput;
30
  }
31
32
  @Override
33
  public Object explainActual(Object actualValue) {
34 1 1. explainActual : replaced return value with null for com/github/dakusui/pcond/core/printable/ExplainablePredicate::explainActual → SURVIVED
    return actualInput();
35
  }
36
37
  @Override
38
  public Predicate<? super V> predicate() {
39 1 1. predicate : replaced return value with null for com/github/dakusui/pcond/core/printable/ExplainablePredicate::predicate → KILLED
    return (Predicate<V>) v -> {
40
      actualInput = v;
41 2 1. lambda$predicate$0 : replaced boolean return with false for com/github/dakusui/pcond/core/printable/ExplainablePredicate::lambda$predicate$0 → KILLED
2. lambda$predicate$0 : replaced boolean return with true for com/github/dakusui/pcond/core/printable/ExplainablePredicate::lambda$predicate$0 → KILLED
      return super.predicate.test(v);
42
    };
43
  }
44
45
  public static Predicate<String> explainableStringIsEqualTo(String str) {
46 4 1. explainableStringIsEqualTo : replaced return value with null for com/github/dakusui/pcond/core/printable/ExplainablePredicate::explainableStringIsEqualTo → KILLED
2. lambda$explainableStringIsEqualTo$1 : replaced return value with "" for com/github/dakusui/pcond/core/printable/ExplainablePredicate::lambda$explainableStringIsEqualTo$1 → KILLED
3. lambda$explainableStringIsEqualTo$2 : replaced boolean return with false for com/github/dakusui/pcond/core/printable/ExplainablePredicate::lambda$explainableStringIsEqualTo$2 → KILLED
4. lambda$explainableStringIsEqualTo$2 : replaced boolean return with true for com/github/dakusui/pcond/core/printable/ExplainablePredicate::lambda$explainableStringIsEqualTo$2 → KILLED
    return new ExplainablePredicate<String>(() -> "stringIsEqualTo[" + formatObject(toNonStringObject(str)) + "]", v -> Objects.equals(str, v)) {
47
      @Override
48
      public Object explainOutputExpectation() {
49 1 1. explainOutputExpectation : replaced return value with null for com/github/dakusui/pcond/core/printable/ExplainablePredicate$1::explainOutputExpectation → SURVIVED
        return str;
50
      }
51
    };
52
  }
53
}

Mutations

25

1.1
Location : test
Killed by : none
replaced boolean return with false for com/github/dakusui/pcond/core/printable/ExplainablePredicate::test → NO_COVERAGE

2.2
Location : test
Killed by : none
replaced boolean return with true for com/github/dakusui/pcond/core/printable/ExplainablePredicate::test → NO_COVERAGE

29

1.1
Location : actualInput
Killed by : none
replaced return value with null for com/github/dakusui/pcond/core/printable/ExplainablePredicate::actualInput → SURVIVED

34

1.1
Location : explainActual
Killed by : none
replaced return value with null for com/github/dakusui/pcond/core/printable/ExplainablePredicate::explainActual → SURVIVED

39

1.1
Location : predicate
Killed by : com.github.dakusui.ut.thincrest.ut.styles.MoreFluentStringTest.test_isEqualTo(com.github.dakusui.ut.thincrest.ut.styles.MoreFluentStringTest)
replaced return value with null for com/github/dakusui/pcond/core/printable/ExplainablePredicate::predicate → KILLED

41

1.1
Location : lambda$predicate$0
Killed by : com.github.dakusui.ut.thincrest.ut.styles.MoreFluentStringTest.test_isEqualTo(com.github.dakusui.ut.thincrest.ut.styles.MoreFluentStringTest)
replaced boolean return with false for com/github/dakusui/pcond/core/printable/ExplainablePredicate::lambda$predicate$0 → KILLED

2.2
Location : lambda$predicate$0
Killed by : com.github.dakusui.ut.thincrest.ut.FluentUtilsTest.example2(com.github.dakusui.ut.thincrest.ut.FluentUtilsTest)
replaced boolean return with true for com/github/dakusui/pcond/core/printable/ExplainablePredicate::lambda$predicate$0 → KILLED

46

1.1
Location : explainableStringIsEqualTo
Killed by : com.github.dakusui.ut.thincrest.ut.styles.MoreFluentStringTest.test_isEqualTo(com.github.dakusui.ut.thincrest.ut.styles.MoreFluentStringTest)
replaced return value with null for com/github/dakusui/pcond/core/printable/ExplainablePredicate::explainableStringIsEqualTo → KILLED

2.2
Location : lambda$explainableStringIsEqualTo$1
Killed by : com.github.dakusui.ut.thincrest.ut.styles.FluentStyleTestAssertionTest$ForTestAssertionsTest.string_assertThatTest_failed(com.github.dakusui.ut.thincrest.ut.styles.FluentStyleTestAssertionTest$ForTestAssertionsTest)
replaced return value with "" for com/github/dakusui/pcond/core/printable/ExplainablePredicate::lambda$explainableStringIsEqualTo$1 → KILLED

3.3
Location : lambda$explainableStringIsEqualTo$2
Killed by : com.github.dakusui.ut.thincrest.ut.styles.MoreFluentStringTest.test_isEqualTo(com.github.dakusui.ut.thincrest.ut.styles.MoreFluentStringTest)
replaced boolean return with false for com/github/dakusui/pcond/core/printable/ExplainablePredicate::lambda$explainableStringIsEqualTo$2 → KILLED

4.4
Location : lambda$explainableStringIsEqualTo$2
Killed by : com.github.dakusui.ut.thincrest.ut.FluentUtilsTest.example2(com.github.dakusui.ut.thincrest.ut.FluentUtilsTest)
replaced boolean return with true for com/github/dakusui/pcond/core/printable/ExplainablePredicate::lambda$explainableStringIsEqualTo$2 → KILLED

49

1.1
Location : explainOutputExpectation
Killed by : none
replaced return value with null for com/github/dakusui/pcond/core/printable/ExplainablePredicate$1::explainOutputExpectation → SURVIVED

Active mutators

Tests examined


Report generated by PIT 1.7.3