CompatJsonUtils.java

1
package com.github.dakusui.symfonion.compat.json;
2
3
import com.google.gson.*;
4
5
import java.util.*;
6
import java.util.Map.Entry;
7
8
import static com.github.dakusui.symfonion.compat.exceptions.CompatExceptionThrower.typeMismatchException;
9
import static com.github.dakusui.symfonion.compat.exceptions.SymfonionTypeMismatchException.OBJECT;
10
import static java.util.Objects.requireNonNull;
11
12
public enum CompatJsonUtils {
13
  ;
14
  public static String summarizeJsonElement(JsonElement jsonElement) {
15 2 1. summarizeJsonElement : negated conditional → KILLED
2. summarizeJsonElement : negated conditional → KILLED
    if (jsonElement == null || jsonElement.isJsonNull()) {
16 1 1. summarizeJsonElement : replaced return value with "" for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::summarizeJsonElement → NO_COVERAGE
      return "null";
17
    }
18
    JsonElement compact = JsonSummarizer.compactJsonElement(jsonElement, 3, 3);
19
20 1 1. summarizeJsonElement : negated conditional → KILLED
    if (jsonElement.isJsonPrimitive()) {
21 1 1. summarizeJsonElement : replaced return value with "" for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::summarizeJsonElement → KILLED
      return compact + " (primitive)";
22
    }
23 1 1. summarizeJsonElement : negated conditional → KILLED
    if (jsonElement.isJsonArray()) {
24 1 1. summarizeJsonElement : replaced return value with "" for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::summarizeJsonElement → NO_COVERAGE
      return JsonSummarizer.focusedArray((JsonArray) compact) + " (array: size=" + jsonElement.getAsJsonArray().size() + ")";
25
    }
26 1 1. summarizeJsonElement : negated conditional → KILLED
    if (jsonElement.isJsonObject()) {
27 1 1. summarizeJsonElement : replaced return value with "" for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::summarizeJsonElement → KILLED
      return JsonSummarizer.focusedObject((JsonObject) compact) + " (object: " + jsonElement.getAsJsonObject().entrySet().size() + " entries)";
28
    }
29 1 1. summarizeJsonElement : replaced return value with "" for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::summarizeJsonElement → NO_COVERAGE
    return compact + " (unknown)";
30
  }
31
32
  /**
33
   * Returns a string representation of a path to a JSON element {@code target} in {@code root} JSON object node.
34
   *
35
   * @param target A JSON element whose path in {@code root} is searched for.
36
   * @param root   A root JSON object node where {@code target}'s path is searched.
37
   * @return A string representation of a path to {@code target} in {@code root}.
38
   */
39
  public static String findPathStringOf(JsonElement target, JsonObject root) {
40 1 1. findPathStringOf : replaced return value with "" for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::findPathStringOf → KILLED
    return jsonpathToString(findPathOf(target, root));
41
  }
42
43
  public static List<Object> findPathOf(JsonElement target, JsonObject root) {
44 1 1. findPathOf : replaced return value with Collections.emptyList for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::findPathOf → KILLED
    return buildPathInfo(root).get(target);
45
  }
46
47
  @SafeVarargs
48
  public static JsonObject createSummaryJsonObjectFromPaths(JsonObject rootJsonObject, List<Object>... paths) {
49
    JsonObject ret = new JsonObject();
50
    for (List<Object> eachPath : paths) {
51
      ret = merge(requireJsonObject(createSummaryJsonElementFromPath(rootJsonObject, eachPath)), ret);
52
    }
53 1 1. createSummaryJsonObjectFromPaths : replaced return value with null for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::createSummaryJsonObjectFromPaths → SURVIVED
    return ret;
54
  }
55
56
  private static JsonElement createSummaryJsonElementFromPath(JsonObject rootJsonObject, List<Object> path) {
57 2 1. createSummaryJsonElementFromPath : replaced return value with null for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::createSummaryJsonElementFromPath → KILLED
2. createSummaryJsonElementFromPath : negated conditional → KILLED
    return path.isEmpty() ?
58
           JsonSummarizer.focusedElement(JsonSummarizer.compactJsonObject(rootJsonObject, 3, 3)) :
59 1 1. createSummaryJsonElementFromPath : negated conditional → SURVIVED
           path.size() == 1 ?
60
           summaryTopLevelElement(rootJsonObject, path.getFirst()) :
61 1 1. createSummaryJsonElementFromPath : Replaced integer subtraction with addition → KILLED
           JsonSummarizer.summaryObject(rootJsonObject, path.subList(0, path.size() - 1), path.getLast());
62
  }
63
64
  private static JsonElement summaryTopLevelElement(JsonObject rootJsonObject, Object topLevelAttribute) {
65
    assert topLevelAttribute instanceof String;
66
    JsonObject ret                   = new JsonObject();
67
    String     topLevelAttributeName = (String) topLevelAttribute;
68 1 1. summaryTopLevelElement : removed call to com/google/gson/JsonObject::add → SURVIVED
    ret.add(topLevelAttributeName, JsonSummarizer.focusedElement(asJsonElement(rootJsonObject, topLevelAttribute)));
69 1 1. summaryTopLevelElement : replaced return value with null for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::summaryTopLevelElement → KILLED
    return ret;
70
  }
71
72
  public static JsonObject requireJsonObject(JsonElement elem) {
73 1 1. requireJsonObject : negated conditional → KILLED
    if (!elem.isJsonObject())
74
      throw typeMismatchException(elem, OBJECT);
75 1 1. requireJsonObject : replaced return value with null for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::requireJsonObject → KILLED
    return elem.getAsJsonObject();
76
  }
77
78
  enum JsonTypes {
79
    OBJECT {
80
      @Override
81
      JsonObject _validate(JsonElement value) throws JsonTypeMismatchException {
82 1 1. _validate : negated conditional → KILLED
        if (!value.isJsonObject()) {
83
          throw new JsonTypeMismatchException(value, this);
84
        }
85 1 1. _validate : replaced return value with null for com/github/dakusui/symfonion/compat/json/CompatJsonUtils$JsonTypes$1::_validate → KILLED
        return value.getAsJsonObject();
86
      }
87
    },
88
    ARRAY {
89
      @Override
90
      JsonArray _validate(JsonElement value) throws JsonTypeMismatchException {
91 1 1. _validate : negated conditional → KILLED
        if (!value.isJsonArray()) {
92
          throw new JsonTypeMismatchException(value, this);
93
        }
94 1 1. _validate : replaced return value with null for com/github/dakusui/symfonion/compat/json/CompatJsonUtils$JsonTypes$2::_validate → KILLED
        return value.getAsJsonArray();
95
      }
96
97
    },
98
    PRIMITIVE {
99
      @Override
100
      JsonPrimitive _validate(JsonElement value)
101
      throws JsonTypeMismatchException {
102 1 1. _validate : negated conditional → KILLED
        if (!value.isJsonPrimitive()) {
103
          throw new JsonTypeMismatchException(value, this);
104
        }
105 1 1. _validate : replaced return value with null for com/github/dakusui/symfonion/compat/json/CompatJsonUtils$JsonTypes$3::_validate → KILLED
        return value.getAsJsonPrimitive();
106
      }
107
    },
108
    NULL {
109
      @Override
110
      JsonNull _validate(JsonElement value) throws JsonTypeMismatchException {
111 1 1. _validate : negated conditional → NO_COVERAGE
        if (!value.isJsonNull()) {
112
          throw new JsonTypeMismatchException(value, this);
113
        }
114 1 1. _validate : replaced return value with null for com/github/dakusui/symfonion/compat/json/CompatJsonUtils$JsonTypes$4::_validate → NO_COVERAGE
        return value.getAsJsonNull();
115
      }
116
    };
117
118
    abstract JsonElement _validate(JsonElement value)
119
    throws JsonTypeMismatchException;
120
121
    JsonElement validate(JsonElement value) throws JsonTypeMismatchException {
122 1 1. validate : negated conditional → KILLED
      if (value == null) {
123
        return null;
124
      }
125 1 1. validate : replaced return value with null for com/github/dakusui/symfonion/compat/json/CompatJsonUtils$JsonTypes::validate → KILLED
      return _validate(value);
126
    }
127
  }
128
129
  public static JsonElement asJsonElementWithDefault(JsonElement base,
130
                                                     JsonElement defaultValue,
131
                                                     int from,
132
                                                     Object[] path) throws JsonInvalidPathException {
133
    JsonElement ret = _asJsonElement(base, defaultValue, from, path);
134
    // //
135
    // TODO: To workaround test failure. Need to come up with more consistent policy to handle JsonNull.INSTANCE.
136 2 1. asJsonElementWithDefault : negated conditional → KILLED
2. asJsonElementWithDefault : negated conditional → KILLED
    if (ret == null || ret == JsonNull.INSTANCE) {
137
      ret = defaultValue;
138
    }
139 1 1. asJsonElementWithDefault : replaced return value with null for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::asJsonElementWithDefault → KILLED
    return ret;
140
  }
141
142
  public static JsonElement asJsonElement(JsonElement base, int from, Object[] path) throws JsonInvalidPathException {
143
    JsonElement ret = _asJsonElement(base, null, from, path);
144 1 1. asJsonElement : negated conditional → KILLED
    if (ret == null) {
145
      throw new JsonPathNotFoundException(base, path, from);
146
    }
147 1 1. asJsonElement : replaced return value with null for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::asJsonElement → KILLED
    return ret;
148
  }
149
150
  private static JsonElement _asJsonElement(JsonElement base,
151
                                            JsonElement defaultValue,
152
                                            int from,
153
                                            Object[] path)
154
  throws JsonInvalidPathException {
155 2 1. _asJsonElement : negated conditional → KILLED
2. _asJsonElement : negated conditional → KILLED
    if (path.length == from || base == null) {
156 1 1. _asJsonElement : replaced return value with null for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::_asJsonElement → KILLED
      return base;
157
    }
158
    JsonElement newbase;
159 1 1. _asJsonElement : negated conditional → KILLED
    if (path[from] == null) {
160
      throw new JsonInvalidPathException(base, pathArray(path, from)); // invalid path;
161
    }
162 1 1. _asJsonElement : negated conditional → KILLED
    if (base.isJsonObject()) {
163
      newbase = base.getAsJsonObject().get(path[from].toString());
164
    } else {
165 1 1. _asJsonElement : negated conditional → KILLED
      if (base.isJsonArray()) {
166
        Integer index;
167 3 1. _asJsonElement : negated conditional → KILLED
2. _asJsonElement : negated conditional → KILLED
3. _asJsonElement : negated conditional → KILLED
        if ((path[from] instanceof Integer) ||
168
            (path[from] instanceof Long) ||
169
            (path[from] instanceof Short)) {
170
          index = ((Number) path[from]).intValue();
171
        } else {
172 1 1. _asJsonElement : negated conditional → KILLED
          if ((index = parseInt(path[from])) == null) {
173
            throw new JsonInvalidPathException(base, pathArray(path, from));
174
          }
175
        }
176 4 1. _asJsonElement : changed conditional boundary → SURVIVED
2. _asJsonElement : changed conditional boundary → KILLED
3. _asJsonElement : negated conditional → KILLED
4. _asJsonElement : negated conditional → KILLED
        if (index < 0 || index >= base.getAsJsonArray().size()) {
177
          throw new JsonIndexOutOfBoundsException(base, path, from);
178
        }
179
        newbase = base.getAsJsonArray().get(index);
180 1 1. _asJsonElement : negated conditional → NO_COVERAGE
      } else if (base.isJsonPrimitive()) {
181
        return null;
182
      } else {
183
        // JsonNull
184
        return null;
185
      }
186
    }
187
188 1 1. _asJsonElement : Replaced integer addition with subtraction → KILLED
    JsonElement ret = _asJsonElement(newbase, defaultValue, from + 1, path);
189
190 1 1. _asJsonElement : negated conditional → KILLED
    if (ret == null) {
191 1 1. _asJsonElement : negated conditional → SURVIVED
      if (defaultValue != null) {
192 1 1. _asJsonElement : replaced return value with null for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::_asJsonElement → SURVIVED
        return defaultValue;
193
      }
194
    }
195 1 1. _asJsonElement : replaced return value with null for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::_asJsonElement → KILLED
    return ret;
196
  }
197
198
  private static Object[] pathArray(Object[] wholePath, int pos) {
199 1 1. pathArray : Replaced integer addition with subtraction → KILLED
    Object[] ret = new Object[pos + 1];
200 2 1. pathArray : removed call to java/lang/System::arraycopy → KILLED
2. pathArray : Replaced integer addition with subtraction → KILLED
    System.arraycopy(wholePath, 0, ret, 0, pos + 1);
201 1 1. pathArray : replaced return value with null for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::pathArray → KILLED
    return ret;
202
  }
203
204
  private static Integer parseInt(Object object) {
205
    Integer ret = null;
206
    try {
207
      String str = object.toString();
208
      ret = Integer.parseInt(str);
209
    } catch (NumberFormatException ignored) {
210
    }
211
212 1 1. parseInt : replaced Integer return value with 0 for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::parseInt → KILLED
    return ret;
213
  }
214
215
  public static boolean hasPath(JsonElement base, Object... path) {
216
    try {
217 2 1. hasPath : negated conditional → KILLED
2. hasPath : replaced boolean return with true for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::hasPath → KILLED
      return _asJsonElement(base, null, 0, path) != null;
218
    } catch (JsonInvalidPathException e) {
219 1 1. hasPath : replaced boolean return with true for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::hasPath → NO_COVERAGE
      return false;
220
    }
221
  }
222
223
  public static JsonObject asJsonObjectWithDefault(JsonObject base,
224
                                                   JsonObject defaultValue, Object... path)
225
  throws JsonTypeMismatchException,
226
         JsonInvalidPathException {
227 1 1. asJsonObjectWithDefault : replaced return value with null for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::asJsonObjectWithDefault → KILLED
    return (JsonObject) JsonTypes.OBJECT.validate(asJsonElementWithDefault(base, defaultValue, path));
228
  }
229
230
  public static JsonObject asJsonObject(JsonObject base, Object... path)
231
  throws JsonTypeMismatchException,
232
         JsonInvalidPathException {
233 1 1. asJsonObject : replaced return value with null for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::asJsonObject → KILLED
    return asJsonObjectWithDefault(base, null, path);
234
  }
235
236
  public static JsonObject asJsonObjectWithPromotion(JsonElement base,
237
                                                     String[] prioritizedKeys, Object... path)
238
  throws JsonInvalidPathException,
239
         JsonTypeMismatchException {
240
    JsonObject  ret;
241
    JsonElement elem = asJsonElement(base, path);
242 1 1. asJsonObjectWithPromotion : negated conditional → KILLED
    if (elem.isJsonObject()) {
243
      ret = elem.getAsJsonObject();
244
    } else {
245
      JsonArray arr = asJsonArrayWithPromotion(base, path);
246
      ret = new JsonObject();
247
      int i = 0;
248
      for (JsonElement item : arr) {
249 2 1. asJsonObjectWithPromotion : changed conditional boundary → SURVIVED
2. asJsonObjectWithPromotion : negated conditional → KILLED
        if (i >= prioritizedKeys.length) {
250 1 1. asJsonObjectWithPromotion : negated conditional → NO_COVERAGE
          if (prioritizedKeys.length == 0) {
251
            throw new JsonTypeMismatchException(elem,
252
                                                "An object or an empty array are acceptable");
253
          } else {
254
            throw new JsonTypeMismatchException(
255
                elem,
256
                String
257
                    .format(
258
                        "A primitive, an array whose length is less than or equal to %d, or an object are acceptable",
259
                        prioritizedKeys.length));
260
          }
261
        }
262
        String key = prioritizedKeys[i];
263 1 1. asJsonObjectWithPromotion : removed call to com/google/gson/JsonObject::add → KILLED
        ret.add(key, item);
264 1 1. asJsonObjectWithPromotion : Changed increment from 1 to -1 → SURVIVED
        i++;
265
      }
266
    }
267 1 1. asJsonObjectWithPromotion : replaced return value with null for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::asJsonObjectWithPromotion → KILLED
    return ret;
268
  }
269
270
  public static JsonArray asJsonArrayWithPromotion(JsonElement base,
271
                                                   Object... path) throws
272
                                                                   JsonInvalidPathException, JsonTypeMismatchException {
273
    JsonArray   ret;
274
    JsonElement elem = asJsonElement(base, path);
275 1 1. asJsonArrayWithPromotion : negated conditional → KILLED
    if (elem.isJsonObject()) {
276
      throw new JsonTypeMismatchException(elem, JsonTypes.ARRAY,
277
                                          JsonTypes.NULL, JsonTypes.PRIMITIVE);
278
    }
279 1 1. asJsonArrayWithPromotion : negated conditional → KILLED
    if (elem.isJsonArray()) {
280
      ret = elem.getAsJsonArray();
281
    } else {
282
      ret = new JsonArray();
283 1 1. asJsonArrayWithPromotion : removed call to com/google/gson/JsonArray::add → KILLED
      ret.add(elem);
284
    }
285 1 1. asJsonArrayWithPromotion : replaced return value with null for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::asJsonArrayWithPromotion → KILLED
    return ret;
286
  }
287
288
  public static JsonArray asJsonArray(JsonElement base, Object... path)
289
  throws CompatJsonException {
290 1 1. asJsonArray : replaced return value with null for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::asJsonArray → KILLED
    return asJsonArrayWithDefault(base, null, path);
291
  }
292
293
  public static JsonArray asJsonArrayWithDefault(JsonElement base,
294
                                                 JsonArray defaultValue,
295
                                                 Object... path) throws JsonTypeMismatchException,
296
                                                                        JsonInvalidPathException {
297 1 1. asJsonArrayWithDefault : replaced return value with null for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::asJsonArrayWithDefault → KILLED
    return (JsonArray) JsonTypes.ARRAY.validate(asJsonElementWithDefault(base,
298
                                                                         defaultValue,
299
                                                                         path));
300
  }
301
302
  public static JsonElement asJsonElementWithDefault(JsonElement base,
303
                                                     JsonElement defaultValue,
304
                                                     Object... path)
305
  throws JsonInvalidPathException {
306 1 1. asJsonElementWithDefault : replaced return value with null for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::asJsonElementWithDefault → KILLED
    return asJsonElementWithDefault(base, defaultValue, 0, path);
307
  }
308
309
  public static JsonElement asJsonElement(JsonElement base, Object... path) {
310 1 1. asJsonElement : replaced return value with null for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::asJsonElement → KILLED
    return asJsonElement(base, 0, path);
311
  }
312
313
  public static String asString(JsonElement base, Object... path) {
314
    JsonPrimitive prim = (JsonPrimitive) JsonTypes.PRIMITIVE.validate(asJsonElement(base, path));
315 1 1. asString : negated conditional → KILLED
    if (prim == null) {
316 1 1. asString : replaced return value with "" for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::asString → NO_COVERAGE
      return null;
317
    }
318 1 1. asString : replaced return value with "" for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::asString → KILLED
    return prim.getAsString();
319
  }
320
321
  public static String asStringWithDefault(JsonElement base,
322
                                           String defaultValue,
323
                                           Object... path) throws JsonTypeMismatchException,
324
                                                                  JsonInvalidPathException {
325
    JsonElement dv = null;
326 1 1. asStringWithDefault : negated conditional → KILLED
    if (defaultValue != null) {
327
      dv = new JsonPrimitive(defaultValue);
328
    }
329
    JsonPrimitive prim = (JsonPrimitive) JsonTypes.PRIMITIVE.validate(asJsonElementWithDefault(base, dv, path));
330 1 1. asStringWithDefault : negated conditional → KILLED
    if (prim == null) {
331 1 1. asStringWithDefault : replaced return value with "" for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::asStringWithDefault → SURVIVED
      return null;
332
    }
333 1 1. asStringWithDefault : replaced return value with "" for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::asStringWithDefault → KILLED
    return prim.getAsString();
334
  }
335
336
  public static int asInt(JsonElement base, Object... path)
337
  throws JsonTypeMismatchException,
338
         JsonFormatException, JsonInvalidPathException {
339
    try {
340 1 1. asInt : replaced int return with 0 for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::asInt → KILLED
      return Integer.parseInt(requireNonNull(asString(base, path)));
341
    } catch (NumberFormatException e) {
342
      throw new JsonFormatException(asJsonElement(base, path));
343
    }
344
  }
345
346
  public static int asIntWithDefault(JsonElement base,
347
                                     int defaultValue,
348
                                     Object... path) throws JsonTypeMismatchException,
349
                                                            JsonFormatException, JsonInvalidPathException {
350
    try {
351 1 1. asIntWithDefault : replaced int return with 0 for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::asIntWithDefault → SURVIVED
      return Integer.parseInt(requireNonNull(asStringWithDefault(base, Integer.toString(defaultValue), path)));
352
    } catch (NumberFormatException e) {
353
      throw new JsonFormatException(asJsonElement(base, path));
354
    }
355
  }
356
357
  public static long asLong(JsonElement base, Object... path)
358
  throws JsonTypeMismatchException,
359
         JsonFormatException, JsonInvalidPathException {
360
    try {
361 1 1. asLong : replaced long return with 0 for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::asLong → KILLED
      return Long.parseLong(requireNonNull(asString(base, path)));
362
    } catch (NumberFormatException e) {
363
      throw new JsonFormatException(asJsonElement(base, path));
364
    }
365
  }
366
367
  @SuppressWarnings("UnusedDeclaration")
368
  public static long asLongWithDefault(JsonElement base,
369
                                       long defaultValue,
370
                                       Object... path) throws JsonTypeMismatchException,
371
                                                              JsonFormatException,
372
                                                              JsonInvalidPathException {
373
    try {
374 1 1. asLongWithDefault : replaced long return with 0 for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::asLongWithDefault → NO_COVERAGE
      return Long.parseLong(requireNonNull(asStringWithDefault(base, Long.toString(defaultValue), path)));
375
    } catch (NumberFormatException e) {
376
      throw new JsonFormatException(asJsonElement(base, path));
377
    }
378
  }
379
380
  @SuppressWarnings("UnusedDeclaration")
381
  public static float asFloat(JsonElement base, Object... path)
382
  throws JsonTypeMismatchException,
383
         JsonFormatException, JsonInvalidPathException {
384
    try {
385 1 1. asFloat : replaced float return with 0.0f for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::asFloat → NO_COVERAGE
      return Float.parseFloat(requireNonNull(asString(base, path)));
386
    } catch (NumberFormatException e) {
387
      throw new JsonFormatException(asJsonElement(base, path));
388
    }
389
  }
390
391
  @SuppressWarnings("UnusedDeclaration")
392
  public static float asFloatWithDefault(JsonElement base,
393
                                         float defaultValue,
394
                                         Object... path) throws JsonTypeMismatchException,
395
                                                                JsonFormatException, JsonInvalidPathException {
396
    try {
397 1 1. asFloatWithDefault : replaced float return with 0.0f for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::asFloatWithDefault → NO_COVERAGE
      return Float.parseFloat(requireNonNull(asStringWithDefault(base, Float.toString(defaultValue), path)));
398
    } catch (NumberFormatException e) {
399
      throw new JsonFormatException(asJsonElement(base, path));
400
    }
401
  }
402
403
  public static double asDouble(JsonElement base, Object... path) throws CompatJsonException {
404
    try {
405 1 1. asDouble : replaced double return with 0.0d for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::asDouble → KILLED
      return Double.parseDouble(requireNonNull(asString(base, path)));
406
    } catch (NumberFormatException e) {
407
      throw new JsonFormatException(asJsonElement(base, path));
408
    }
409
  }
410
411
  public static double asDoubleWithDefault(JsonElement base,
412
                                           double defaultValue,
413
                                           Object... path) throws JsonTypeMismatchException,
414
                                                                  JsonFormatException,
415
                                                                  JsonInvalidPathException {
416
    try {
417 1 1. asDoubleWithDefault : replaced double return with 0.0d for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::asDoubleWithDefault → KILLED
      return Double.parseDouble(requireNonNull(asStringWithDefault(base, Double.toString(defaultValue), path)));
418
    } catch (NumberFormatException e) {
419
      throw new JsonFormatException(asJsonElement(base, path));
420
    }
421
  }
422
423
  /**
424
   * Returns a map that stores path information of a given `JsonObject`.
425
   * Path information is modeled as a list of objects, each of whose elements is a path component.
426
   *
427
   * Given,
428
   * // @formatter:off
429
   * [source, JSON]
430
   * ```
431
   * {
432
   *   "a": {
433
   *      "b": "Z"
434
   *   }
435
   * }
436
   * ```
437
   * // @formatter:on
438
   *
439
   * The path information to `"Z"` will be `["a", "b"]`.
440
   *
441
   * LIMITATION::
442
   * If we have the same node value at different places in `jsonObject`,
443
   * still the returned map will contain only one entry.
444
   * It will not be specified which one will be contained.
445
   *
446
   * @param jsonObject A JSON object for which path info map is created.
447
   * @return A map which maps from `JsonElement` s in `jsonObject` to a path information object.
448
   */
449
  public static Map<JsonElement, List<Object>> buildPathInfo(JsonObject jsonObject) {
450
    Map<JsonElement, List<Object>> ret = new HashMap<>();
451
    ret.put(jsonObject, List.of());
452
    List<Object> path = new LinkedList<>();
453 1 1. buildPathInfo : removed call to com/github/dakusui/symfonion/compat/json/CompatJsonUtils::buildPathInfo → KILLED
    buildPathInfo(ret, path, jsonObject);
454 1 1. buildPathInfo : replaced return value with Collections.emptyMap for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::buildPathInfo → KILLED
    return ret;
455
  }
456
457
  private static void buildPathInfo(Map<JsonElement, List<Object>> map, List<Object> path, JsonElement elem) {
458 1 1. buildPathInfo : negated conditional → KILLED
    if (!elem.isJsonNull()) {
459 1 1. buildPathInfo : negated conditional → KILLED
      if (elem.isJsonArray()) {
460 1 1. buildPathInfo : removed call to com/github/dakusui/symfonion/compat/json/CompatJsonUtils::buildPathInfo → KILLED
        buildPathInfo(map, path, elem.getAsJsonArray());
461 1 1. buildPathInfo : negated conditional → KILLED
      } else if (elem.isJsonObject()) {
462 1 1. buildPathInfo : removed call to com/github/dakusui/symfonion/compat/json/CompatJsonUtils::buildPathInfo → KILLED
        buildPathInfo(map, path, elem.getAsJsonObject());
463
      }
464
      map.put(elem, new ArrayList<>(path));
465
    }
466
  }
467
468
  private static void buildPathInfo(Map<JsonElement, List<Object>> map, List<Object> path, JsonArray arr) {
469
    int len = arr.size();
470 2 1. buildPathInfo : negated conditional → KILLED
2. buildPathInfo : changed conditional boundary → KILLED
    for (int i = 0; i < len; i++) {
471
      path.add(i);
472 1 1. buildPathInfo : removed call to com/github/dakusui/symfonion/compat/json/CompatJsonUtils::buildPathInfo → KILLED
      buildPathInfo(map, path, arr.get(i));
473
      path.removeLast();
474
    }
475
  }
476
477
  private static void buildPathInfo(Map<JsonElement, List<Object>> map, List<Object> path, JsonObject obj) {
478
    for (Entry<String, JsonElement> ent : obj.entrySet()) {
479
      String      k    = ent.getKey();
480
      JsonElement elem = ent.getValue();
481
      path.add(k);
482 1 1. buildPathInfo : removed call to com/github/dakusui/symfonion/compat/json/CompatJsonUtils::buildPathInfo → KILLED
      buildPathInfo(map, path, elem);
483
      path.removeLast();
484
    }
485
  }
486
487
  private static String jsonpathToString(List<Object> path) {
488
    StringBuilder buf = new StringBuilder();
489
    for (Object each : path) {
490 1 1. jsonpathToString : negated conditional → KILLED
      if (each instanceof Number) {
491
        buf.append("[").append(each).append("]");
492
      } else {
493
        buf.append(".").append(quoteIfNonAlphanumericalIsContained(each));
494
      }
495
    }
496 1 1. jsonpathToString : negated conditional → KILLED
    if (buf.isEmpty())
497
      buf.append('.');
498 1 1. jsonpathToString : replaced return value with "" for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::jsonpathToString → KILLED
    return buf.toString();
499
  }
500
501
  private static String quoteIfNonAlphanumericalIsContained(Object obj) {
502 1 1. quoteIfNonAlphanumericalIsContained : negated conditional → KILLED
    if (obj instanceof String s) {
503 2 1. quoteIfNonAlphanumericalIsContained : negated conditional → KILLED
2. quoteIfNonAlphanumericalIsContained : replaced return value with "" for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::quoteIfNonAlphanumericalIsContained → KILLED
      return s.matches("[a-zA-Z_][a-zA-Z0-9_]+") ? s : '"' + escape(s) + '"';
504
    }
505 1 1. quoteIfNonAlphanumericalIsContained : replaced return value with "" for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::quoteIfNonAlphanumericalIsContained → NO_COVERAGE
    return Objects.toString(obj);
506
  }
507
508
509
  /**
510
   * <a href="https://stackoverflow.com/a/61628600/820227">Answer by Dan in stackoverflow.com</a>
511
   * escape()
512
   * Escape a give String to make it safe to be printed or stored.
513
   *
514
   * @param s The input String.
515
   * @return The output String.
516
   **/
517
  private static String escape(String s) {
518 1 1. escape : replaced return value with "" for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::escape → KILLED
    return s.replace("\\", "\\\\")
519
            .replace("\t", "\\t")
520
            .replace("\b", "\\b")
521
            .replace("\n", "\\n")
522
            .replace("\r", "\\r")
523
            .replace("\f", "\\f")
524
            .replace("'", "\\'")      // <== not necessary
525
            .replace("\"", "\\\"");
526
  }
527
528
  public static JsonElement toJson(String str) {
529 1 1. toJson : replaced return value with null for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::toJson → KILLED
    return JsonParser.parseString(str);
530
  }
531
532
  public static Iterator<String> keyIterator(final JsonObject json) {
533 1 1. keyIterator : replaced return value with null for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::keyIterator → KILLED
    return new Iterator<>() {
534
      final Iterator<Entry<String, JsonElement>> iEntries = json.entrySet()
535
                                                                .iterator();
536
537
      public boolean hasNext() {
538 2 1. hasNext : replaced boolean return with true for com/github/dakusui/symfonion/compat/json/CompatJsonUtils$1::hasNext → KILLED
2. hasNext : replaced boolean return with false for com/github/dakusui/symfonion/compat/json/CompatJsonUtils$1::hasNext → KILLED
        return iEntries.hasNext();
539
      }
540
541
      public String next() {
542 1 1. next : replaced return value with "" for com/github/dakusui/symfonion/compat/json/CompatJsonUtils$1::next → KILLED
        return iEntries.next().getKey();
543
      }
544
545
      public void remove() {
546 1 1. remove : removed call to java/util/Iterator::remove → NO_COVERAGE
        iEntries.remove();
547
      }
548
    };
549
  }
550
551
  public static String formatPath(Object... relPath) {
552
    StringBuilder ret = new StringBuilder();
553
    for (Object obj : relPath) {
554 1 1. formatPath : negated conditional → KILLED
      if (!ret.isEmpty())
555
        ret.append("/");
556
      ret.append(obj);
557
    }
558 1 1. formatPath : replaced return value with "" for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::formatPath → KILLED
    return ret.toString();
559
  }
560
561
  public static JsonObject merge(JsonObject left, JsonObject right) throws JsonInvalidPathException {
562 1 1. merge : replaced return value with null for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::merge → KILLED
    return merge(left, right, new LinkedList<>());
563
  }
564
565
  public static JsonObject merge(JsonObject left, JsonObject right, List<Object> relPath) throws JsonInvalidPathException {
566
    JsonObject ret = new JsonObject();
567
    for (Entry<String, JsonElement> each : left.entrySet()) {
568 1 1. merge : negated conditional → KILLED
      if (right.has(each.getKey())) {
569 2 1. merge : negated conditional → KILLED
2. merge : negated conditional → KILLED
        if (each.getValue().isJsonObject() && right.get(each.getKey()).isJsonObject()) {
570 1 1. merge : removed call to com/google/gson/JsonObject::add → KILLED
          ret.add(
571
              each.getKey(),
572
              merge(each.getValue().getAsJsonObject(), right.get(each.getKey()).getAsJsonObject())
573
                 );
574
        } else {
575
          throw new JsonInvalidPathException(right, relPath.toArray());
576
        }
577
      } else {
578 1 1. merge : removed call to com/google/gson/JsonObject::add → KILLED
        ret.add(each.getKey(), each.getValue());
579
      }
580
    }
581
    for (Entry<String, JsonElement> each : right.entrySet()) {
582 1 1. merge : negated conditional → KILLED
      if (!ret.has(each.getKey())) {
583 1 1. merge : removed call to com/google/gson/JsonObject::add → KILLED
        ret.add(each.getKey(), each.getValue());
584
      }
585
    }
586 1 1. merge : replaced return value with null for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::merge → KILLED
    return ret;
587
  }
588
}

