Skip to content

Commit

Permalink
fix: 강의 시간은 1번만 조회하도록 변경
Browse files Browse the repository at this point in the history
  • Loading branch information
DWL21 committed Feb 13, 2025
1 parent ad73b9b commit 89ee820
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,14 @@ class CoursesFactory(
private const val MAX_RATING = 70.0
}

fun generateTimetableCandidates(): List<Courses> {
fun generateTimetableCandidates(): Pair<List<Courses>, Courses> {
val timetableCandidates = values.fold(listOf(emptyList<Course>())) { acc, courses ->
acc.flatMap { currentCombination ->
courses.values.map { course -> currentCombination + course }
}
}.map { Courses(it) }
return timetableCandidates
val courses = Courses(values.flatMap { it.values })
return Pair(timetableCandidates, courses)
}

fun districtDuplicatedCourses(target: List<Courses>): CoursesFactory {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ class TimeTableFactory(

val step1 = CoursesFactory(majorRequiredCourses + majorElectiveCourses + generalRequiredCourses + chapels)
.generateTimetableCandidates()
val step2 = timetableCandidateFactory.createTimetableCandidatesWithRule(step1)
val step2 = timetableCandidateFactory.createTimetableCandidatesWithRule(step1.first, step1.second)

val majorElectives = Courses(courseReader.findAllByDepartmentGradeIdInMajorElective(departmentGrade.id!!))
val availableMajorElectiveCredit = calculateAvailableMajorElective(command, majorElectiveCourses)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.yourssu.soongpt.domain.timetable.implement

import com.yourssu.soongpt.domain.course.implement.Courses
import com.yourssu.soongpt.domain.courseTime.implement.CourseTime
import com.yourssu.soongpt.domain.courseTime.implement.CourseTimeReader
import com.yourssu.soongpt.domain.timetable.implement.exception.TimetableCreatedBadRequestException
import com.yourssu.soongpt.domain.timetable.implement.strategy.NoMorningClassesStrategy.Companion.MORNING_CLASSES_SCORE
Expand All @@ -17,14 +18,20 @@ class TimetableCandidateFactory(
const val TOTAL = 5
}

fun createTimetableCandidatesWithRule(coursesCandidates: List<Courses>): TimetableCandidates {
fun createTimetableCandidatesWithRule(coursesCandidates: List<Courses>, courses: Courses): TimetableCandidates {
if (validateEmptyCase(coursesCandidates)) {
return TimetableCandidates(TimetableCandidate.empty())
}
val courseTimes = HashMap<Long, List<CourseTime>>()
for (courseId in courses.getAllIds()) {
courseTimes[courseId] = courseTimeReader.findAllByCourseId(courseId)
}
val timetableCandidates= TimetableCandidates(coursesCandidates.flatMap {
TimetableCandidate.fromAllTags(
courses = it,
coursesTimes = CourseTimes(courseTimeReader.findAllByCourseIds(it.getAllIds())),
coursesTimes = CourseTimes(it.getAllIds()
.map { courseId -> courseTimes[courseId]?: listOf() }
.flatten()),
)
}).filterRules()
validateNoneTimetableCases(timetableCandidates)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ class CoursesFactoryTest {
fun success() {
val coursesFactory = CoursesFactory(listOf(courses, courses))

val actual = coursesFactory.generateTimetableCandidates()
val actual = coursesFactory.generateTimetableCandidates().first
assertThat(actual).hasSize(4)
}
}
Expand Down

0 comments on commit 89ee820

Please sign in to comment.