NaturalExprValueOrdering.java

1
/*
2
 * Copyright OpenSearch Contributors
3
 * SPDX-License-Identifier: Apache-2.0
4
 */
5
6
7
package org.opensearch.sql.data.utils;
8
9
import com.google.common.collect.Ordering;
10
import org.opensearch.sql.data.model.ExprValue;
11
12
/**
13
 * Idea from guava {@link Ordering}. The only difference is the special logic to handle {@link
14
 * org.opensearch.sql.data.model.ExprNullValue} and {@link
15
 * org.opensearch.sql.data.model.ExprMissingValue}
16
 */
17
public class NaturalExprValueOrdering extends ExprValueOrdering {
18
  static final ExprValueOrdering INSTANCE = new NaturalExprValueOrdering();
19
20
  private transient ExprValueOrdering nullsFirst;
21
  private transient ExprValueOrdering nullsLast;
22
23
  @Override
24
  public int compare(ExprValue left, ExprValue right) {
25 1 1. compare : replaced int return with 0 for org/opensearch/sql/data/utils/NaturalExprValueOrdering::compare → KILLED
    return left.compareTo(right);
26
  }
27
28
  @Override
29
  public ExprValueOrdering nullsFirst() {
30
    ExprValueOrdering result = nullsFirst;
31 1 1. nullsFirst : negated conditional → SURVIVED
    if (result == null) {
32
      result = nullsFirst = super.nullsFirst();
33
    }
34 1 1. nullsFirst : replaced return value with null for org/opensearch/sql/data/utils/NaturalExprValueOrdering::nullsFirst → KILLED
    return result;
35
  }
36
37
  @Override
38
  public ExprValueOrdering nullsLast() {
39
    ExprValueOrdering result = nullsLast;
40 1 1. nullsLast : negated conditional → SURVIVED
    if (result == null) {
41
      result = nullsLast = super.nullsLast();
42
    }
43 1 1. nullsLast : replaced return value with null for org/opensearch/sql/data/utils/NaturalExprValueOrdering::nullsLast → KILLED
    return result;
44
  }
45
46
  @Override
47
  public ExprValueOrdering reverse() {
48 1 1. reverse : replaced return value with null for org/opensearch/sql/data/utils/NaturalExprValueOrdering::reverse → KILLED
    return super.reverse();
49
  }
50
}

Mutations

25

1.1
Location : compare
Killed by : org.opensearch.sql.data.utils.ExprValueOrderingTest.[engine:junit-jupiter]/[class:org.opensearch.sql.data.utils.ExprValueOrderingTest]/[method:natural_order_boolean_value()]
replaced int return with 0 for org/opensearch/sql/data/utils/NaturalExprValueOrdering::compare → KILLED

31

1.1
Location : nullsFirst
Killed by : none
negated conditional → SURVIVED

34

1.1
Location : nullsFirst
Killed by : org.opensearch.sql.data.utils.NullsFirstExprValueOrderingTest.[engine:junit-jupiter]/[class:org.opensearch.sql.data.utils.NullsFirstExprValueOrderingTest]/[method:natural_null_first_compare_same_object()]
replaced return value with null for org/opensearch/sql/data/utils/NaturalExprValueOrdering::nullsFirst → KILLED

40

1.1
Location : nullsLast
Killed by : none
negated conditional → SURVIVED

43

1.1
Location : nullsLast
Killed by : org.opensearch.sql.data.utils.NullsLastExprValueOrderingTest.[engine:junit-jupiter]/[class:org.opensearch.sql.data.utils.NullsLastExprValueOrderingTest]/[method:natural_null_last_compare_same_object()]
replaced return value with null for org/opensearch/sql/data/utils/NaturalExprValueOrdering::nullsLast → KILLED

48

1.1
Location : reverse
Killed by : org.opensearch.sql.data.utils.ReverseExprValueOrderingTest.[engine:junit-jupiter]/[class:org.opensearch.sql.data.utils.ReverseExprValueOrderingTest]/[method:natural_reverse_reverse()]
replaced return value with null for org/opensearch/sql/data/utils/NaturalExprValueOrdering::reverse → KILLED

Active mutators

Tests examined


Report generated by PIT 1.9.0