def test_equal(self): #Defining assertions assertionA = Assertion("assertion A") assertionB = Assertion("assertion B") assertionC = Assertion("assertion C") assertionD = Assertion("assertion D") assertionE = Assertion("assertion E") assertionX = Assertion("assertion X") assertionY = Assertion("assertion Y") #Defining criteria criterionA = Criterion(assertionA, True) criterionC = Criterion(assertionC, True) criterionD = Criterion(assertionD, True) criterionE = Criterion(assertionE, True) criterionNA = Criterion(assertionA, False) criterionNB = Criterion(assertionB, False) criterionNC = Criterion(assertionC, False) criterionND = Criterion(assertionD, False) criterionNE = Criterion(assertionE, False) criterionX = Criterion(assertionX, True) criterionY = Criterion(assertionY, False) #Defining diagnoses diagnosis1 = Diagnosis('Diagnosis 1', {criterionA, criterionNB, criterionC, criterionX}, 0.2) diagnosis2 = Diagnosis('Diagnosis 2', {criterionNA, criterionNC, criterionD, criterionY, criterionX}, 0.2) diagnosis3 = Diagnosis('Diagnosis 3', {criterionNA, criterionC, criterionX}, 0.2) diagnosis4 = Diagnosis('Diagnosis 4', {criterionNA, criterionNC, criterionND, criterionE, criterionX}, 0.2) diagnosis5 = Diagnosis('Diagnosis 5', {criterionNA, criterionNC, criterionND, criterionNE, criterionX}, 0.2) #Defining an issue issue = Issue('Issue I', {diagnosis1, diagnosis2, diagnosis3, diagnosis4, diagnosis5}) #Building a test tree manually #For diagnosis 1 #I->C->A->1 inode1 = Node(issue) aCnode1 = assertionC.parent(inode1) cCnode1 = criterionC.parent(aCnode1) aAnode1 = assertionA.parent(cCnode1) cAnode1 = criterionA.parent(aAnode1) diagnosis1.parent(cAnode1) #For diagnosis 2 #I->C->D->2 cNCnode1 = criterionNC.parent(aCnode1) aDnode1 = assertionD.parent(cNCnode1) cDnode1 = criterionD.parent(aDnode1) diagnosis2.parent(cDnode1) #For diagnosis 3 #I->C->A->3 cNAnode1 = criterionNA.parent(aAnode1) diagnosis3.parent(cNAnode1) #For diagnosis 4 #I->C->D->->E->4 cNDnode1 = criterionND.parent(aDnode1) aEnode1 = assertionE.parent(cNDnode1) cEnode1 = criterionE.parent(aEnode1) diagnosis4.parent(cEnode1) #For diagnosis 4 #I->C->D->->E->4 cNEnode1 = criterionNE.parent(aEnode1) diagnosis5.parent(cNEnode1) #Building a second test tree manually #For diagnosis 2 #I->C->A->1 inode2 = Node(issue) aCnode2 = assertionC.parent(inode2) cNCnode2 = criterionNC.parent(aCnode2) aDnode2 = assertionD.parent(cNCnode2) cDnode2 = criterionD.parent(aDnode2) diagnosis2.parent(cDnode2) #For diagnosis 1 #I->C->D->2 cCnode2 = criterionC.parent(aCnode2) aAnode2 = assertionA.parent(cCnode2) cAnode2 = criterionA.parent(aAnode2) diagnosis1.parent(cAnode2) #For diagnosis 3 #I->C->A->3 cNAnode2 = criterionNA.parent(aAnode2) diagnosis3.parent(cNAnode2) #For diagnosis 4 #I->C->D->->E->4 cNDnode2 = criterionND.parent(aDnode2) aEnode2 = assertionE.parent(cNDnode2) cEnode2 = criterionE.parent(aEnode2) diagnosis4.parent(cEnode2) #For diagnosis 5 #I->C->D->E->5 cNEnode2 = criterionNE.parent(aEnode2) diagnosis5.parent(cNEnode2) #Building a third test tree manually # Assert that the node 1 tree is equal to the node 2 tree self.assertEqual(inode1, inode2)
def test_init(self): #Defining assertions assertionA = Assertion("assertion A") assertionB = Assertion("assertion B") assertionC = Assertion("assertion C") assertionD = Assertion("assertion D") assertionE = Assertion("assertion E") assertionX = Assertion("assertion X") assertionY = Assertion("assertion Y") #Defining criteria criterionA = Criterion(assertionA, True) criterionC = Criterion(assertionC, True) criterionD = Criterion(assertionD, True) criterionE = Criterion(assertionE, True) criterionNA = Criterion(assertionA, False) criterionNB = Criterion(assertionB, False) criterionNC = Criterion(assertionC, False) criterionND = Criterion(assertionD, False) criterionNE = Criterion(assertionE, False) criterionX = Criterion(assertionX, True) criterionY = Criterion(assertionY, False) #Defining diagnoses diagnosis1 = Diagnosis( 'Diagnosis 1', {criterionA, criterionNB, criterionC, criterionX}, 0.2) diagnosis2 = Diagnosis( 'Diagnosis 2', {criterionNA, criterionNC, criterionD, criterionY, criterionX}, 0.2) diagnosis3 = Diagnosis('Diagnosis 3', {criterionNA, criterionC, criterionX}, 0.2) diagnosis4 = Diagnosis( 'Diagnosis 4', {criterionNA, criterionNC, criterionND, criterionE, criterionX}, 0.2) diagnosis5 = Diagnosis( 'Diagnosis 5', {criterionNA, criterionNC, criterionND, criterionNE, criterionX}, 0.2) #Defining an issue issue = Issue( 'Issue I', {diagnosis1, diagnosis2, diagnosis3, diagnosis4, diagnosis5}) #Building a test tree using the engine matrix = Matrix(issue) matrix.construct_tree() #Building a test tree manually #For diagnosis 1 #I->C->A->1 inode = Node(issue) aCnode = assertionC.parent(inode) cCnode = criterionC.parent(aCnode) aAnode = assertionA.parent(cCnode) cAnode = criterionA.parent(aAnode) diagnosis1.parent(cAnode) #For diagnosis 2 #I->C->D->2 cNCnode = criterionNC.parent(aCnode) aDnode = assertionD.parent(cNCnode) cDnode = criterionD.parent(aDnode) diagnosis2.parent(cDnode) #For diagnosis 3 #I->C->A->3 cNAnode = criterionNA.parent(aAnode) diagnosis3.parent(cNAnode) #For diagnosis 4 #I->C->D->->E->4 cNDnode = criterionND.parent(aDnode) aEnode = assertionE.parent(cNDnode) cEnode = criterionE.parent(aEnode) diagnosis4.parent(cEnode) #For diagnosis 4 #I->C->D->->E->4 cNEnode = criterionNE.parent(aEnode) diagnosis5.parent(cNEnode) # Assert that the manually-generated tree is equal to the engine-generated tree self.assertEqual(matrix.node, inode)