Mutations

15

1.1
Location : summarizeJsonElement
Killed by : com.github.dakusui.symfonion.tests.InvalidJsonErrorTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.InvalidJsonErrorTest]/[method:invalid_01()]
negated conditional → KILLED

2.2
Location : summarizeJsonElement
Killed by : com.github.dakusui.symfonion.tests.InvalidJsonErrorTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.InvalidJsonErrorTest]/[method:invalid_01()]
negated conditional → KILLED

16

1.1
Location : summarizeJsonElement
Killed by : none
replaced return value with "" for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::summarizeJsonElement → NO_COVERAGE

20

1.1
Location : summarizeJsonElement
Killed by : com.github.dakusui.symfonion.tests.InvalidJsonErrorTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.InvalidJsonErrorTest]/[method:invalid_01()]
negated conditional → KILLED

21

1.1
Location : summarizeJsonElement
Killed by : com.github.dakusui.symfonion.tests.InvalidDataErrorTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.InvalidDataErrorTest]/[method:illegalFraction()]
replaced return value with "" for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::summarizeJsonElement → KILLED

23

1.1
Location : summarizeJsonElement
Killed by : com.github.dakusui.symfonion.tests.InvalidJsonErrorTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.InvalidJsonErrorTest]/[method:invalid_01()]
negated conditional → KILLED

