TimeBucket.java

1
package edu.ucsb.cs156.dining.util;
2
3
import java.time.DayOfWeek;
4
import java.time.LocalDate;
5
import java.time.LocalDateTime;
6
import java.time.temporal.TemporalAdjusters;
7
8
/** Buckets for grouping review statistics over time. */
9
public enum TimeBucket {
10
  DAY,
11
  WEEK,
12
  MONTH;
13
14
  /**
15
   * @param dateTime a review's {@code dateItemServed}
16
   * @return the start date of the bucket containing {@code dateTime}
17
   */
18
  public LocalDate floor(LocalDateTime dateTime) {
19
    LocalDate date = dateTime.toLocalDate();
20 1 1. floor : replaced return value with null for edu/ucsb/cs156/dining/util/TimeBucket::floor → KILLED
    return switch (this) {
21
      case DAY -> date;
22
      case WEEK -> date.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY));
23
      case MONTH -> date.withDayOfMonth(1);
24
    };
25
  }
26
}

Mutations

20

1.1
Location : floor
Killed by : edu.ucsb.cs156.dining.util.TimeBucketTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.dining.util.TimeBucketTests]/[method:week_floor_wednesday_returns_monday_of_that_week()]
replaced return value with null for edu/ucsb/cs156/dining/util/TimeBucket::floor → KILLED

Active mutators

Tests examined


Report generated by PIT 1.17.0