add tests
This commit is contained in:
1 parent
54c7a6669f
commit
fa3d6d0a4c
3 files changed
+352
No files matched your search
+196
@@ -0,0 +1,196 @@
|
||||
courses = {
|
||||
"cl1": {
|
||||
"name": "class1",
|
||||
"code": "cl1",
|
||||
"credits": 4,
|
||||
"gradelevel": 11,
|
||||
"totalrequests": 0,
|
||||
"studentindexs": []
|
||||
},
|
||||
"cl2": {
|
||||
"name": "class2",
|
||||
"code": "cl2",
|
||||
"credits": 4,
|
||||
"gradelevel": 11,
|
||||
"totalrequests": 0,
|
||||
"studentindexs": []
|
||||
},
|
||||
"cl3": {
|
||||
"name": "class3",
|
||||
"code": "cl3",
|
||||
"credits": 4,
|
||||
"gradelevel": 11,
|
||||
"totalrequests": 0,
|
||||
"studentindexs": []
|
||||
},
|
||||
"cl4": {
|
||||
"name": "class4",
|
||||
"code": "cl4",
|
||||
"credits": 4,
|
||||
"gradelevel": 11,
|
||||
"totalrequests": 0,
|
||||
"studentindexs": []
|
||||
},
|
||||
"cl5": {
|
||||
"name": "class5",
|
||||
"code": "cl5",
|
||||
"credits": 4,
|
||||
"gradelevel": 11,
|
||||
"totalrequests": 0,
|
||||
"studentindexs": []
|
||||
},
|
||||
"cl6": {
|
||||
"name": "class6",
|
||||
"code": "cl6",
|
||||
"credits": 4,
|
||||
"gradelevel": 11,
|
||||
"totalrequests": 0,
|
||||
"studentindexs": []
|
||||
},
|
||||
"cl7": {
|
||||
"name": "class7",
|
||||
"code": "cl7",
|
||||
"credits": 4,
|
||||
"gradelevel": 11,
|
||||
"totalrequests": 0,
|
||||
"studentindexs": []
|
||||
},
|
||||
"cl8": {
|
||||
"name": "class8",
|
||||
"code": "cl8",
|
||||
"credits": 4,
|
||||
"gradelevel": 11,
|
||||
"totalrequests": 0,
|
||||
"studentindexs": []
|
||||
},
|
||||
"cl9": {
|
||||
"name": "class9",
|
||||
"code": "cl9",
|
||||
"credits": 4,
|
||||
"gradelevel": 11,
|
||||
"totalrequests": 0,
|
||||
"studentindexs": []
|
||||
},
|
||||
"cl10": {
|
||||
"name": "class10",
|
||||
"code": "cl10",
|
||||
"credits": 4,
|
||||
"gradelevel": 11,
|
||||
"totalrequests": 0,
|
||||
"studentindexs": []
|
||||
},
|
||||
"cl11": {
|
||||
"name": "class11",
|
||||
"code": "cl11",
|
||||
"credits": 4,
|
||||
"gradelevel": 11,
|
||||
"totalrequests": 0,
|
||||
"studentindexs": []
|
||||
},
|
||||
"cl12": {
|
||||
"name": "class12",
|
||||
"code": "cl12",
|
||||
"credits": 4,
|
||||
"gradelevel": 11,
|
||||
"totalrequests": 0,
|
||||
"studentindexs": []
|
||||
},
|
||||
"cl13": {
|
||||
"name": "class13",
|
||||
"code": "cl13",
|
||||
"credits": 4,
|
||||
"gradelevel": 11,
|
||||
"totalrequests": 0,
|
||||
"studentindexs": []
|
||||
},
|
||||
"cl14": {
|
||||
"name": "class14",
|
||||
"code": "cl14",
|
||||
"credits": 4,
|
||||
"gradelevel": 11,
|
||||
"totalrequests": 0,
|
||||
"studentindexs": []
|
||||
},
|
||||
"cl15": {
|
||||
"name": "class15",
|
||||
"code": "cl15",
|
||||
"credits": 4,
|
||||
"gradelevel": 11,
|
||||
"totalrequests": 0,
|
||||
"studentindexs": []
|
||||
},
|
||||
"cl16": {
|
||||
"name": "class16",
|
||||
"code": "cl16",
|
||||
"credits": 4,
|
||||
"gradelevel": 11,
|
||||
"totalrequests": 0,
|
||||
"studentindexs": []
|
||||
},
|
||||
"cl17": {
|
||||
"name": "class17",
|
||||
"code": "cl17",
|
||||
"credits": 4,
|
||||
"gradelevel": 11,
|
||||
"totalrequests": 0,
|
||||
"studentindexs": []
|
||||
},
|
||||
"cl18": {
|
||||
"name": "class18",
|
||||
"code": "cl18",
|
||||
"credits": 4,
|
||||
"gradelevel": 11,
|
||||
"totalrequests": 0,
|
||||
"studentindexs": []
|
||||
},
|
||||
"cl19": {
|
||||
"name": "class19",
|
||||
"code": "cl19",
|
||||
"credits": 4,
|
||||
"gradelevel": 11,
|
||||
"totalrequests": 0,
|
||||
"studentindexs": []
|
||||
},
|
||||
"cl20": {
|
||||
"name": "class20",
|
||||
"code": "cl20",
|
||||
"credits": 4,
|
||||
"gradelevel": 11,
|
||||
"totalrequests": 0,
|
||||
"studentindexs": []
|
||||
},
|
||||
"cl21": {
|
||||
"name": "class21",
|
||||
"code": "cl21",
|
||||
"credits": 4,
|
||||
"gradelevel": 11,
|
||||
"totalrequests": 0,
|
||||
"studentindexs": []
|
||||
},
|
||||
"cl22": {
|
||||
"name": "class22",
|
||||
"code": "cl22",
|
||||
"credits": 4,
|
||||
"gradelevel": 11,
|
||||
"totalrequests": 0,
|
||||
"studentindexs": []
|
||||
},
|
||||
"cl23": {
|
||||
"name": "class23",
|
||||
"code": "cl23",
|
||||
"credits": 4,
|
||||
"gradelevel": 11,
|
||||
"totalrequests": 0,
|
||||
"studentindexs": []
|
||||
},
|
||||
"cl24": {
|
||||
"name": "class24",
|
||||
"code": "cl24",
|
||||
"credits": 4,
|
||||
"gradelevel": 11,
|
||||
"totalrequests": 0,
|
||||
"studentindexs": []
|
||||
}
|
||||
}
|
||||
|
||||
activeCourses = {}
|
||||
@@ -0,0 +1,24 @@
|
||||
# myList = {
|
||||
# "code1": {
|
||||
# "name": "hello",
|
||||
# "value": 3
|
||||
# },
|
||||
# "code2": {
|
||||
# "name": "bye",
|
||||
# "value": 1
|
||||
# }
|
||||
# }
|
||||
|
||||
|
||||
# if "code1" in myList:
|
||||
# print(True)
|
||||
# print(list(myList).index("code2"))
|
||||
|
||||
myList = ["a","b","c","d","e","f","g","h","i","j"]
|
||||
print(len(myList))
|
||||
|
||||
for i in range(len(myList)-2): # Subtract last 2 classes as they are alternatives
|
||||
print()
|
||||
|
||||
# Get first alternative
|
||||
print(myList[len(myList)-2])
|
||||
+132
@@ -0,0 +1,132 @@
|
||||
#!/usr/bin/python3
|
||||
import random
|
||||
from courses import courses, activeCourses
|
||||
|
||||
'''
|
||||
I will be using python to test and
|
||||
develop course selection / schedule
|
||||
generation
|
||||
|
||||
this is honestly terrible code but
|
||||
this is not an easy task for me to
|
||||
do
|
||||
'''
|
||||
|
||||
'''
|
||||
schedule example:
|
||||
schedule: {
|
||||
"semester1": {
|
||||
"block1": "className",
|
||||
"block2": "className",
|
||||
"block3": "className",
|
||||
"block4": "className"
|
||||
},
|
||||
"semester2": {
|
||||
"block1": "className",
|
||||
"block2": "className",
|
||||
"block3": "className",
|
||||
"block4": "className"
|
||||
}
|
||||
}
|
||||
'''
|
||||
|
||||
'''
|
||||
running example:
|
||||
running: {
|
||||
"semester1": {
|
||||
"block1": {classCode:{"className":name,"remaining":number},classCode:{"className":name,"remaining":number}},
|
||||
"block2": {classCode:{"className":name,"remaining":number},classCode:{"className":name,"remaining":number}},
|
||||
"block3": {classCode:{"className":name,"remaining":number},classCode:{"className":name,"remaining":number}},
|
||||
"block4": {classCode:{"className":name,"remaining":number},classCode:{"className":name,"remaining":number}}
|
||||
},
|
||||
"semester2": {
|
||||
"block1": {classCode:{"className":name,"remaining":number},classCode:{"className":name,"remaining":number}},
|
||||
"block2": {classCode:{"className":name,"remaining":number},classCode:{"className":name,"remaining":number}},
|
||||
"block3": {classCode:{"className":name,"remaining":number},classCode:{"className":name,"remaining":number}},
|
||||
"block4": {classCode:{"className":name,"remaining":number},classCode:{"className":name,"remaining":number}}
|
||||
]
|
||||
}
|
||||
'''
|
||||
|
||||
minReq, classCap, blockClassLimit = 18, 30, 15
|
||||
mockStudents = []
|
||||
running = []
|
||||
|
||||
|
||||
# Generate n students for mock data
|
||||
def generateMockStudents(n):
|
||||
for _ in range(n):
|
||||
newStudent = {
|
||||
"name": "someName",
|
||||
"requests": [],
|
||||
"schedule": {}
|
||||
}
|
||||
# Get list of random class choices with no repeats
|
||||
# 8 primary choices, 2 secondary choices
|
||||
courseSelection = random.sample(range(0, len(courses), 10))
|
||||
for courseNum in courseSelection:
|
||||
newStudent["requests"] = courses[courseNum]["code"]
|
||||
mockStudents.append(newStudent)
|
||||
|
||||
|
||||
def generateSchedule():
|
||||
# Collect data and calculate schedules
|
||||
for student in mockStudents:
|
||||
# Tally class request
|
||||
for request in student["requests"]:
|
||||
courses[request]["totalrequests"] += 1
|
||||
courses[request]["studentindexes"].append(i)
|
||||
# Add course to active list if enough requests
|
||||
if courses[request]["totalRequests"] > minReq and courses[request] not in activeCourses: activeCourses.append(courses[request])
|
||||
|
||||
for student in mockStudents:
|
||||
blockIndex = 0
|
||||
semesterIndex = 0
|
||||
for i in range(len(student["requests"])-2): # Subtract last 2 classes as they are alternatives
|
||||
currentClass = student
|
||||
if student["requests"][i] in activeCourses:
|
||||
pass
|
||||
elif student["requests"][i] not in activeCourses:
|
||||
# Get first alternative
|
||||
student["requests"][len(student["requests"])-2]
|
||||
|
||||
# for course in courses:
|
||||
# blockIndex = 0
|
||||
# semesterIndex = 0
|
||||
# if course["totalrequests"] > minReq:
|
||||
# # Create course query
|
||||
# q = {
|
||||
# "name": course["name"],
|
||||
# "remaining": classCap
|
||||
# }
|
||||
|
||||
# # Generate x amount of courses based on requests number
|
||||
# for j in range(len(course["studentindexes"])):
|
||||
# classRunCount = course["totalrequests"] % 30
|
||||
# if ((course["totalrequests"] / 30) - classRunCount) > minReq:
|
||||
# pass
|
||||
|
||||
# # Add one student to class
|
||||
# q["remaining"] -= 1
|
||||
|
||||
# if q["remaining"] == 0 and (len(course["studentindexes"])-classCap) > minReq:
|
||||
# if course["code"] in running[semesterIndex][blockIndex]:
|
||||
# blockIndex += 1
|
||||
|
||||
# # courseIndex = list(running[semesterIndex][blockIndex]).index(course["code"])
|
||||
# running[semesterIndex][blockIndex][course["code"]] = q
|
||||
|
||||
# mockStudents[i]["schedule"][f"semester{semesterIndex+1}"][f"block{blockIndex+1}"] = course["name"]
|
||||
|
||||
# course["totalRequests"] -= minReq
|
||||
# while True:
|
||||
# if q in running["semester1"]["block1"]:
|
||||
# running["semester1"][blockIndex][running["semester1"]["block1"].index(q)][]
|
||||
# else:
|
||||
# running["semester1"][blockIndex].append(q)
|
||||
|
||||
# for studentIndex in course["studentindexs"]:
|
||||
# if studentIndex == i:
|
||||
# pass
|
||||
|
||||
generateMockStudents(400)
|
||||
Reference in new issue
Block a user