24

1.1
Location : summarizeJsonElement
Killed by : none
replaced return value with "" for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::summarizeJsonElement → NO_COVERAGE

26

1.1
Location : summarizeJsonElement
Killed by : com.github.dakusui.symfonion.tests.InvalidJsonErrorTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.InvalidJsonErrorTest]/[method:invalid_01()]
negated conditional → KILLED

27

1.1
Location : summarizeJsonElement
Killed by : com.github.dakusui.symfonion.tests.InvalidJsonErrorTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.InvalidJsonErrorTest]/[method:invalid_01()]
replaced return value with "" for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::summarizeJsonElement → KILLED

29

1.1
Location : summarizeJsonElement
Killed by : none
replaced return value with "" for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::summarizeJsonElement → NO_COVERAGE

40

1.1
Location : findPathStringOf
Killed by : com.github.dakusui.symfonion.tests.InvalidJsonErrorTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.InvalidJsonErrorTest]/[method:invalid_01()]
replaced return value with "" for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::findPathStringOf → KILLED

44

1.1
Location : findPathOf
Killed by : com.github.dakusui.symfonion.tests.InvalidDataErrorTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.InvalidDataErrorTest]/[method:illegalFraction()]
replaced return value with Collections.emptyList for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::findPathOf → KILLED

