def _getProximityQueryTermPostingList(self, term1String, term2String, distance): term1 = self._getQueryTermPostingList(term1String); term2 = self._getQueryTermPostingList(term2String); docs1 = term1.docs._head; docs2 = term2.docs._head; newDocs1 = LinkedList(); newDocs2 = LinkedList(); termHasDocs = False while (docs1 is not None) and (docs2 is not None): if docs1.value == docs2.value: if self._docHasTokensWithinDistance(docs1.value, docs2.value, distance): newDocs1.insertAfter(docs1.value); newDocs2.insertAfter(docs2.value); termHasDocs = True; docs1 = docs1.next; docs2 = docs2.next; else: if docs1.value < docs2.value: docs1 = docs1.next; else: docs2 = docs2.next; # transfer term count per document to truncated list newDocs1.count = term1.count newDocs2.count = term2.count # exchange full document term count with truncated list term1.docs = newDocs1; term2.docs = newDocs2; if termHasDocs: return term1, term2; else: return None, None
comment("FAIL -> " + test_name +"\nsize debe ser 0 cuando la lista esta vacia") grade(0) except: e = sys.exc_info()[1] comment("FAIL -> " + test_name + "\n" + str(e)) grade(0) # Check one element list - insertAfter try: test_name = 'LinkedList con un elemento: insertAfter()' l = LinkedList() l.insertAfter(17) if l.head != l.tail or l.head != l.current: comment("FAIL -> " + test_name+"\n head, tail y current deben apuntar al mismo nodo cuando solo hay un elemento") grade(0) else: if l.current.getData() != 17: comment("FAIL -> " + test_name +"\n getData() no funciona correctamente cuando la lista tiene un solo elemento") grade(0) else: if l.current.getNext() != None: comment("FAIL -> " + test_name +"\n getNext() no funciona correctamente cuando la lista tiene un solo elemento. getNext() deberia devolver None en este caso") grade(0) else: if l.size != 1: comment("FAIL -> " + test_name +"\n La variable size no se incrementa correctamente") grade(0)