From 0fd16b62f2751ae9ef8e30c921e08c580185f01b Mon Sep 17 00:00:00 2001 From: Braeden Sowinski Date: Fri, 4 Mar 2022 13:56:43 -0800 Subject: [PATCH] add version and test updates --- main.go | 4 ++++ test/courses.py | 6 ++--- test/test.js | 24 +++++++++---------- test/tinker.py | 62 ++++++++++++++++++++++++++++++++++--------------- 4 files changed, 62 insertions(+), 34 deletions(-) diff --git a/main.go b/main.go index 1cf46bb..e966495 100644 --- a/main.go +++ b/main.go @@ -1,6 +1,7 @@ package main import ( + "fmt" "os" "github.com/SowinskiBraeden/school-management-api/routes" @@ -10,7 +11,10 @@ import ( "github.com/gofiber/fiber/v2/middleware/cors" ) +const version string = "\nv0.8.2-Alpha" + func main() { + fmt.Println(version) app := fiber.New() app.Use(cors.New(cors.Config{ diff --git a/test/courses.py b/test/courses.py index b687160..9285590 100644 --- a/test/courses.py +++ b/test/courses.py @@ -99,8 +99,8 @@ courses = { "teachers": 3 }, "SC-ES": { - "name": "SC-ES", - "code": "cl12", + "name": "Earth Science", + "code": "SC-ES", "credits": 4, "gradelevel": 11, "totalrequests": 0, @@ -109,7 +109,7 @@ courses = { }, "M": { "name": "Music", - "code": "Ms", + "code": "M", "credits": 4, "gradelevel": 11, "totalrequests": 0, diff --git a/test/test.js b/test/test.js index dffad42..f672ec4 100644 --- a/test/test.js +++ b/test/test.js @@ -4,18 +4,18 @@ let students = require('./students.json'); // console.table(schedule) // Display first semester -// console.table(schedule.block1) -// console.table(schedule.block2) -// console.table(schedule.block3) -// console.table(schedule.block4) +console.table(schedule.block1) +console.table(schedule.block2) +console.table(schedule.block3) +console.table(schedule.block4) -// // Display second semester -// console.table(schedule.block5) -// console.table(schedule.block6) -// console.table(schedule.block7) -// console.table(schedule.block8) +// Display second semester +console.table(schedule.block5) +console.table(schedule.block6) +console.table(schedule.block7) +console.table(schedule.block8) // Display each students schedule -for (let i = 0; i < students.length; i++) { - console.table(students[i].schedule) -} +// for (let i = 0; i < students.length; i++) { +// console.table(students[i].schedule) +// } diff --git a/test/tinker.py b/test/tinker.py index b29aa55..97e68f2 100644 --- a/test/tinker.py +++ b/test/tinker.py @@ -50,7 +50,7 @@ running: { # Error 2: No more room in schedule for another class # 400 by default -studentsNum = 500 +studentsNum = 1000 err1, err2, = 0,0 minReq, classCap, blockClassLimit = 18, 30, 18 @@ -219,24 +219,29 @@ def generateScheduleV2(): if (activeCourses[index]["totalrequests"] % classCap) > minReq: classRunCount += 1 activeCourses[index]["classRunCount"] = classRunCount - blockIndex = 1 + newBlockIndex = 1 + newCourseNum = 1 while classRunCount > 0: - block = f"block{blockIndex}" - if activeCourses[index]["code"] not in running[block] and len(running[block]) < blockClassLimit: + block = f"block{newBlockIndex}" + cname = f"{activeCourses[index]['name']}-{newCourseNum}" + if cname not in running[block] and len(running[block]) < blockClassLimit: # Generate class and sub 1 from classRunCount - running[block][activeCourses[index]["code"]] = { + running[block][cname] = { "name": activeCourses[index]["name"], "students": [] } classRunCount -= 1 else: - if blockIndex == 8: - # No room in school for more classes - # print(f"\nError 2: No more room in school for another class") - err2 += 1 - classRunCount = 0 - else: - blockIndex += 1 + if newBlockIndex == 8: + if (activeCourses[index]["teachers"] - newCourseNum) > 0: + newCourseNum += 1 + newBlockIndex = 1 + else: + # No room in school for more classes + # print(f"\nError 2: No more room in school for another class") + err2 += 1 + classRunCount = 0 + else: newBlockIndex += 1 for student in mockStudents: alternateOffset = len(student["requests"])-8 @@ -244,21 +249,31 @@ def generateScheduleV2(): for i in range(len(student["requests"])-alternateOffset): # Subtract x classes as they are alternatives currentCourse = student["requests"][i] generate = True + courseNum = 1 while generate: # If class is allowed to run if currentCourse in activeCourses: blockIndex = 1 getFreeBlock = True + cname = f"{courses[currentCourse]['name']}-{courseNum}" while getFreeBlock: block = f"block{blockIndex}" - if currentCourse in running[block]: + if cname in running[block]: if student["schedule"][block] == "": # Add student to class - if len(running[block][currentCourse]["students"]) < classCap: - running[block][currentCourse]["students"].append(student["name"]) - student["schedule"][block] = courses[currentCourse]["name"] + if len(running[block][cname]["students"]) < classCap: + running[block][cname]["students"].append(student["name"]) + student["schedule"][block] = cname getFreeBlock = False else: # Find next available class or create new one if blockIndex == 8: # No available classes + if (activeCourses[index]["teachers"] - newCourseNum) > 0: + newCourseNum += 1 + newBlockIndex = 1 + else: + # No room in school for more classes + # print(f"\nError 2: No more room in school for another class") + err2 += 1 + classRunCount = 0 if len(student["requests"]) == 8: # This student never had any alternatives # How to solve? @@ -294,7 +309,12 @@ def generateScheduleV2(): err1 += 1 generate = False getFreeBlock = False - else: blockIndex += 1 + else: + if (courses[currentCourse]["teachers"] - courseNum) > 0: + courseNum += 1 + else: + blockIndex += 1 + courseNum = 1 else: if blockIndex == 8: # Class does not exists @@ -307,7 +327,12 @@ def generateScheduleV2(): err1 += 1 generate = False break - else: blockIndex += 1 + else: + if (courses[currentCourse]["teachers"] - courseNum) > 0: + courseNum += 1 + else: + blockIndex += 1 + courseNum = 1 break elif currentCourse not in activeCourses: if len(student["requests"]) == 8: @@ -325,7 +350,6 @@ def generateScheduleV2(): # print(f"\nError 1: No more available classes for student {student['name']}") err1 += 1 generate = False - if __name__ == '__main__':