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()) )