|
1
|
|
package edu.ucsb.cs156.frontiers.controllers; |
|
2
|
|
|
|
3
|
|
import edu.ucsb.cs156.frontiers.entities.RosterStudent; |
|
4
|
|
import edu.ucsb.cs156.frontiers.repositories.RosterStudentRepository; |
|
5
|
|
import io.swagger.v3.oas.annotations.Operation; |
|
6
|
|
import io.swagger.v3.oas.annotations.Parameter; |
|
7
|
|
import io.swagger.v3.oas.annotations.tags.Tag; |
|
8
|
|
import java.util.Arrays; |
|
9
|
|
import java.util.Map; |
|
10
|
|
import java.util.stream.Collectors; |
|
11
|
|
import java.util.stream.StreamSupport; |
|
12
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
13
|
|
import org.springframework.security.access.prepost.PreAuthorize; |
|
14
|
|
import org.springframework.web.bind.annotation.PostMapping; |
|
15
|
|
import org.springframework.web.bind.annotation.RequestBody; |
|
16
|
|
import org.springframework.web.bind.annotation.RequestMapping; |
|
17
|
|
import org.springframework.web.bind.annotation.RequestParam; |
|
18
|
|
import org.springframework.web.bind.annotation.RestController; |
|
19
|
|
|
|
20
|
|
@Tag(name = "CATME") |
|
21
|
|
@RequestMapping("/api/catme") |
|
22
|
|
@RestController |
|
23
|
|
public class CATMEController extends ApiController { |
|
24
|
|
|
|
25
|
|
@Autowired private RosterStudentRepository rosterStudentRepository; |
|
26
|
|
|
|
27
|
|
@Operation(summary = "Convert CATME roster names into course emails") |
|
28
|
|
@PreAuthorize("@CourseSecurity.hasManagePermissions(#root, #courseId)") |
|
29
|
|
@PostMapping(value = "/emails", consumes = "text/plain", produces = "text/plain") |
|
30
|
|
public String getCourseEmailsFromCatme( |
|
31
|
|
@Parameter(name = "courseId") @RequestParam Long courseId, |
|
32
|
|
@Parameter(name = "payload") @RequestBody(required = false) String payload) { |
|
33
|
|
|
|
34
|
1
1. getCourseEmailsFromCatme : negated conditional → KILLED
|
String normalizedPayload = payload == null ? "" : payload; |
|
35
|
1
1. getCourseEmailsFromCatme : negated conditional → KILLED
|
if (normalizedPayload.isBlank()) { |
|
36
|
|
return ""; |
|
37
|
|
} |
|
38
|
|
|
|
39
|
|
Map<String, String> emailByName = |
|
40
|
|
StreamSupport.stream(rosterStudentRepository.findByCourseId(courseId).spliterator(), false) |
|
41
|
|
.filter( |
|
42
|
|
student -> |
|
43
|
2
1. lambda$getCourseEmailsFromCatme$0 : replaced boolean return with true for edu/ucsb/cs156/frontiers/controllers/CATMEController::lambda$getCourseEmailsFromCatme$0 → KILLED
2. lambda$getCourseEmailsFromCatme$0 : negated conditional → KILLED
|
student.getFirstName() != null |
|
44
|
1
1. lambda$getCourseEmailsFromCatme$0 : negated conditional → KILLED
|
&& student.getLastName() != null |
|
45
|
1
1. lambda$getCourseEmailsFromCatme$0 : negated conditional → KILLED
|
&& student.getEmail() != null) |
|
46
|
|
.collect( |
|
47
|
|
Collectors.toMap( |
|
48
|
1
1. lambda$getCourseEmailsFromCatme$1 : replaced return value with "" for edu/ucsb/cs156/frontiers/controllers/CATMEController::lambda$getCourseEmailsFromCatme$1 → KILLED
|
student -> toLookupKey(student.getLastName(), student.getFirstName()), |
|
49
|
|
RosterStudent::getEmail, |
|
50
|
1
1. lambda$getCourseEmailsFromCatme$2 : replaced return value with "" for edu/ucsb/cs156/frontiers/controllers/CATMEController::lambda$getCourseEmailsFromCatme$2 → KILLED
|
(first, second) -> first)); |
|
51
|
|
|
|
52
|
|
// \\R handles all line endings and -1 preserves trailing blank lines. |
|
53
|
1
1. getCourseEmailsFromCatme : replaced return value with "" for edu/ucsb/cs156/frontiers/controllers/CATMEController::getCourseEmailsFromCatme → KILLED
|
return Arrays.stream(normalizedPayload.split("\\R", -1)) |
|
54
|
1
1. lambda$getCourseEmailsFromCatme$3 : replaced return value with "" for edu/ucsb/cs156/frontiers/controllers/CATMEController::lambda$getCourseEmailsFromCatme$3 → KILLED
|
.map(line -> formatEmailResultLine(extractName(line), emailByName)) |
|
55
|
|
.collect(Collectors.joining("\n")); |
|
56
|
|
} |
|
57
|
|
|
|
58
|
|
private static String extractName(String line) { |
|
59
|
|
String trimmed = normalizeSpaces(line); |
|
60
|
1
1. extractName : negated conditional → KILLED
|
if (trimmed.isBlank()) { |
|
61
|
|
return ""; |
|
62
|
|
} |
|
63
|
|
|
|
64
|
|
// CATME lines look like: "LAST, FIRST MIDDLE <score> <timestamp>". |
|
65
|
|
int dateStart = findDateTokenStart(trimmed); |
|
66
|
1
1. extractName : negated conditional → KILLED
|
if (dateStart == -1) { |
|
67
|
1
1. extractName : replaced return value with "" for edu/ucsb/cs156/frontiers/controllers/CATMEController::extractName → KILLED
|
return trimmed; |
|
68
|
|
} |
|
69
|
|
|
|
70
|
|
String beforeDate = trimmed.substring(0, dateStart).trim(); |
|
71
|
|
int lastSpace = beforeDate.lastIndexOf(' '); |
|
72
|
1
1. extractName : negated conditional → KILLED
|
if (lastSpace == -1) { |
|
73
|
1
1. extractName : replaced return value with "" for edu/ucsb/cs156/frontiers/controllers/CATMEController::extractName → KILLED
|
return beforeDate; |
|
74
|
|
} |
|
75
|
|
|
|
76
|
1
1. extractName : Replaced integer addition with subtraction → KILLED
|
String possibleScore = beforeDate.substring(lastSpace + 1); |
|
77
|
1
1. extractName : negated conditional → KILLED
|
if (possibleScore.chars().allMatch(Character::isDigit)) { |
|
78
|
1
1. extractName : replaced return value with "" for edu/ucsb/cs156/frontiers/controllers/CATMEController::extractName → KILLED
|
return beforeDate.substring(0, lastSpace).trim(); |
|
79
|
|
} |
|
80
|
1
1. extractName : replaced return value with "" for edu/ucsb/cs156/frontiers/controllers/CATMEController::extractName → KILLED
|
return beforeDate; |
|
81
|
|
} |
|
82
|
|
|
|
83
|
|
private static String formatEmailResultLine(String name, Map<String, String> emailByName) { |
|
84
|
1
1. formatEmailResultLine : negated conditional → KILLED
|
if (name.isBlank()) { |
|
85
|
|
return ""; |
|
86
|
|
} |
|
87
|
|
String email = emailByName.get(toLookupKey(name)); |
|
88
|
1
1. formatEmailResultLine : negated conditional → KILLED
|
if (email != null) { |
|
89
|
1
1. formatEmailResultLine : replaced return value with "" for edu/ucsb/cs156/frontiers/controllers/CATMEController::formatEmailResultLine → KILLED
|
return email; |
|
90
|
|
} |
|
91
|
1
1. formatEmailResultLine : replaced return value with "" for edu/ucsb/cs156/frontiers/controllers/CATMEController::formatEmailResultLine → KILLED
|
return "# NO EMAIL FOUND FOR " + name; |
|
92
|
|
} |
|
93
|
|
|
|
94
|
|
private static String toLookupKey(String lastName, String firstName) { |
|
95
|
1
1. toLookupKey : replaced return value with "" for edu/ucsb/cs156/frontiers/controllers/CATMEController::toLookupKey → KILLED
|
return toLookupKey(lastName + ", " + firstName); |
|
96
|
|
} |
|
97
|
|
|
|
98
|
|
private static String toLookupKey(String name) { |
|
99
|
1
1. toLookupKey : replaced return value with "" for edu/ucsb/cs156/frontiers/controllers/CATMEController::toLookupKey → KILLED
|
return normalizeSpaces(name).toUpperCase().replaceFirst("\\s*,\\s*", ","); |
|
100
|
|
} |
|
101
|
|
|
|
102
|
|
private static String normalizeSpaces(String value) { |
|
103
|
1
1. normalizeSpaces : replaced return value with "" for edu/ucsb/cs156/frontiers/controllers/CATMEController::normalizeSpaces → KILLED
|
return value.replaceAll("\\s+", " ").trim(); |
|
104
|
|
} |
|
105
|
|
|
|
106
|
|
private static int findDateTokenStart(String value) { |
|
107
|
3
1. findDateTokenStart : negated conditional → KILLED
2. findDateTokenStart : changed conditional boundary → KILLED
3. findDateTokenStart : Replaced integer addition with subtraction → KILLED
|
for (int i = 0; i + 10 <= value.length(); i++) { |
|
108
|
1
1. findDateTokenStart : negated conditional → KILLED
|
if (isDateToken(value, i)) { |
|
109
|
1
1. findDateTokenStart : replaced int return with 0 for edu/ucsb/cs156/frontiers/controllers/CATMEController::findDateTokenStart → KILLED
|
return i; |
|
110
|
|
} |
|
111
|
|
} |
|
112
|
1
1. findDateTokenStart : replaced int return with 0 for edu/ucsb/cs156/frontiers/controllers/CATMEController::findDateTokenStart → KILLED
|
return -1; |
|
113
|
|
} |
|
114
|
|
|
|
115
|
|
private static boolean isDateToken(String value, int start) { |
|
116
|
4
1. isDateToken : Replaced integer subtraction with addition → KILLED
2. isDateToken : negated conditional → KILLED
3. isDateToken : negated conditional → KILLED
4. isDateToken : changed conditional boundary → KILLED
|
if (start > 0 && value.charAt(start - 1) != ' ') { |
|
117
|
1
1. isDateToken : replaced boolean return with true for edu/ucsb/cs156/frontiers/controllers/CATMEController::isDateToken → KILLED
|
return false; |
|
118
|
|
} |
|
119
|
|
|
|
120
|
3
1. isDateToken : negated conditional → KILLED
2. isDateToken : replaced boolean return with true for edu/ucsb/cs156/frontiers/controllers/CATMEController::isDateToken → KILLED
3. isDateToken : Replaced integer addition with subtraction → KILLED
|
return Character.isDigit(value.charAt(start)) |
|
121
|
2
1. isDateToken : Replaced integer addition with subtraction → KILLED
2. isDateToken : negated conditional → KILLED
|
&& Character.isDigit(value.charAt(start + 1)) |
|
122
|
2
1. isDateToken : Replaced integer addition with subtraction → KILLED
2. isDateToken : negated conditional → KILLED
|
&& Character.isDigit(value.charAt(start + 2)) |
|
123
|
2
1. isDateToken : Replaced integer addition with subtraction → KILLED
2. isDateToken : negated conditional → KILLED
|
&& Character.isDigit(value.charAt(start + 3)) |
|
124
|
2
1. isDateToken : Replaced integer addition with subtraction → KILLED
2. isDateToken : negated conditional → KILLED
|
&& value.charAt(start + 4) == '-' |
|
125
|
2
1. isDateToken : negated conditional → KILLED
2. isDateToken : Replaced integer addition with subtraction → KILLED
|
&& Character.isDigit(value.charAt(start + 5)) |
|
126
|
2
1. isDateToken : negated conditional → KILLED
2. isDateToken : Replaced integer addition with subtraction → KILLED
|
&& Character.isDigit(value.charAt(start + 6)) |
|
127
|
2
1. isDateToken : Replaced integer addition with subtraction → KILLED
2. isDateToken : negated conditional → KILLED
|
&& value.charAt(start + 7) == '-' |
|
128
|
2
1. isDateToken : Replaced integer addition with subtraction → KILLED
2. isDateToken : negated conditional → KILLED
|
&& Character.isDigit(value.charAt(start + 8)) |
|
129
|
1
1. isDateToken : negated conditional → KILLED
|
&& Character.isDigit(value.charAt(start + 9)); |
|
130
|
|
} |
|
131
|
|
} |
| | Mutations |
| 34 |
|
1.1 Location : getCourseEmailsFromCatme Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_directCall_nullPayload_returnsBlankAndSkipsRepoLookup()] negated conditional → KILLED
|
| 35 |
|
1.1 Location : getCourseEmailsFromCatme Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_directCall_nullPayload_returnsBlankAndSkipsRepoLookup()] negated conditional → KILLED
|
| 43 |
|
1.1 Location : lambda$getCourseEmailsFromCatme$0 Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_ignoresRosterEntriesMissingRequiredFields()] replaced boolean return with true for edu/ucsb/cs156/frontiers/controllers/CATMEController::lambda$getCourseEmailsFromCatme$0 → KILLED
2.2 Location : lambda$getCourseEmailsFromCatme$0 Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_matchesWhenDateTokenStartsAtLastPossibleIndex()] negated conditional → KILLED
|
| 44 |
|
1.1 Location : lambda$getCourseEmailsFromCatme$0 Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_matchesWhenDateTokenStartsAtLastPossibleIndex()] negated conditional → KILLED
|
| 45 |
|
1.1 Location : lambda$getCourseEmailsFromCatme$0 Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_matchesWhenDateTokenStartsAtLastPossibleIndex()] negated conditional → KILLED
|
| 48 |
|
1.1 Location : lambda$getCourseEmailsFromCatme$1 Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_matchesWhenDateTokenStartsAtLastPossibleIndex()] replaced return value with "" for edu/ucsb/cs156/frontiers/controllers/CATMEController::lambda$getCourseEmailsFromCatme$1 → KILLED
|
| 50 |
|
1.1 Location : lambda$getCourseEmailsFromCatme$2 Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_coversDateAndDuplicateEdgeCases()] replaced return value with "" for edu/ucsb/cs156/frontiers/controllers/CATMEController::lambda$getCourseEmailsFromCatme$2 → KILLED
|
| 53 |
|
1.1 Location : getCourseEmailsFromCatme Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_doesNotTreatNonDigitDateTokenAsDate()] replaced return value with "" for edu/ucsb/cs156/frontiers/controllers/CATMEController::getCourseEmailsFromCatme → KILLED
|
| 54 |
|
1.1 Location : lambda$getCourseEmailsFromCatme$3 Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_doesNotTreatNonDigitDateTokenAsDate()] replaced return value with "" for edu/ucsb/cs156/frontiers/controllers/CATMEController::lambda$getCourseEmailsFromCatme$3 → KILLED
|
| 60 |
|
1.1 Location : extractName Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_doesNotTreatNonDigitDateTokenAsDate()] negated conditional → KILLED
|
| 66 |
|
1.1 Location : extractName Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_doesNotTreatNonDigitDateTokenAsDate()] negated conditional → KILLED
|
| 67 |
|
1.1 Location : extractName Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_doesNotTreatNonDigitDateTokenAsDate()] replaced return value with "" for edu/ucsb/cs156/frontiers/controllers/CATMEController::extractName → KILLED
|
| 72 |
|
1.1 Location : extractName Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_matchesWhenDateTokenStartsAtLastPossibleIndex()] negated conditional → KILLED
|
| 73 |
|
1.1 Location : extractName Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_coversDateAndDuplicateEdgeCases()] replaced return value with "" for edu/ucsb/cs156/frontiers/controllers/CATMEController::extractName → KILLED
|
| 76 |
|
1.1 Location : extractName Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_matchesWhenDateTokenStartsAtLastPossibleIndex()] Replaced integer addition with subtraction → KILLED
|
| 77 |
|
1.1 Location : extractName Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_matchesWhenDateTokenStartsAtLastPossibleIndex()] negated conditional → KILLED
|
| 78 |
|
1.1 Location : extractName Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_matchesWhenDateTokenStartsAtLastPossibleIndex()] replaced return value with "" for edu/ucsb/cs156/frontiers/controllers/CATMEController::extractName → KILLED
|
| 80 |
|
1.1 Location : extractName Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_coversDateAndDuplicateEdgeCases()] replaced return value with "" for edu/ucsb/cs156/frontiers/controllers/CATMEController::extractName → KILLED
|
| 84 |
|
1.1 Location : formatEmailResultLine Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_doesNotTreatNonDigitDateTokenAsDate()] negated conditional → KILLED
|
| 88 |
|
1.1 Location : formatEmailResultLine Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_doesNotTreatNonDigitDateTokenAsDate()] negated conditional → KILLED
|
| 89 |
|
1.1 Location : formatEmailResultLine Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_matchesWhenDateTokenStartsAtLastPossibleIndex()] replaced return value with "" for edu/ucsb/cs156/frontiers/controllers/CATMEController::formatEmailResultLine → KILLED
|
| 91 |
|
1.1 Location : formatEmailResultLine Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_doesNotTreatNonDigitDateTokenAsDate()] replaced return value with "" for edu/ucsb/cs156/frontiers/controllers/CATMEController::formatEmailResultLine → KILLED
|
| 95 |
|
1.1 Location : toLookupKey Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_matchesWhenDateTokenStartsAtLastPossibleIndex()] replaced return value with "" for edu/ucsb/cs156/frontiers/controllers/CATMEController::toLookupKey → KILLED
|
| 99 |
|
1.1 Location : toLookupKey Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_returnsMatchedEmailsAndNoEmailMessage()] replaced return value with "" for edu/ucsb/cs156/frontiers/controllers/CATMEController::toLookupKey → KILLED
|
| 103 |
|
1.1 Location : normalizeSpaces Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_doesNotTreatNonDigitDateTokenAsDate()] replaced return value with "" for edu/ucsb/cs156/frontiers/controllers/CATMEController::normalizeSpaces → KILLED
|
| 107 |
|
1.1 Location : findDateTokenStart Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_matchesWhenDateTokenStartsAtLastPossibleIndex()] negated conditional → KILLED
2.2 Location : findDateTokenStart Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_matchesWhenDateTokenStartsAtLastPossibleIndex()] changed conditional boundary → KILLED
3.3 Location : findDateTokenStart Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_doesNotTreatNonDigitDateTokenAsDate()] Replaced integer addition with subtraction → KILLED
|
| 108 |
|
1.1 Location : findDateTokenStart Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_doesNotTreatNonDigitDateTokenAsDate()] negated conditional → KILLED
|
| 109 |
|
1.1 Location : findDateTokenStart Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_matchesWhenDateTokenStartsAtLastPossibleIndex()] replaced int return with 0 for edu/ucsb/cs156/frontiers/controllers/CATMEController::findDateTokenStart → KILLED
|
| 112 |
|
1.1 Location : findDateTokenStart Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_doesNotTreatNonDigitDateTokenAsDate()] replaced int return with 0 for edu/ucsb/cs156/frontiers/controllers/CATMEController::findDateTokenStart → KILLED
|
| 116 |
|
1.1 Location : isDateToken Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_matchesWhenDateTokenStartsAtLastPossibleIndex()] Replaced integer subtraction with addition → KILLED
2.2 Location : isDateToken Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_doesNotTreatNonDigitDateTokenAsDate()] negated conditional → KILLED
3.3 Location : isDateToken Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_matchesWhenDateTokenStartsAtLastPossibleIndex()] negated conditional → KILLED
4.4 Location : isDateToken Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_doesNotTreatNonDigitDateTokenAsDate()] changed conditional boundary → KILLED
|
| 117 |
|
1.1 Location : isDateToken Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_doesNotTreatNonDigitDateTokenAsDate()] replaced boolean return with true for edu/ucsb/cs156/frontiers/controllers/CATMEController::isDateToken → KILLED
|
| 120 |
|
1.1 Location : isDateToken Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_matchesWhenDateTokenStartsAtLastPossibleIndex()] negated conditional → KILLED
2.2 Location : isDateToken Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_doesNotTreatNonDigitDateTokenAsDate()] replaced boolean return with true for edu/ucsb/cs156/frontiers/controllers/CATMEController::isDateToken → KILLED
3.3 Location : isDateToken Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_matchesWhenDateTokenStartsAtLastPossibleIndex()] Replaced integer addition with subtraction → KILLED
|
| 121 |
|
1.1 Location : isDateToken Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_coversDateAndDuplicateEdgeCases()] Replaced integer addition with subtraction → KILLED
2.2 Location : isDateToken Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_matchesWhenDateTokenStartsAtLastPossibleIndex()] negated conditional → KILLED
|
| 122 |
|
1.1 Location : isDateToken Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_matchesWhenDateTokenStartsAtLastPossibleIndex()] Replaced integer addition with subtraction → KILLED
2.2 Location : isDateToken Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_matchesWhenDateTokenStartsAtLastPossibleIndex()] negated conditional → KILLED
|
| 123 |
|
1.1 Location : isDateToken Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_matchesWhenDateTokenStartsAtLastPossibleIndex()] Replaced integer addition with subtraction → KILLED
2.2 Location : isDateToken Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_doesNotTreatNonDigitDateTokenAsDate()] negated conditional → KILLED
|
| 124 |
|
1.1 Location : isDateToken Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_matchesWhenDateTokenStartsAtLastPossibleIndex()] Replaced integer addition with subtraction → KILLED
2.2 Location : isDateToken Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_matchesWhenDateTokenStartsAtLastPossibleIndex()] negated conditional → KILLED
|
| 125 |
|
1.1 Location : isDateToken Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_matchesWhenDateTokenStartsAtLastPossibleIndex()] negated conditional → KILLED
2.2 Location : isDateToken Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_matchesWhenDateTokenStartsAtLastPossibleIndex()] Replaced integer addition with subtraction → KILLED
|
| 126 |
|
1.1 Location : isDateToken Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_matchesWhenDateTokenStartsAtLastPossibleIndex()] negated conditional → KILLED
2.2 Location : isDateToken Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_matchesWhenDateTokenStartsAtLastPossibleIndex()] Replaced integer addition with subtraction → KILLED
|
| 127 |
|
1.1 Location : isDateToken Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_matchesWhenDateTokenStartsAtLastPossibleIndex()] Replaced integer addition with subtraction → KILLED
2.2 Location : isDateToken Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_matchesWhenDateTokenStartsAtLastPossibleIndex()] negated conditional → KILLED
|
| 128 |
|
1.1 Location : isDateToken Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_matchesWhenDateTokenStartsAtLastPossibleIndex()] Replaced integer addition with subtraction → KILLED
2.2 Location : isDateToken Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_matchesWhenDateTokenStartsAtLastPossibleIndex()] negated conditional → KILLED
|
| 129 |
|
1.1 Location : isDateToken Killed by : edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.controllers.CATMEControllerTests]/[method:catmeEmails_matchesWhenDateTokenStartsAtLastPossibleIndex()] negated conditional → KILLED
|