53

1.1
Location : createSummaryJsonObjectFromPaths
Killed by : none
replaced return value with null for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::createSummaryJsonObjectFromPaths → SURVIVED
Covering tests

57

1.1
Location : createSummaryJsonElementFromPath
Killed by : com.github.dakusui.symfonion.tests.json.JsonSummarizerTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.JsonSummarizerTest]/[method:whenCreateSummaryJsonObjectFromPaths_thenSummaryCreated()]
replaced return value with null for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::createSummaryJsonElementFromPath → KILLED

2.2
Location : createSummaryJsonElementFromPath
Killed by : com.github.dakusui.symfonion.tests.InvalidJsonErrorTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.InvalidJsonErrorTest]/[method:invalid_01()]
negated conditional → KILLED

59

1.1
Location : createSummaryJsonElementFromPath
Killed by : none
negated conditional → SURVIVED
Covering tests

61

1.1
Location : createSummaryJsonElementFromPath
Killed by : com.github.dakusui.symfonion.tests.json.JsonSummarizerTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.JsonSummarizerTest]/[method:whenCreateSummaryJsonObjectFromPaths_thenSummaryCreated()]
Replaced integer subtraction with addition → KILLED

68

1.1
Location : summaryTopLevelElement
Killed by : none
removed call to com/google/gson/JsonObject::add → SURVIVED
Covering tests

