class Test(unittest.TestCase): def setUp(self): self.dset= Dataset() self.dset.dataSetup() def tearDown(self): del self.dset def testIsSatisfied(self): self.assertFalse(ReqSingleSubject(self.dset.subjects[0]).isSatisfied([])) self.assertTrue(ReqSingleSubject(self.dset.subjects[0]).isSatisfied([self.dset.subjects[0]]))
def __init__(self, name="", ID=None): ''' Constructor ''' self.dset = Dataset() self.dset.dataSetup() self.name = name self.student_id = ID self.goals = [] self.course_plan = CoursePlan([], self.dset)
class Student(object): ''' classdocs ''' def __init__(self, name="", ID=None): ''' Constructor ''' self.dset = Dataset() self.dset.dataSetup() self.name = name self.student_id = ID self.goals = [] self.course_plan = CoursePlan([], self.dset) def getDset(self): return self.dset def getName(self): return self.name def getStudent_id(self): return self.student_id def getGoals(self): return self.goals def getCourse_plan(self): return self.course_plan def getSubjects_taken(self): return self.subjectsTaken def setDset(self, value): self.dset = value def setName(self, value): self.name = value def setStudent_id(self, value): self.student_id = value def setGoals(self, value): self.goals = value def setCourse_plan(self, value): self.course_plan = value def setSubjects_taken(self, value): self.subjectsTaken = value def getProgress(self, req): return req.getProgress(self.subjectsTaken) def satisfiesReq(self, req): return req.isSatisfied(self.subjectsTaken)
def setUp(self): self.dset= Dataset() self.dset.dataSetup()
class Test(unittest.TestCase): def setUp(self): self.dset = Dataset() self.dset.dataSetup() def tearDown(self): del self.dset def testConstruct(self): pass def testCompare(self): self.assertEqual(Requirement(), Requirement(), "Assert Equal: %s == %s" % (Requirement(), Requirement())) self.assertEqual( Requirement([], 1, self.dset.subjects[0], ""), Requirement([], 1, self.dset.subjects[0], ""), "Assert Equal: %s == %s" % (Requirement([], 1, self.dset.subjects[0], ""), Requirement([], 1, self.dset.subjects[0], "")), ) self.assertEqual( self.dset.reqs63, self.dset.reqs63, "Assert Equal: %s == %s" % (self.dset.reqs63, self.dset.reqs63) ) self.assertEqual( self.dset.reqs63.expand(self.dset.terms[0]), self.dset.reqs63.expand(self.dset.terms[0]), "Assert Equal: %s == %s" % (self.dset.reqs63.expand(self.dset.terms[0]), self.dset.reqs63.expand(self.dset.terms[0])), ) def testIsSatisfied(self): self.assertTrue(Requirement().isSatisfied([])) self.assertTrue(self.dset.physReq.isSatisfied([Subject("8.02")])) self.assertTrue(self.dset.physReq.isSatisfied([Subject("8.02"), Subject("18.01")])) self.assertTrue(self.dset.mathReq.isSatisfied([Subject("6.042"), Subject("18.03")])) self.assertTrue(self.dset.mathReq.isSatisfied([Subject("6.042"), Subject("18.06")])) self.assertTrue(self.dset.mathReq.isSatisfied([Subject("6.042"), Subject("18.06"), Subject("18.03")])) self.assertFalse(self.dset.physReq.isSatisfied([Subject("6.01")])) self.assertFalse(self.dset.mathReq.isSatisfied([Subject("18.03"), Subject("18.06")])) def testIsTotal(self): self.assertTrue(self.dset.physReq.isTotal()) self.assertTrue(self.dset.mathReq.isTotal()) self.assertFalse(self.dset.AUSReq.isTotal()) def testNumChoices(self): self.assertEqual(self.dset.physReq.getNumChoices(), 1) self.assertEqual(self.dset.mathReq.getNumChoices(), 2) self.assertEqual(Requirement().getNumChoices(), 0) def testAddSubject(self): self.reqNew = Requirement([], 0, None) self.assertTrue(self.reqNew.isSatisfied([])) self.reqNew.addSubject(Subject("8.01")) self.assertFalse(self.reqNew.isSatisfied([])) self.assertTrue(self.reqNew.isSatisfied([Subject("8.01")])) def testAddReq(self): self.reqNew = Requirement([], 0, None) self.reqNew.addReq(self.dset.mathReq) self.assertEqual(self.reqNew.getNumChoices(), 1, "must add a req to the list") def testExpand(self): a = self.dset.reqs63.expand(self.dset.terms[0]).squish() self.assertTrue( set(a.expand(self.dset.terms[0]).getSubjects()) == set(a.expand(self.dset.terms[0]).expand(self.dset.terms[0]).getSubjects()), "Assert: %s == %s" % ( set(a.expand(self.dset.terms[0]).getSubjects()), set(a.expand(self.dset.terms[0]).expand(self.dset.terms[0]).getSubjects()), ), ) def testExpand2(self): for subj in self.dset.subjects[:20]: print subj req_to_check = self.dset.terms[0].getReq(subj) print "req_to_check is ", req_to_check # if the req is the same as the expansion of the req, then it had better be a class with no prerequisites if req_to_check.expand(self.dset.terms[0]) == req_to_check: print "expanded is same\n" self.assertTrue( len(req_to_check.reqs) == 0 and ( req_to_check.singleSubject is None or self.dset.terms[0].getReq(req_to_check.singleSubject) == Requirement() ), "Assert empty req: %s reqs and %s singlesubject" % (req_to_check.reqs, req_to_check.singleSubject), ) def testSquish(self): a = self.dset.reqs63.expand(self.dset.terms[0]).squish() self.assertTrue( set(a.getSubjects()) == set(a.squish().getSubjects()), "Assert: %s == %s" % (set(a.getSubjects()), set(a.squish().getSubjects())), ) self.assertTrue( set(a.getSubjects()) == set(a.squish().squish().getSubjects()), "Assert: %s == %s" % (set(a.getSubjects()), set(a.squish().squish().getSubjects())), ) self.assertTrue( Requirement().squish() == Requirement(), "Assert: %s == %s" % (Requirement().squish(), Requirement()) )
print round(t2-t1, 5) def timing2args(f, n, a, b): print f.__name__, r = xrange(n) t1 = time.clock() for i in r: f(a, b); f(a, b); f(a, b); f(a, b); f(a, b); f(a, b); f(a, b); f(a, b); f(a, b); f(a, b) t2 = time.clock() print round(t2-t1, 5) if __name__ == '__main__': dset = Dataset() dset.dataSetup() catalog= Catalog(dict(zip([str(x) for x in dset.terms], dset.terms))) sol = dset.reqs63.getSolution(dset.terms[0]).getSubjects() cplan = CoursePlan(sol, catalog) expanded = dset.reqs63.expand(dset.terms[0]) #=========================================================================== # timing(dset.reqs63.expand, 10, dset.terms[0]) # timing0args(dset.reqs63.expand(dset.terms[0]).squish, 10) # timing0args(expanded.squish().subsolve, 10 ) # #===========================================================================