AsciiDocParser.java

1
package pro.verron.officestamper.asciidoc;
2
3
import java.util.ArrayList;
4
import java.util.List;
5
import java.util.Map;
6
import java.util.function.Function;
7
8
import static pro.verron.officestamper.asciidoc.AsciiDocModel.*;
9
10
public final class AsciiDocParser
11
        implements Function<String, AsciiDocModel> {
12
13
    public static AsciiDocModel parse(String asciidoc) {
14 1 1. parse : replaced return value with null for pro/verron/officestamper/asciidoc/AsciiDocParser::parse → KILLED
        return new AsciiDocParser().apply(asciidoc);
15
    }
16
17
    public AsciiDocModel apply(String asciidoc) {
18
        var blocks = new ArrayList<Block>();
19 2 1. apply : negated conditional → KILLED
2. apply : negated conditional → KILLED
        if (asciidoc == null || asciidoc.isBlank()) {
20 1 1. apply : replaced return value with null for pro/verron/officestamper/asciidoc/AsciiDocParser::apply → KILLED
            return AsciiDocModel.of(blocks);
21
        }
22
23
        String[] lines = asciidoc.split("\r?\n");
24
        StringBuilder currentParagraph = new StringBuilder();
25
        boolean inTable = false;
26
        boolean inBlockquote = false;
27
        boolean inCodeBlock = false;
28
        String currentLanguage = "";
29
        List<Row> currentTableRows = new ArrayList<>();
30
        StringBuilder currentBlockContent = new StringBuilder();
31
32
        for (String line : lines) {
33
            String trimmed = line.trim();
34
35 1 1. apply : negated conditional → KILLED
            if (trimmed.equals("____")) {
36 1 1. apply : negated conditional → KILLED
                if (inBlockquote) {
37
                    blocks.add(new Blockquote(parseInlines(currentBlockContent.toString()
38
                                                                              .trim())));
39 1 1. apply : removed call to java/lang/StringBuilder::setLength → SURVIVED
                    currentBlockContent.setLength(0);
40
                    inBlockquote = false;
41
                }
42
                else {
43 1 1. apply : negated conditional → KILLED
                    if (!currentParagraph.isEmpty()) {
44
                        blocks.add(new Paragraph(parseInlines(currentParagraph.toString()
45
                                                                              .trim())));
46 1 1. apply : removed call to java/lang/StringBuilder::setLength → NO_COVERAGE
                        currentParagraph.setLength(0);
47
                    }
48
                    inBlockquote = true;
49
                }
50
                continue;
51
            }
52
53 1 1. apply : negated conditional → KILLED
            if (inBlockquote) {
54 1 1. apply : negated conditional → SURVIVED
                if (!currentBlockContent.isEmpty()) {
55
                    currentBlockContent.append(" ");
56
                }
57
                currentBlockContent.append(trimmed);
58
                continue;
59
            }
60
61 1 1. apply : negated conditional → KILLED
            if (trimmed.startsWith("[source")) {
62
                int commaIndex = trimmed.indexOf(',');
63 1 1. apply : negated conditional → KILLED
                if (commaIndex != -1) {
64
                    int bracketIndex = trimmed.indexOf(']');
65 1 1. apply : Replaced integer addition with subtraction → KILLED
                    currentLanguage = trimmed.substring(commaIndex + 1, bracketIndex)
66
                                             .trim();
67
                }
68
                continue;
69
            }
70
71 1 1. apply : negated conditional → KILLED
            if (trimmed.equals("----")) {
72 1 1. apply : negated conditional → KILLED
                if (inCodeBlock) {
73
                    blocks.add(new CodeBlock(currentLanguage,
74
                            currentBlockContent.toString()
75
                                               .trim()));
76 1 1. apply : removed call to java/lang/StringBuilder::setLength → SURVIVED
                    currentBlockContent.setLength(0);
77
                    currentLanguage = "";
78
                    inCodeBlock = false;
79
                }
80
                else {
81 1 1. apply : negated conditional → KILLED
                    if (!currentParagraph.isEmpty()) {
82
                        blocks.add(new Paragraph(parseInlines(currentParagraph.toString()
83
                                                                              .trim())));
84 1 1. apply : removed call to java/lang/StringBuilder::setLength → NO_COVERAGE
                        currentParagraph.setLength(0);
85
                    }
86
                    inCodeBlock = true;
87
                }
88
                continue;
89
            }
90
91 1 1. apply : negated conditional → KILLED
            if (inCodeBlock) {
92 1 1. apply : negated conditional → SURVIVED
                if (!currentBlockContent.isEmpty()) {
93
                    currentBlockContent.append("\n");
94
                }
95
                currentBlockContent.append(line); // Preserve indentation in code blocks
96
                continue;
97
            }
98
99 1 1. apply : negated conditional → KILLED
            if (trimmed.startsWith("image::")) {
100 1 1. apply : negated conditional → KILLED
                if (!currentParagraph.isEmpty()) {
101
                    blocks.add(new Paragraph(parseInlines(currentParagraph.toString()
102
                                                                          .trim())));
103 1 1. apply : removed call to java/lang/StringBuilder::setLength → NO_COVERAGE
                    currentParagraph.setLength(0);
104
                }
105
                int endUrl = trimmed.indexOf('[', 7);
106 1 1. apply : negated conditional → KILLED
                if (endUrl != -1) {
107
                    int endText = trimmed.indexOf(']', endUrl);
108 1 1. apply : negated conditional → KILLED
                    if (endText != -1) {
109
                        String url = trimmed.substring(7, endUrl);
110 1 1. apply : Replaced integer addition with subtraction → KILLED
                        String altText = trimmed.substring(endUrl + 1, endText);
111
                        blocks.add(new ImageBlock(url, altText));
112
                        continue;
113
                    }
114
                }
115
            }
116
117 1 1. apply : negated conditional → KILLED
            if (trimmed.equals("|===")) {
118 1 1. apply : negated conditional → KILLED
                if (inTable) {
119
                    blocks.add(new Table(currentTableRows));
120
                    currentTableRows = new ArrayList<>();
121
                    inTable = false;
122
                }
123
                else {
124 1 1. apply : negated conditional → KILLED
                    if (!currentParagraph.isEmpty()) {
125
                        blocks.add(new Paragraph(parseInlines(currentParagraph.toString()
126
                                                                              .trim())));
127 1 1. apply : removed call to java/lang/StringBuilder::setLength → NO_COVERAGE
                        currentParagraph.setLength(0);
128
                    }
129
                    inTable = true;
130
                }
131
                continue;
132
            }
133
134 1 1. apply : negated conditional → KILLED
            if (inTable) {
135 1 1. apply : negated conditional → KILLED
                if (trimmed.startsWith("|")) {
136
                    String[] cellTexts = trimmed.substring(1)
137
                                                .split("\\|");
138
                    List<Cell> cells = new ArrayList<>();
139
                    for (String cellText : cellTexts) {
140
                        cells.add(Cell.ofInlines(parseInlines(cellText.trim())));
141
                    }
142
                    currentTableRows.add(new Row(cells));
143
                }
144
                continue;
145
            }
146
147 1 1. apply : negated conditional → KILLED
            if (trimmed.isBlank()) {
148 1 1. apply : negated conditional → KILLED
                if (!currentParagraph.isEmpty()) {
149
                    blocks.add(new Paragraph(parseInlines(currentParagraph.toString()
150
                                                                          .trim())));
151 1 1. apply : removed call to java/lang/StringBuilder::setLength → NO_COVERAGE
                    currentParagraph.setLength(0);
152
                }
153
                continue;
154
            }
155
156
            // Check for Headings
157 1 1. apply : negated conditional → KILLED
            if (trimmed.startsWith("=")) {
158
                int level = 0;
159 3 1. apply : changed conditional boundary → SURVIVED
2. apply : negated conditional → KILLED
3. apply : negated conditional → KILLED
                while (level < trimmed.length() && trimmed.charAt(level) == '=') {
160
                    level++;
161
                }
162 6 1. apply : changed conditional boundary → SURVIVED
2. apply : changed conditional boundary → SURVIVED
3. apply : changed conditional boundary → SURVIVED
4. apply : negated conditional → KILLED
5. apply : negated conditional → KILLED
6. apply : negated conditional → KILLED
                if (level > 0 && level <= 6 && level < trimmed.length()
163 1 1. apply : negated conditional → KILLED
                    && Character.isWhitespace(trimmed.charAt(level))) {
164 1 1. apply : negated conditional → KILLED
                    if (!currentParagraph.isEmpty()) {
165
                        blocks.add(new Paragraph(parseInlines(currentParagraph.toString()
166
                                                                              .trim())));
167 1 1. apply : removed call to java/lang/StringBuilder::setLength → NO_COVERAGE
                        currentParagraph.setLength(0);
168
                    }
169
                    String title = trimmed.substring(level)
170
                                          .trim();
171
                    blocks.add(new Heading(level, parseInlines(title)));
172
                    continue;
173
                }
174
            }
175
176
            // Check for Unordered List Item
177 1 1. apply : negated conditional → KILLED
            if (trimmed.startsWith("* ")) {
178 1 1. apply : negated conditional → KILLED
                if (!currentParagraph.isEmpty()) {
179
                    blocks.add(new Paragraph(parseInlines(currentParagraph.toString()
180
                                                                          .trim())));
181 1 1. apply : removed call to java/lang/StringBuilder::setLength → NO_COVERAGE
                    currentParagraph.setLength(0);
182
                }
183
                String itemText = trimmed.substring(2)
184
                                         .trim();
185
                var item = new ListItem(parseInlines(itemText));
186 2 1. apply : negated conditional → KILLED
2. apply : negated conditional → KILLED
                if (!blocks.isEmpty() && blocks.getLast() instanceof UnorderedList(List<ListItem> items1)) {
187
                    List<ListItem> items = new ArrayList<>(items1);
188
                    items.add(item);
189 1 1. apply : Replaced integer subtraction with addition → KILLED
                    blocks.set(blocks.size() - 1, new UnorderedList(items));
190
                }
191
                else {
192
                    blocks.add(new UnorderedList(List.of(item)));
193
                }
194
                continue;
195
            }
196
197
            // Check for Ordered List Item
198 1 1. apply : negated conditional → KILLED
            if (trimmed.startsWith(". ")) {
199 1 1. apply : negated conditional → KILLED
                if (!currentParagraph.isEmpty()) {
200
                    blocks.add(new Paragraph(parseInlines(currentParagraph.toString()
201
                                                                          .trim())));
202 1 1. apply : removed call to java/lang/StringBuilder::setLength → NO_COVERAGE
                    currentParagraph.setLength(0);
203
                }
204
                String itemText = trimmed.substring(2)
205
                                         .trim();
206
                var item = new ListItem(parseInlines(itemText));
207 2 1. apply : negated conditional → KILLED
2. apply : negated conditional → KILLED
                if (!blocks.isEmpty() && blocks.getLast() instanceof OrderedList(List<ListItem> items1)) {
208
                    List<ListItem> items = new ArrayList<>(items1);
209
                    items.add(item);
210 1 1. apply : Replaced integer subtraction with addition → KILLED
                    blocks.set(blocks.size() - 1, new OrderedList(items));
211
                }
212
                else {
213
                    blocks.add(new OrderedList(List.of(item)));
214
                }
215
                continue;
216
            }
217
218
            // Otherwise, it's a paragraph part
219 1 1. apply : negated conditional → SURVIVED
            if (!currentParagraph.isEmpty()) {
220
                currentParagraph.append("\n");
221
            }
222
            currentParagraph.append(trimmed);
223
        }
224
225 1 1. apply : negated conditional → KILLED
        if (!currentParagraph.isEmpty()) {
226
            blocks.add(new Paragraph(parseInlines(currentParagraph.toString()
227
                                                                  .trim())));
228
        }
229
230 1 1. apply : replaced return value with null for pro/verron/officestamper/asciidoc/AsciiDocParser::apply → KILLED
        return AsciiDocModel.of(blocks);
231
    }
232
233
    private static List<Inline> parseInlines(String text) {
234
        // Stack-based inline parser with simple tokens for '*', '_', text, and escapes.
235
        // Non-overlapping nesting is allowed; crossing markers are treated as plain text.
236
        var root = new Frame(FrameType.ROOT);
237
        var stack = new ArrayList<Frame>();
238
        stack.add(root);
239
240 2 1. parseInlines : negated conditional → KILLED
2. parseInlines : negated conditional → KILLED
        if (text == null || text.isEmpty()) {
241 1 1. parseInlines : replaced return value with Collections.emptyList for pro/verron/officestamper/asciidoc/AsciiDocParser::parseInlines → NO_COVERAGE
            return root.children;
242
        }
243
244 2 1. parseInlines : changed conditional boundary → KILLED
2. parseInlines : negated conditional → KILLED
        for (int i = 0; i < text.length(); i++) {
245
            char c = text.charAt(i);
246
247
            // Escapes for '*', '_', and '\\'
248 1 1. parseInlines : negated conditional → KILLED
            if (c == '\\') {
249 3 1. parseInlines : changed conditional boundary → NO_COVERAGE
2. parseInlines : negated conditional → NO_COVERAGE
3. parseInlines : Replaced integer addition with subtraction → NO_COVERAGE
                if (i + 1 < text.length()) {
250 1 1. parseInlines : Replaced integer addition with subtraction → NO_COVERAGE
                    char next = text.charAt(i + 1);
251 3 1. parseInlines : negated conditional → NO_COVERAGE
2. parseInlines : negated conditional → NO_COVERAGE
3. parseInlines : negated conditional → NO_COVERAGE
                    if (next == '*' || next == '_' || next == '\\') {
252
                        stack.getLast().text.append(next);
253 1 1. parseInlines : Changed increment from 1 to -1 → NO_COVERAGE
                        i++;
254
                        continue;
255
                    }
256
                }
257
                // Lone backslash
258
                stack.getLast().text.append(c);
259
                continue;
260
            }
261
262 2 1. parseInlines : negated conditional → KILLED
2. parseInlines : negated conditional → KILLED
            if (c == '*' || c == '_') {
263 1 1. parseInlines : negated conditional → KILLED
                FrameType type = (c == '*') ? FrameType.BOLD : FrameType.ITALIC;
264
                Frame top = stack.getLast();
265 1 1. parseInlines : negated conditional → KILLED
                if (top.type == type) {
266
                    // Close current frame
267 1 1. parseInlines : removed call to pro/verron/officestamper/asciidoc/AsciiDocParser$Frame::flushTextToChildren → KILLED
                    top.flushTextToChildren();
268 1 1. parseInlines : negated conditional → KILLED
                    Inline node = (type == FrameType.BOLD) ? new Bold(top.children) : new Italic(top.children);
269
                    stack.removeLast();
270
                    Frame parent = stack.getLast();
271
                    parent.children.add(node);
272
                }
273 3 1. parseInlines : negated conditional → SURVIVED
2. parseInlines : negated conditional → SURVIVED
3. parseInlines : negated conditional → KILLED
                else if (top.type == FrameType.BOLD || top.type == FrameType.ITALIC || top.type == FrameType.ROOT) {
274
                    // Open new frame
275 1 1. parseInlines : removed call to pro/verron/officestamper/asciidoc/AsciiDocParser$Frame::flushTextToChildren → KILLED
                    top.flushTextToChildren();
276
                    Frame f = new Frame(type);
277
                    stack.add(f);
278
                }
279
                else {
280
                    // Should not happen
281
                    stack.getLast().text.append(c);
282
                }
283
                continue;
284
            }
285
286
            // Detect literal |TAB| token -> emit a Tab inline
287 9 1. parseInlines : changed conditional boundary → NO_COVERAGE
2. parseInlines : Replaced integer addition with subtraction → NO_COVERAGE
3. parseInlines : negated conditional → NO_COVERAGE
4. parseInlines : negated conditional → NO_COVERAGE
5. parseInlines : Replaced integer addition with subtraction → NO_COVERAGE
6. parseInlines : negated conditional → NO_COVERAGE
7. parseInlines : Replaced integer addition with subtraction → NO_COVERAGE
8. parseInlines : Replaced integer addition with subtraction → NO_COVERAGE
9. parseInlines : negated conditional → SURVIVED
            if (c == '|' && i + 4 < text.length() && text.charAt(i + 1) == 'T' && text.charAt(i + 2) == 'A'
288 3 1. parseInlines : negated conditional → NO_COVERAGE
2. parseInlines : negated conditional → NO_COVERAGE
3. parseInlines : Replaced integer addition with subtraction → NO_COVERAGE
                && text.charAt(i + 3) == 'B' && text.charAt(i + 4) == '|') {
289
                // Flush any pending text
290
                stack.getLast()
291 1 1. parseInlines : removed call to pro/verron/officestamper/asciidoc/AsciiDocParser$Frame::flushTextToChildren → NO_COVERAGE
                     .flushTextToChildren();
292
                stack.getLast().children.add(new Tab());
293 1 1. parseInlines : Changed increment from 4 to -4 → NO_COVERAGE
                i += 4;
294
                continue;
295
            }
296
297
            // Simple Link detection: https://example.com[Text]
298 2 1. parseInlines : negated conditional → KILLED
2. parseInlines : negated conditional → KILLED
            if (c == 'h' && text.startsWith("http", i)) {
299
                int endUrl = text.indexOf('[', i);
300 1 1. parseInlines : negated conditional → KILLED
                if (endUrl != -1) {
301
                    int endText = text.indexOf(']', endUrl);
302 1 1. parseInlines : negated conditional → KILLED
                    if (endText != -1) {
303
                        stack.getLast()
304 1 1. parseInlines : removed call to pro/verron/officestamper/asciidoc/AsciiDocParser$Frame::flushTextToChildren → KILLED
                             .flushTextToChildren();
305
                        String url = text.substring(i, endUrl);
306 1 1. parseInlines : Replaced integer addition with subtraction → KILLED
                        String linkText = text.substring(endUrl + 1, endText);
307
                        stack.getLast().children.add(new Link(url, linkText));
308
                        i = endText;
309
                        continue;
310
                    }
311
                }
312
            }
313
314
            // Simple Image detection: image:url[AltText]
315 2 1. parseInlines : negated conditional → SURVIVED
2. parseInlines : negated conditional → KILLED
            if (c == 'i' && text.startsWith("image:", i)) {
316 1 1. parseInlines : Replaced integer addition with subtraction → NO_COVERAGE
                int endUrl = text.indexOf('[', i + 6);
317 1 1. parseInlines : negated conditional → NO_COVERAGE
                if (endUrl != -1) {
318
                    int endText = text.indexOf(']', endUrl);
319 1 1. parseInlines : negated conditional → NO_COVERAGE
                    if (endText != -1) {
320
                        stack.getLast()
321 1 1. parseInlines : removed call to pro/verron/officestamper/asciidoc/AsciiDocParser$Frame::flushTextToChildren → NO_COVERAGE
                             .flushTextToChildren();
322 1 1. parseInlines : Replaced integer addition with subtraction → NO_COVERAGE
                        String url = text.substring(i + 6, endUrl);
323 1 1. parseInlines : Replaced integer addition with subtraction → NO_COVERAGE
                        String title = text.substring(endUrl + 1, endText);
324
                        stack.getLast().children.add(new InlineImage(url, Map.of("title", title)));
325
                        i = endText;
326
                        continue;
327
                    }
328
                }
329
            }
330
331
            // Regular char
332
            stack.getLast().text.append(c);
333
        }
334
335
        // Unwind: any unclosed frames become literal markers + content as plain text in parent
336 2 1. parseInlines : negated conditional → KILLED
2. parseInlines : changed conditional boundary → KILLED
        while (stack.size() > 1) {
337
            Frame unfinished = stack.removeLast();
338 1 1. parseInlines : negated conditional → NO_COVERAGE
            char marker = unfinished.type == FrameType.BOLD ? '*' : '_';
339 1 1. parseInlines : removed call to pro/verron/officestamper/asciidoc/AsciiDocParser$Frame::flushTextToChildren → NO_COVERAGE
            unfinished.flushTextToChildren();
340
            // Build literal: marker + children as text + (no closing marker since it is missing)
341
            StringBuilder literal = new StringBuilder();
342
            literal.append(marker);
343
            for (Inline in : unfinished.children) {
344
                literal.append(in.text());
345
            }
346
            stack.getLast().text.append(literal);
347
        }
348
349
        // Flush remainder text on root
350 1 1. parseInlines : removed call to pro/verron/officestamper/asciidoc/AsciiDocParser$Frame::flushTextToChildren → KILLED
        root.flushTextToChildren();
351 1 1. parseInlines : replaced return value with Collections.emptyList for pro/verron/officestamper/asciidoc/AsciiDocParser::parseInlines → KILLED
        return root.children;
352
    }
353
354
    private enum FrameType {
355
        ROOT,
356
        BOLD,
357
        ITALIC
358
    }
359
360
    private static final class Frame {
361
        final FrameType type;
362
        final List<Inline> children = new ArrayList<>();
363
        final StringBuilder text = new StringBuilder();
364
365
        Frame(FrameType type) {this.type = type;}
366
367
        void flushTextToChildren() {
368 1 1. flushTextToChildren : negated conditional → KILLED
            if (!text.isEmpty()) {
369
                children.add(new Text(text.toString()));
370 1 1. flushTextToChildren : removed call to java/lang/StringBuilder::setLength → KILLED
                text.setLength(0);
371
            }
372
        }
373
    }
374
}