69

1.1
Location : summaryTopLevelElement
Killed by : com.github.dakusui.symfonion.tests.ReferenceErrorTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.ReferenceErrorTest]/[method:missingNoteMap()]
replaced return value with null for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::summaryTopLevelElement → KILLED

73

1.1
Location : requireJsonObject
Killed by : com.github.dakusui.symfonion.tests.json.JsonSummarizerTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.JsonSummarizerTest]/[method:whenCreateSummaryJsonObjectFromPaths_thenSummaryCreated()]
negated conditional → KILLED

75

1.1
Location : requireJsonObject
Killed by : com.github.dakusui.symfonion.tests.json.JsonSummarizerTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.JsonSummarizerTest]/[method:whenCreateSummaryJsonObjectFromPaths_thenSummaryCreated()]
replaced return value with null for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::requireJsonObject → KILLED

82

1.1
Location : _validate
Killed by : com.github.dakusui.symfonion.tests.json.JsonUtilTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.JsonUtilTest]/[method:obj_N03c()]
negated conditional → KILLED

85

1.1
Location : _validate
Killed by : com.github.dakusui.symfonion.tests.json.JsonUtilTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.JsonUtilTest]/[method:obj_N03c()]
replaced return value with null for com/github/dakusui/symfonion/compat/json/CompatJsonUtils$JsonTypes$1::_validate → KILLED

91

1.1
Location : _validate
Killed by : com.github.dakusui.symfonion.tests.json.JsonSummarizerTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.JsonSummarizerTest]/[method:whenSummaryArray_thenItLooksNice()]
negated conditional → KILLED

94

1.1
Location : _validate
Killed by : com.github.dakusui.symfonion.tests.json.JsonSummarizerTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.JsonSummarizerTest]/[method:whenSummaryArray_thenItLooksNice()]
replaced return value with null for com/github/dakusui/symfonion/compat/json/CompatJsonUtils$JsonTypes$2::_validate → KILLED

102

1.1
Location : _validate
Killed by : com.github.dakusui.symfonion.tests.json.JsonUtilTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.JsonUtilTest]/[method:obj_N01a()]
negated conditional → KILLED

105

1.1
Location : _validate
Killed by : com.github.dakusui.symfonion.tests.json.JsonUtilTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.JsonUtilTest]/[method:obj_N01a()]
replaced return value with null for com/github/dakusui/symfonion/compat/json/CompatJsonUtils$JsonTypes$3::_validate → KILLED

111

1.1
Location : _validate
Killed by : none
negated conditional → NO_COVERAGE

114

1.1
Location : _validate
Killed by : none
replaced return value with null for com/github/dakusui/symfonion/compat/json/CompatJsonUtils$JsonTypes$4::_validate → NO_COVERAGE

122

1.1
Location : validate
Killed by : com.github.dakusui.symfonion.tests.json.JsonUtilTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.JsonUtilTest]/[method:obj_N03c()]
negated conditional → KILLED

125

1.1
Location : validate
Killed by : com.github.dakusui.symfonion.tests.json.JsonUtilTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.JsonUtilTest]/[method:obj_N03c()]
replaced return value with null for com/github/dakusui/symfonion/compat/json/CompatJsonUtils$JsonTypes::validate → KILLED

