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]]))
Exemple #2
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)
Exemple #3
0
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()
Exemple #5
0
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())
        )
Exemple #6
0
        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 )
    # 
    #===========================================================================