Mutations

14

1.1
Location : parse
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[test-template:parse_shouldReturnEmptyModel_whenInputIsNull(java.lang.String)]/[test-template-invocation:#2]
replaced return value with null for pro/verron/officestamper/asciidoc/AsciiDocParser::parse → KILLED

19

1.1
Location : apply
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseCodeBlock()]
negated conditional → KILLED

2.2
Location : apply
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseCodeBlock()]
negated conditional → KILLED

20

1.1
Location : apply
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[test-template:parse_shouldReturnEmptyModel_whenInputIsNull(java.lang.String)]/[test-template-invocation:#2]
replaced return value with null for pro/verron/officestamper/asciidoc/AsciiDocParser::apply → KILLED

35

1.1
Location : apply
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseCodeBlock()]
negated conditional → KILLED

36

1.1
Location : apply
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseBlockquote()]
negated conditional → KILLED

39

1.1
Location : apply
Killed by : none
removed call to java/lang/StringBuilder::setLength → SURVIVED
Covering tests

43

1.1
Location : apply
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseBlockquote()]
negated conditional → KILLED

46

1.1
Location : apply
Killed by : none
removed call to java/lang/StringBuilder::setLength → NO_COVERAGE

53

1.1
Location : apply
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseCodeBlock()]
negated conditional → KILLED