136

1.1
Location : asJsonElementWithDefault
Killed by : com.github.dakusui.symfonion.tests.json.JsonUtilTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.JsonUtilTest]/[method:obj_N03a()]
negated conditional → KILLED

2.2
Location : asJsonElementWithDefault
Killed by : com.github.dakusui.symfonion.tests.json.JsonUtilTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.JsonUtilTest]/[method:obj_N03a()]
negated conditional → KILLED

139

1.1
Location : asJsonElementWithDefault
Killed by : com.github.dakusui.symfonion.tests.json.JsonUtilTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.JsonUtilTest]/[method:obj_N03c()]
replaced return value with null for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::asJsonElementWithDefault → KILLED

144

1.1
Location : asJsonElement
Killed by : com.github.dakusui.symfonion.tests.json.JsonUtilTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.JsonUtilTest]/[method:obj_N01a()]
negated conditional → KILLED

147

1.1
Location : asJsonElement
Killed by : com.github.dakusui.symfonion.tests.json.JsonUtilTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.JsonUtilTest]/[method:obj_N01a()]
replaced return value with null for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::asJsonElement → KILLED

155

1.1
Location : _asJsonElement
Killed by : com.github.dakusui.symfonion.tests.json.JsonUtilTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.JsonUtilTest]/[method:obj_N03c()]
negated conditional → KILLED

2.2
Location : _asJsonElement
Killed by : com.github.dakusui.symfonion.tests.json.JsonUtilTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.JsonUtilTest]/[method:obj_N03c()]
negated conditional → KILLED

156

1.1
Location : _asJsonElement
Killed by : com.github.dakusui.symfonion.tests.json.JsonUtilTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.JsonUtilTest]/[method:obj_N01a()]
replaced return value with null for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::_asJsonElement → KILLED

159

1.1
Location : _asJsonElement
Killed by : com.github.dakusui.symfonion.tests.json.JsonUtilTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.JsonUtilTest]/[method:obj_N03c()]
negated conditional → KILLED

162

1.1
Location : _asJsonElement
Killed by : com.github.dakusui.symfonion.tests.json.JsonUtilTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.JsonUtilTest]/[method:obj_N01a()]
negated conditional → KILLED

165

1.1
Location : _asJsonElement
Killed by : com.github.dakusui.symfonion.tests.json.JsonUtilTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.JsonUtilTest]/[method:obj_N03a()]
negated conditional → KILLED

167

1.1
Location : _asJsonElement
Killed by : com.github.dakusui.symfonion.tests.json.JsonUtilTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.JsonUtilTest]/[method:obj_N01e()]
negated conditional → KILLED

2.2
Location : _asJsonElement
Killed by : com.github.dakusui.symfonion.tests.json.JsonUtilTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.JsonUtilTest]/[method:obj_N01e()]
negated conditional → KILLED

3.3
Location : _asJsonElement
Killed by : com.github.dakusui.symfonion.tests.json.JsonUtilTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.JsonUtilTest]/[method:obj_N01e()]
negated conditional → KILLED

172

1.1
Location : _asJsonElement
Killed by : com.github.dakusui.symfonion.tests.json.JsonUtilTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.JsonUtilTest]/[method:obj_N01e()]
negated conditional → KILLED

176

1.1
Location : _asJsonElement
Killed by : com.github.dakusui.symfonion.tests.json.JsonUtilTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.JsonUtilTest]/[method:arr_N01()]
changed conditional boundary → KILLED

2.2
Location : _asJsonElement
Killed by : com.github.dakusui.symfonion.tests.json.JsonUtilTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.JsonUtilTest]/[method:obj_N03a()]
negated conditional → KILLED

3.3
Location : _asJsonElement
Killed by : none
changed conditional boundary → SURVIVED
Covering tests

4.4
Location : _asJsonElement
Killed by : com.github.dakusui.symfonion.tests.json.JsonUtilTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.JsonUtilTest]/[method:obj_N03a()]
negated conditional → KILLED

180

1.1
Location : _asJsonElement
Killed by : none
negated conditional → NO_COVERAGE

188

1.1
Location : _asJsonElement
Killed by : com.github.dakusui.symfonion.tests.json.JsonUtilTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.JsonUtilTest]/[method:obj_N01a()]
Replaced integer addition with subtraction → KILLED

190

1.1
Location : _asJsonElement
Killed by : com.github.dakusui.symfonion.tests.json.JsonUtilTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.JsonUtilTest]/[method:obj_N03b()]
negated conditional → KILLED

191

1.1
Location : _asJsonElement
Killed by : none
negated conditional → SURVIVED
Covering tests

192

1.1
Location : _asJsonElement
Killed by : none
replaced return value with null for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::_asJsonElement → SURVIVED
Covering tests

195

1.1
Location : _asJsonElement
Killed by : com.github.dakusui.symfonion.tests.json.JsonUtilTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.JsonUtilTest]/[method:obj_N01a()]
replaced return value with null for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::_asJsonElement → KILLED

199

1.1
Location : pathArray
Killed by : com.github.dakusui.symfonion.tests.json.JsonUtilTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.JsonUtilTest]/[method:obj_E01d()]
Replaced integer addition with subtraction → KILLED

200

1.1
Location : pathArray
Killed by : com.github.dakusui.symfonion.tests.json.JsonUtilTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.JsonUtilTest]/[method:obj_E01d()]
removed call to java/lang/System::arraycopy → KILLED

2.2
Location : pathArray
Killed by : com.github.dakusui.symfonion.tests.json.JsonUtilTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.JsonUtilTest]/[method:obj_E01d()]
Replaced integer addition with subtraction → KILLED

201

1.1
Location : pathArray
Killed by : com.github.dakusui.symfonion.tests.json.JsonUtilTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.JsonUtilTest]/[method:obj_E01d()]
replaced return value with null for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::pathArray → KILLED

212

1.1
Location : parseInt
Killed by : com.github.dakusui.symfonion.tests.json.JsonUtilTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.JsonUtilTest]/[method:obj_N01e()]
replaced Integer return value with 0 for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::parseInt → KILLED

217

1.1
Location : hasPath
Killed by : com.github.dakusui.symfonion.tests.MidiCompilerTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.MidiCompilerTest]/[test-template:exercise(com.github.dakusui.symfonion.testutils.SymfonionTestCase)]/[test-template-invocation:#2]
negated conditional → KILLED

2.2
Location : hasPath
Killed by : com.github.dakusui.symfonion.tests.MidiCompilerTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.MidiCompilerTest]/[test-template:exercise(com.github.dakusui.symfonion.testutils.SymfonionTestCase)]/[test-template-invocation:#2]
replaced boolean return with true for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::hasPath → KILLED

219

1.1
Location : hasPath
Killed by : none
replaced boolean return with true for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::hasPath → NO_COVERAGE

227

1.1
Location : asJsonObjectWithDefault
Killed by : com.github.dakusui.symfonion.tests.json.JsonUtilTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.JsonUtilTest]/[method:obj_N03c()]
replaced return value with null for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::asJsonObjectWithDefault → KILLED

233

1.1
Location : asJsonObject
Killed by : com.github.dakusui.symfonion.tests.json.JsonUtilTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.JsonUtilTest]/[method:obj_N03a()]
replaced return value with null for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::asJsonObject → KILLED

242

