Skip to content

Commit 9fc05c0

Browse files
committed
Moved misuse filtering logic to an accessor on Run.
1 parent 8348c76 commit 9fc05c0

2 files changed

Lines changed: 33 additions & 27 deletions

File tree

mubench.reviewsite/src/Controllers/RunsController.php

Lines changed: 1 addition & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -229,33 +229,7 @@ static function getRuns($detector, $experiment, $max_reviews)
229229
$runs = Run::of($detector)->in($experiment)->orderBy('project_muid')->orderBy('version_muid')->get();
230230

231231
foreach($runs as $run){
232-
$conclusive_reviews = 0;
233-
$filtered_misuses = new Collection;
234-
$misuses = $run->misuses->sortBy('misuse_muid', SORT_NATURAL);
235-
if($experiment->id === 1) {
236-
foreach($misuses as $misuse){
237-
if($misuse->metadata && !$misuse->metadata->correct_usages->isEmpty()){
238-
$filtered_misuses->add($misuse);
239-
}
240-
}
241-
} else if($experiment->id === 2) {
242-
foreach ($misuses as $misuse) {
243-
if ($conclusive_reviews >= $max_reviews) {
244-
break;
245-
}
246-
$filtered_misuses->add($misuse);
247-
if ($misuse->hasConclusiveReviewState() || (!$misuse->hasSufficientReviews() && !$misuse->hasInconclusiveReview())) {
248-
$conclusive_reviews++;
249-
}
250-
}
251-
} else {
252-
foreach($misuses as $misuse){
253-
if($misuse->metadata){
254-
$filtered_misuses->add($misuse);
255-
}
256-
}
257-
}
258-
$run->misuses = $filtered_misuses;
232+
$run->misuses = $run->getMisuses($experiment, $max_reviews);
259233
}
260234

261235
return $runs;

mubench.reviewsite/src/Models/Run.php

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
namespace MuBench\ReviewSite\Models;
44

5+
use Illuminate\Database\Eloquent\Collection;
56

67
class Run extends DetectorDependent
78
{
@@ -14,4 +15,35 @@ public function misuses()
1415
{
1516
return $this->hasMany(Misuse::class, 'run_id', 'id')->where('detector_id', $this->detector->id);
1617
}
18+
19+
public function getMisuses($experiment, $max_review_size)
20+
{
21+
$filtered_misuses = new Collection;
22+
$misuses = $this->misuses->sortBy('misuse_muid', SORT_NATURAL);
23+
if($experiment->id === 1) {
24+
foreach($misuses as $misuse){
25+
if($misuse->metadata && !$misuse->metadata->correct_usages->isEmpty()){
26+
$filtered_misuses->add($misuse);
27+
}
28+
}
29+
} else if($experiment->id === 2) {
30+
$conclusive_reviews = 0;
31+
foreach ($misuses as $misuse) {
32+
if ($conclusive_reviews >= $max_review_size) {
33+
break;
34+
}
35+
$filtered_misuses->add($misuse);
36+
if ($misuse->hasConclusiveReviewState() || (!$misuse->hasSufficientReviews() && !$misuse->hasInconclusiveReview())) {
37+
$conclusive_reviews++;
38+
}
39+
}
40+
} else {
41+
foreach($misuses as $misuse){
42+
if($misuse->metadata){
43+
$filtered_misuses->add($misuse);
44+
}
45+
}
46+
}
47+
return $filtered_misuses;
48+
}
1749
}

0 commit comments

Comments
 (0)