54

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

61

1.1
Location : apply
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseCodeBlock()]
negated conditional → KILLED

63

1.1
Location : apply
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseCodeBlock()]
negated conditional → KILLED

65

1.1
Location : apply
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseCodeBlock()]
Replaced integer addition with subtraction → KILLED

71

1.1
Location : apply
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseCodeBlock()]
negated conditional → KILLED

72

1.1
Location : apply
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseCodeBlock()]
negated conditional → KILLED

76

1.1
Location : apply
Killed by : none
removed call to java/lang/StringBuilder::setLength → SURVIVED
Covering tests

81

1.1
Location : apply
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseCodeBlock()]
negated conditional → KILLED

84

1.1
Location : apply
Killed by : none
removed call to java/lang/StringBuilder::setLength → NO_COVERAGE

91

1.1
Location : apply
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseCodeBlock()]
negated conditional → KILLED

92

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

99

1.1
Location : apply
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseImageBlock()]
negated conditional → KILLED

100

1.1
Location : apply
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseImageBlock()]
negated conditional → KILLED

103

1.1
Location : apply
Killed by : none
removed call to java/lang/StringBuilder::setLength → NO_COVERAGE

106

1.1
Location : apply
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseImageBlock()]
negated conditional → KILLED

108

1.1
Location : apply
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseImageBlock()]
negated conditional → KILLED