1.1
Location : asJsonObjectWithPromotion
Killed by : com.github.dakusui.symfonion.tests.MidiCompilerTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.MidiCompilerTest]/[test-template:exercise(com.github.dakusui.symfonion.testutils.SymfonionTestCase)]/[test-template-invocation:#4]
negated conditional → KILLED

249

1.1
Location : asJsonObjectWithPromotion
Killed by : com.github.dakusui.symfonion.tests.MidiCompilerTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.MidiCompilerTest]/[test-template:exercise(com.github.dakusui.symfonion.testutils.SymfonionTestCase)]/[test-template-invocation:#13]
negated conditional → KILLED

2.2
Location : asJsonObjectWithPromotion
Killed by : none
changed conditional boundary → SURVIVED
Covering tests

250

1.1
Location : asJsonObjectWithPromotion
Killed by : none
negated conditional → NO_COVERAGE

263

1.1
Location : asJsonObjectWithPromotion
Killed by : com.github.dakusui.symfonion.tests.MidiCompilerTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.MidiCompilerTest]/[test-template:exercise(com.github.dakusui.symfonion.testutils.SymfonionTestCase)]/[test-template-invocation:#13]
removed call to com/google/gson/JsonObject::add → KILLED

264

1.1
Location : asJsonObjectWithPromotion
Killed by : none
Changed increment from 1 to -1 → SURVIVED
Covering tests

267

1.1
Location : asJsonObjectWithPromotion
Killed by : com.github.dakusui.symfonion.tests.MidiCompilerTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.MidiCompilerTest]/[test-template:exercise(com.github.dakusui.symfonion.testutils.SymfonionTestCase)]/[test-template-invocation:#4]
replaced return value with null for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::asJsonObjectWithPromotion → KILLED

275

1.1
Location : asJsonArrayWithPromotion
Killed by : com.github.dakusui.symfonion.tests.MidiCompilerTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.MidiCompilerTest]/[test-template:exercise(com.github.dakusui.symfonion.testutils.SymfonionTestCase)]/[test-template-invocation:#13]
negated conditional → KILLED

279

1.1
Location : asJsonArrayWithPromotion
Killed by : com.github.dakusui.symfonion.tests.MidiCompilerTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.MidiCompilerTest]/[test-template:exercise(com.github.dakusui.symfonion.testutils.SymfonionTestCase)]/[test-template-invocation:#13]
negated conditional → KILLED

283

1.1
Location : asJsonArrayWithPromotion
Killed by : com.github.dakusui.symfonion.tests.MidiCompilerTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.MidiCompilerTest]/[test-template:exercise(com.github.dakusui.symfonion.testutils.SymfonionTestCase)]/[test-template-invocation:#13]
removed call to com/google/gson/JsonArray::add → KILLED

285

1.1
Location : asJsonArrayWithPromotion
Killed by : com.github.dakusui.symfonion.tests.MidiCompilerTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.MidiCompilerTest]/[test-template:exercise(com.github.dakusui.symfonion.testutils.SymfonionTestCase)]/[test-template-invocation:#13]
replaced return value with null for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::asJsonArrayWithPromotion → KILLED

290

1.1
Location : asJsonArray
Killed by : com.github.dakusui.symfonion.tests.json.JsonSummarizerTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.JsonSummarizerTest]/[method:whenSummaryArray_thenItLooksNice()]
replaced return value with null for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::asJsonArray → KILLED

297

1.1
Location : asJsonArrayWithDefault
Killed by : com.github.dakusui.symfonion.tests.json.JsonSummarizerTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.JsonSummarizerTest]/[method:whenSummaryArray_thenItLooksNice()]
replaced return value with null for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::asJsonArrayWithDefault → KILLED

306

1.1
Location : asJsonElementWithDefault
Killed by : com.github.dakusui.symfonion.tests.json.JsonUtilTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.JsonUtilTest]/[method:obj_N03c()]
replaced return value with null for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::asJsonElementWithDefault → KILLED

310

1.1
Location : asJsonElement
Killed by : com.github.dakusui.symfonion.tests.json.JsonUtilTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.JsonUtilTest]/[method:obj_N01a()]
replaced return value with null for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::asJsonElement → KILLED

315

1.1
Location : asString
Killed by : com.github.dakusui.symfonion.tests.json.JsonUtilTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.JsonUtilTest]/[method:obj_N01a()]
negated conditional → KILLED

316

1.1
Location : asString
Killed by : none
replaced return value with "" for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::asString → NO_COVERAGE

318

1.1
Location : asString
Killed by : com.github.dakusui.symfonion.tests.json.JsonUtilTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.JsonUtilTest]/[method:obj_N01a()]
replaced return value with "" for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::asString → KILLED

326

1.1
Location : asStringWithDefault
Killed by : com.github.dakusui.symfonion.tests.json.JsonUtilTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.JsonUtilTest]/[method:whenAsStringWithDefault_onNonExistingPath_thenFallbackToDefault()]
negated conditional → KILLED

330

1.1
Location : asStringWithDefault
Killed by : com.github.dakusui.symfonion.tests.json.JsonUtilTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.JsonUtilTest]/[method:whenAsStringWithDefault_onNonExistingPath_thenFallbackToDefault()]
negated conditional → KILLED

331

1.1
Location : asStringWithDefault
Killed by : none
replaced return value with "" for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::asStringWithDefault → SURVIVED
Covering tests

333

1.1
Location : asStringWithDefault
Killed by : com.github.dakusui.symfonion.tests.json.JsonUtilTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.JsonUtilTest]/[method:whenAsStringWithDefault_onNonExistingPath_thenFallbackToDefault()]
replaced return value with "" for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::asStringWithDefault → KILLED

340

1.1
Location : asInt
Killed by : com.github.dakusui.symfonion.tests.json.JsonUtilTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.JsonUtilTest]/[method:obj_N02()]
replaced int return with 0 for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::asInt → KILLED

351

1.1
Location : asIntWithDefault
Killed by : none
replaced int return with 0 for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::asIntWithDefault → SURVIVED
Covering tests

361

1.1
Location : asLong
Killed by : com.github.dakusui.symfonion.tests.MidiCompilerTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.MidiCompilerTest]/[test-template:exercise(com.github.dakusui.symfonion.testutils.SymfonionTestCase)]/[test-template-invocation:#8]
replaced long return with 0 for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::asLong → KILLED

374

1.1
Location : asLongWithDefault
Killed by : none
replaced long return with 0 for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::asLongWithDefault → NO_COVERAGE

385

1.1
Location : asFloat
Killed by : none
replaced float return with 0.0f for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::asFloat → NO_COVERAGE

397

1.1
Location : asFloatWithDefault
Killed by : none
replaced float return with 0.0f for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::asFloatWithDefault → NO_COVERAGE

405

1.1
Location : asDouble
Killed by : com.github.dakusui.symfonion.tests.MidiCompilerTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.MidiCompilerTest]/[test-template:exercise(com.github.dakusui.symfonion.testutils.SymfonionTestCase)]/[test-template-invocation:#8]
replaced double return with 0.0d for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::asDouble → KILLED

417

1.1
Location : asDoubleWithDefault
Killed by : com.github.dakusui.symfonion.tests.MidiCompilerTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.MidiCompilerTest]/[test-template:exercise(com.github.dakusui.symfonion.testutils.SymfonionTestCase)]/[test-template-invocation:#7]
replaced double return with 0.0d for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::asDoubleWithDefault → KILLED

453

1.1
Location : buildPathInfo
Killed by : com.github.dakusui.symfonion.tests.InvalidDataErrorTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.InvalidDataErrorTest]/[method:illegalFraction()]
removed call to com/github/dakusui/symfonion/compat/json/CompatJsonUtils::buildPathInfo → KILLED

454

1.1
Location : buildPathInfo
Killed by : com.github.dakusui.symfonion.tests.InvalidJsonErrorTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.InvalidJsonErrorTest]/[method:invalid_01()]
replaced return value with Collections.emptyMap for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::buildPathInfo → KILLED

458

1.1
Location : buildPathInfo
Killed by : com.github.dakusui.symfonion.tests.InvalidDataErrorTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.InvalidDataErrorTest]/[method:illegalFraction()]
negated conditional → KILLED

459

1.1
Location : buildPathInfo
Killed by : com.github.dakusui.symfonion.tests.InvalidJsonErrorTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.InvalidJsonErrorTest]/[method:missingSection_sequence()]
negated conditional → KILLED

460

1.1
Location : buildPathInfo
Killed by : com.github.dakusui.symfonion.tests.InvalidDataErrorTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.InvalidDataErrorTest]/[method:illegalFraction()]
removed call to com/github/dakusui/symfonion/compat/json/CompatJsonUtils::buildPathInfo → KILLED

461

1.1
Location : buildPathInfo
Killed by : com.github.dakusui.symfonion.tests.InvalidDataErrorTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.InvalidDataErrorTest]/[method:illegalFraction()]
negated conditional → KILLED

462

