From b07af2798dc6c4204d9f1d9f5cd842f8eca79393 Mon Sep 17 00:00:00 2001 From: Marcus Fihlon Date: Mon, 25 Mar 2024 12:55:29 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=9A=A7=20generate=20better=20sample=20dat?= =?UTF-8?q?a?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marcus Fihlon --- .../apus/service/ConferenceService.java | 55 +++++++++++-------- .../apus/service/ConferenceServiceTest.java | 10 ++-- 2 files changed, 36 insertions(+), 29 deletions(-) diff --git a/src/main/java/swiss/fihlon/apus/service/ConferenceService.java b/src/main/java/swiss/fihlon/apus/service/ConferenceService.java index b7b8712..a50d587 100644 --- a/src/main/java/swiss/fihlon/apus/service/ConferenceService.java +++ b/src/main/java/swiss/fihlon/apus/service/ConferenceService.java @@ -36,29 +36,7 @@ public final class ConferenceService { private final List 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 getRunningSessions() { @@ -90,4 +68,35 @@ public List getNextSessions() { return nextSessions; } + private List generateSampleData() { + final int sampleDataSize = 100; + final int sampleSessionParallel = 5; + final int sampleDuration = 5; + + final List 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; + } + } diff --git a/src/test/java/swiss/fihlon/apus/service/ConferenceServiceTest.java b/src/test/java/swiss/fihlon/apus/service/ConferenceServiceTest.java index 3cbd1e0..d783537 100644 --- a/src/test/java/swiss/fihlon/apus/service/ConferenceServiceTest.java +++ b/src/test/java/swiss/fihlon/apus/service/ConferenceServiceTest.java @@ -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 sessions = conferenceService.getNextSessions(); - assertEquals(3, sessions.size()); + assertEquals(5, conferenceService.getRunningSessions().size()); + assertEquals(5, conferenceService.getNextSessions().size()); + assertEquals(90, conferenceService.getFutureSessions().size()); } }