110

1.1
Location : apply
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseImageBlock()]
Replaced integer addition with subtraction → KILLED

117

1.1
Location : apply
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseUnorderedList()]
negated conditional → KILLED

118

1.1
Location : apply
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseTable()]
negated conditional → KILLED

124

1.1
Location : apply
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseTable()]
negated conditional → KILLED

127

1.1
Location : apply
Killed by : none
removed call to java/lang/StringBuilder::setLength → NO_COVERAGE

134

1.1
Location : apply
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseUnorderedList()]
negated conditional → KILLED

135

1.1
Location : apply
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseTable()]
negated conditional → KILLED

147

1.1
Location : apply
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseUnorderedList()]
negated conditional → KILLED

148

1.1
Location : apply
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseHeading()]
negated conditional → KILLED

151

1.1
Location : apply
Killed by : none
removed call to java/lang/StringBuilder::setLength → NO_COVERAGE

157

1.1
Location : apply
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseHeading()]
negated conditional → KILLED

159

1.1
Location : apply
Killed by : none
changed conditional boundary → SURVIVED
Covering tests

2.2
Location : apply
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseHeading()]
negated conditional → KILLED

3.3
Location : apply
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseHeading()]
negated conditional → KILLED

162

1.1
Location : apply
Killed by : none
changed conditional boundary → SURVIVED
Covering tests

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

