Skip to content

Commit

Permalink
馃毀 generate better sample data
Browse files Browse the repository at this point in the history
Signed-off-by: Marcus Fihlon <[email protected]>
  • Loading branch information
McPringle committed Mar 25, 2024
1 parent 9f95256 commit b07af27
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 29 deletions.
55 changes: 32 additions & 23 deletions src/main/java/swiss/fihlon/apus/service/ConferenceService.java
Original file line number Diff line number Diff line change
Expand Up @@ -36,29 +36,7 @@ public final class ConferenceService {
private final List<Session> sessions;

public ConferenceService() {
sessions = new ArrayList<>(100);

int lastMinute = -1;
String room = "";
for (int counter = 0; counter < 100; counter++) {
final String id = UUID.randomUUID().toString();
final LocalDateTime startDate = LocalDateTime.now()
.plusMinutes(Math.round(counter / 3f + 0.5f)) // 3 sessions start each minute
.truncatedTo(ChronoUnit.SECONDS)
.withSecond(0);
final LocalDateTime endDate = startDate.plusMinutes(1);

final int minute = startDate.getMinute();
if (minute == lastMinute) {
room = String.valueOf((char) (room.charAt(0) + 1));
} else {
lastMinute = minute;
room = "A";
}
final String title = "Test Session #" + counter;
final String speaker = "Speaker #" + counter;
sessions.add(new Session(id, startDate, endDate, room, title, speaker));
}
sessions = generateSampleData();
}

public List<Session> getRunningSessions() {
Expand Down Expand Up @@ -90,4 +68,35 @@ public List<Session> getNextSessions() {
return nextSessions;
}

private List<Session> generateSampleData() {
final int sampleDataSize = 100;
final int sampleSessionParallel = 5;
final int sampleDuration = 5;

final List<Session> sampleData = new ArrayList<>(sampleDataSize);

LocalDateTime startDate = LocalDateTime.now()
.truncatedTo(ChronoUnit.SECONDS)
.withSecond(0)
.minusMinutes(5);
while (startDate.getMinute() % 5 != 0) {
startDate = startDate.minusMinutes(1);
}

while (sampleData.size() < sampleDataSize) {
for (int counter = 0; counter < sampleSessionParallel; counter++) {
final int index = sampleData.size();
final String id = UUID.randomUUID().toString();
final LocalDateTime endDate = startDate.plusMinutes(sampleDuration);
final String room = String.valueOf((char) ('A' + counter));
final String title = "Test Session #" + index;
final String speaker = "Speaker #" + (counter + 1);
sampleData.add(new Session(id, startDate, endDate, room, title, speaker));
}
startDate = startDate.plusMinutes(sampleDuration);
}

return sampleData;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -18,18 +18,16 @@
package swiss.fihlon.apus.service;

import org.junit.jupiter.api.Test;
import swiss.fihlon.apus.conference.Session;

import java.util.List;

import static org.junit.jupiter.api.Assertions.assertEquals;

class ConferenceServiceTest {

@Test
void getSessions() {
void displaySampleData() {
final ConferenceService conferenceService = new ConferenceService();
final List<Session> sessions = conferenceService.getNextSessions();
assertEquals(3, sessions.size());
assertEquals(5, conferenceService.getRunningSessions().size());
assertEquals(5, conferenceService.getNextSessions().size());
assertEquals(90, conferenceService.getFutureSessions().size());
}
}

0 comments on commit b07af27

Please sign in to comment.