1.1
Location : buildPathInfo
Killed by : com.github.dakusui.symfonion.tests.InvalidDataErrorTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.InvalidDataErrorTest]/[method:illegalFraction()]
removed call to com/github/dakusui/symfonion/compat/json/CompatJsonUtils::buildPathInfo → KILLED

470

1.1
Location : buildPathInfo
Killed by : com.github.dakusui.symfonion.tests.InvalidDataErrorTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.InvalidDataErrorTest]/[method:illegalFraction()]
negated conditional → KILLED

2.2
Location : buildPathInfo
Killed by : com.github.dakusui.symfonion.tests.InvalidJsonErrorTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.InvalidJsonErrorTest]/[method:missingSection_sequence()]
changed conditional boundary → KILLED

472

1.1
Location : buildPathInfo
Killed by : com.github.dakusui.symfonion.tests.InvalidDataErrorTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.InvalidDataErrorTest]/[method:illegalFraction()]
removed call to com/github/dakusui/symfonion/compat/json/CompatJsonUtils::buildPathInfo → KILLED

482

1.1
Location : buildPathInfo
Killed by : com.github.dakusui.symfonion.tests.InvalidDataErrorTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.InvalidDataErrorTest]/[method:illegalFraction()]
removed call to com/github/dakusui/symfonion/compat/json/CompatJsonUtils::buildPathInfo → KILLED

490

1.1
Location : jsonpathToString
Killed by : com.github.dakusui.symfonion.tests.InvalidDataErrorTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.InvalidDataErrorTest]/[method:illegalFraction()]
negated conditional → KILLED

496

1.1
Location : jsonpathToString
Killed by : com.github.dakusui.symfonion.tests.InvalidJsonErrorTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.InvalidJsonErrorTest]/[method:invalid_01()]
negated conditional → KILLED

498

1.1
Location : jsonpathToString
Killed by : com.github.dakusui.symfonion.tests.InvalidJsonErrorTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.InvalidJsonErrorTest]/[method:invalid_01()]
replaced return value with "" for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::jsonpathToString → KILLED

502

1.1
Location : quoteIfNonAlphanumericalIsContained
Killed by : com.github.dakusui.symfonion.tests.InvalidDataErrorTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.InvalidDataErrorTest]/[method:illegalNoteLength_01()]
negated conditional → KILLED

503

1.1
Location : quoteIfNonAlphanumericalIsContained
Killed by : com.github.dakusui.symfonion.tests.InvalidDataErrorTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.InvalidDataErrorTest]/[method:illegalFraction()]
negated conditional → KILLED

2.2
Location : quoteIfNonAlphanumericalIsContained
Killed by : com.github.dakusui.symfonion.tests.InvalidDataErrorTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.InvalidDataErrorTest]/[method:illegalFraction()]
replaced return value with "" for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::quoteIfNonAlphanumericalIsContained → KILLED

505

1.1
Location : quoteIfNonAlphanumericalIsContained
Killed by : none
replaced return value with "" for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::quoteIfNonAlphanumericalIsContained → NO_COVERAGE

518

1.1
Location : escape
Killed by : com.github.dakusui.symfonion.tests.InvalidDataErrorTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.InvalidDataErrorTest]/[method:illegalNoteLength_01()]
replaced return value with "" for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::escape → KILLED

529

1.1
Location : toJson
Killed by : com.github.dakusui.symfonion.tests.MalformedTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.MalformedTest]/[method:givenMalformed_emptyFile()]
replaced return value with null for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::toJson → KILLED

533

1.1
Location : keyIterator
Killed by : com.github.dakusui.symfonion.tests.MidiCompilerTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.MidiCompilerTest]/[test-template:exercise(com.github.dakusui.symfonion.testutils.SymfonionTestCase)]/[test-template-invocation:#2]
replaced return value with null for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::keyIterator → KILLED

538

1.1
Location : hasNext
Killed by : com.github.dakusui.symfonion.tests.MidiCompilerTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.MidiCompilerTest]/[test-template:exercise(com.github.dakusui.symfonion.testutils.SymfonionTestCase)]/[test-template-invocation:#2]
replaced boolean return with true for com/github/dakusui/symfonion/compat/json/CompatJsonUtils$1::hasNext → KILLED

2.2
Location : hasNext
Killed by : com.github.dakusui.symfonion.tests.MidiCompilerTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.MidiCompilerTest]/[test-template:exercise(com.github.dakusui.symfonion.testutils.SymfonionTestCase)]/[test-template-invocation:#3]
replaced boolean return with false for com/github/dakusui/symfonion/compat/json/CompatJsonUtils$1::hasNext → KILLED

542

1.1
Location : next
Killed by : com.github.dakusui.symfonion.tests.MidiCompilerTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.MidiCompilerTest]/[test-template:exercise(com.github.dakusui.symfonion.testutils.SymfonionTestCase)]/[test-template-invocation:#3]
replaced return value with "" for com/github/dakusui/symfonion/compat/json/CompatJsonUtils$1::next → KILLED

546

1.1
Location : remove
Killed by : none
removed call to java/util/Iterator::remove → NO_COVERAGE

554

1.1
Location : formatPath
Killed by : com.github.dakusui.symfonion.tests.InvalidJsonErrorTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.InvalidJsonErrorTest]/[method:invalid_01()]
negated conditional → KILLED

558

1.1
Location : formatPath
Killed by : com.github.dakusui.symfonion.tests.InvalidJsonErrorTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.InvalidJsonErrorTest]/[method:invalid_01()]
replaced return value with "" for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::formatPath → KILLED

562

1.1
Location : merge
Killed by : com.github.dakusui.symfonion.tests.json.CompatJsonUtilsTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.CompatJsonUtilsTest]/[method:givenEmptyObjects_whenMerge_thenEmpty()]
replaced return value with null for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::merge → KILLED

568

1.1
Location : merge
Killed by : com.github.dakusui.symfonion.tests.json.CompatJsonUtilsTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.CompatJsonUtilsTest]/[method:givenSingleEntryAndEmptyObjects_whenMerge_thenSingleEntry()]
negated conditional → KILLED

569

1.1
Location : merge
Killed by : com.github.dakusui.symfonion.tests.json.CompatJsonUtilsTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.CompatJsonUtilsTest]/[method:givenTwoNestedEntryObjects_whenMerge_thenMergesTwoEntries()]
negated conditional → KILLED

2.2
Location : merge
Killed by : com.github.dakusui.symfonion.tests.json.CompatJsonUtilsTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.CompatJsonUtilsTest]/[method:givenTwoNestedEntryObjects_whenMerge_thenMergesTwoEntries()]
negated conditional → KILLED

570

1.1
Location : merge
Killed by : com.github.dakusui.symfonion.tests.json.CompatJsonUtilsTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.CompatJsonUtilsTest]/[method:givenTwoNestedEntryObjects_whenMerge_thenMergesTwoEntries()]
removed call to com/google/gson/JsonObject::add → KILLED

578

1.1
Location : merge
Killed by : com.github.dakusui.symfonion.tests.json.CompatJsonUtilsTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.CompatJsonUtilsTest]/[method:givenSingleEntryAndEmptyObjects_whenMerge_thenSingleEntry()]
removed call to com/google/gson/JsonObject::add → KILLED

582

1.1
Location : merge
Killed by : com.github.dakusui.symfonion.tests.json.CompatJsonUtilsTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.CompatJsonUtilsTest]/[method:givenEmptyAndSingleEntryObjects_whenMerge_thenSingleEntry()]
negated conditional → KILLED

583

1.1
Location : merge
Killed by : com.github.dakusui.symfonion.tests.json.CompatJsonUtilsTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.CompatJsonUtilsTest]/[method:givenEmptyAndSingleEntryObjects_whenMerge_thenSingleEntry()]
removed call to com/google/gson/JsonObject::add → KILLED

586

1.1
Location : merge
Killed by : com.github.dakusui.symfonion.tests.json.CompatJsonUtilsTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.json.CompatJsonUtilsTest]/[method:givenEmptyObjects_whenMerge_thenEmpty()]
replaced return value with null for com/github/dakusui/symfonion/compat/json/CompatJsonUtils::merge → KILLED

Active mutators

Tests examined


Report generated by PIT 1.19.1