3.3
Location : apply
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseHeading()]
negated conditional → KILLED

4.4
Location : apply
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseHeading()]
negated conditional → KILLED

5.5
Location : apply
Killed by : none
changed conditional boundary → SURVIVED Covering tests

6.6
Location : apply
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseHeading()]
negated conditional → KILLED

163

1.1
Location : apply
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseHeading()]
negated conditional → KILLED

164

1.1
Location : apply
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseHeading()]
negated conditional → KILLED

167

1.1
Location : apply
Killed by : none
removed call to java/lang/StringBuilder::setLength → NO_COVERAGE

177

1.1
Location : apply
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseUnorderedList()]
negated conditional → KILLED

178

1.1
Location : apply
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseUnorderedList()]
negated conditional → KILLED

181

1.1
Location : apply
Killed by : none
removed call to java/lang/StringBuilder::setLength → NO_COVERAGE

186

1.1
Location : apply
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseUnorderedList()]
negated conditional → KILLED

2.2
Location : apply
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseUnorderedList()]
negated conditional → KILLED

189

1.1
Location : apply
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseUnorderedList()]
Replaced integer subtraction with addition → KILLED

198

1.1
Location : apply
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseOrderedList()]
negated conditional → KILLED

199

1.1
Location : apply
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseOrderedList()]
negated conditional → KILLED

202

1.1
Location : apply
Killed by : none
removed call to java/lang/StringBuilder::setLength → NO_COVERAGE

207

1.1
Location : apply
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseOrderedList()]
negated conditional → KILLED

2.2
Location : apply
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseOrderedList()]
negated conditional → KILLED

210

1.1
Location : apply
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseOrderedList()]
Replaced integer subtraction with addition → KILLED

219

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

225

1.1
Location : apply
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseCodeBlock()]
negated conditional → KILLED

230

1.1
Location : apply
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseCodeBlock()]
replaced return value with null for pro/verron/officestamper/asciidoc/AsciiDocParser::apply → KILLED

240

1.1
Location : parseInlines
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseUnorderedList()]
negated conditional → KILLED

2.2
Location : parseInlines
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseUnorderedList()]
negated conditional → KILLED

241

1.1
Location : parseInlines
Killed by : none
replaced return value with Collections.emptyList for pro/verron/officestamper/asciidoc/AsciiDocParser::parseInlines → NO_COVERAGE

244

1.1
Location : parseInlines
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseUnorderedList()]
changed conditional boundary → KILLED

2.2
Location : parseInlines
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseUnorderedList()]
negated conditional → KILLED

248

1.1
Location : parseInlines
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseInlines()]
negated conditional → KILLED

249

1.1
Location : parseInlines
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : parseInlines
Killed by : none
negated conditional → NO_COVERAGE

3.3
Location : parseInlines
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

250

1.1
Location : parseInlines
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

251

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

2.2
Location : parseInlines
Killed by : none
negated conditional → NO_COVERAGE

3.3
Location : parseInlines
Killed by : none
negated conditional → NO_COVERAGE

253

1.1
Location : parseInlines
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

262

1.1
Location : parseInlines
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseUnorderedList()]
negated conditional → KILLED

2.2
Location : parseInlines
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseUnorderedList()]
negated conditional → KILLED

263

1.1
Location : parseInlines
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseInlines()]
negated conditional → KILLED

265

1.1
Location : parseInlines
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseInlines()]
negated conditional → KILLED

267

1.1
Location : parseInlines
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseInlines()]
removed call to pro/verron/officestamper/asciidoc/AsciiDocParser$Frame::flushTextToChildren → KILLED

268

1.1
Location : parseInlines
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseInlines()]
negated conditional → KILLED

273

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

2.2
Location : parseInlines
Killed by : none
negated conditional → SURVIVED Covering tests

3.3
Location : parseInlines
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseInlines()]
negated conditional → KILLED

275

1.1
Location : parseInlines
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseInlines()]
removed call to pro/verron/officestamper/asciidoc/AsciiDocParser$Frame::flushTextToChildren → KILLED

287

1.1
Location : parseInlines
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : parseInlines
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

3.3
Location : parseInlines
Killed by : none
negated conditional → NO_COVERAGE

4.4
Location : parseInlines
Killed by : none
negated conditional → NO_COVERAGE

5.5
Location : parseInlines
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

6.6
Location : parseInlines
Killed by : none
negated conditional → NO_COVERAGE

7.7
Location : parseInlines
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

8.8
Location : parseInlines
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

9.9
Location : parseInlines
Killed by : none
negated conditional → SURVIVED
Covering tests

288

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

2.2
Location : parseInlines
Killed by : none
negated conditional → NO_COVERAGE

3.3
Location : parseInlines
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

291

1.1
Location : parseInlines
Killed by : none
removed call to pro/verron/officestamper/asciidoc/AsciiDocParser$Frame::flushTextToChildren → NO_COVERAGE

293

1.1
Location : parseInlines
Killed by : none
Changed increment from 4 to -4 → NO_COVERAGE

298

1.1
Location : parseInlines
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseInlines()]
negated conditional → KILLED

2.2
Location : parseInlines
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseInlines()]
negated conditional → KILLED

300

1.1
Location : parseInlines
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseInlines()]
negated conditional → KILLED

302

1.1
Location : parseInlines
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseInlines()]
negated conditional → KILLED

304

1.1
Location : parseInlines
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseInlines()]
removed call to pro/verron/officestamper/asciidoc/AsciiDocParser$Frame::flushTextToChildren → KILLED

306

1.1
Location : parseInlines
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseInlines()]
Replaced integer addition with subtraction → KILLED

315

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

2.2
Location : parseInlines
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseInlines()]
negated conditional → KILLED

316

1.1
Location : parseInlines
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

317

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

319

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

321

1.1
Location : parseInlines
Killed by : none
removed call to pro/verron/officestamper/asciidoc/AsciiDocParser$Frame::flushTextToChildren → NO_COVERAGE

322

1.1
Location : parseInlines
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

323

1.1
Location : parseInlines
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

336

1.1
Location : parseInlines
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseUnorderedList()]
negated conditional → KILLED

2.2
Location : parseInlines
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseUnorderedList()]
changed conditional boundary → KILLED

338

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

339

1.1
Location : parseInlines
Killed by : none
removed call to pro/verron/officestamper/asciidoc/AsciiDocParser$Frame::flushTextToChildren → NO_COVERAGE

350

1.1
Location : parseInlines
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseUnorderedList()]
removed call to pro/verron/officestamper/asciidoc/AsciiDocParser$Frame::flushTextToChildren → KILLED

351

1.1
Location : parseInlines
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseUnorderedList()]
replaced return value with Collections.emptyList for pro/verron/officestamper/asciidoc/AsciiDocParser::parseInlines → KILLED

368

1.1
Location : flushTextToChildren
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseUnorderedList()]
negated conditional → KILLED

370

1.1
Location : flushTextToChildren
Killed by : pro.verron.officestamper.asciidoc.test.AsciiDocParserTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.asciidoc.test.AsciiDocParserTest]/[method:parse_shouldParseInlines()]
removed call to java/lang/StringBuilder::setLength → KILLED

Active mutators

Tests examined


Report generated by PIT 1.22.1