def test_isSimilar(self): left = Annotation() right = Annotation() self.assertFalse( left.isSimilar(right)) #empty annotation are not similar left.span_in_sentence = (1, 10) right.span_in_sentence = (2, 10) self.assertTrue( left.isSimilar(right)) #overlap and empty then is similar left.span_in_sentence = (1, 10) right.span_in_sentence = (2, 10) left.classification = "SSI" right.classification = "" self.assertFalse(left.isSimilar(right)) #overlap but attri differs left.span_in_sentence = (1, 10) right.span_in_sentence = (2, 10) left.classification = "SSI" right.classification = "SSI" self.assertTrue(left.isSimilar(right)) #overlap but attri differs left.span_in_sentence = (1, 10) right.span_in_sentence = (2, 10) left.classification = "SSI" left.attributes = { 'assertion': 'positive', 'temporality': 'current', 'anatomy': [], } right.classification = "SSI" right.attributes = {} self.assertFalse(left.isSimilar(right)) #overlap but attri differs left.span_in_sentence = (1, 10) right.span_in_sentence = (2, 10) left.classification = "SSI" left.attributes = { 'assertion': 'positive', 'temporality': 'current', 'anatomy': [], } right.classification = "SSI" right.attributes = { 'assertion': 'positive', 'temporality': 'current', 'anatomy': [], } self.assertTrue(left.isSimilar(right)) #overlap but attri differs left.span_in_sentence = (1, 10) right.span_in_sentence = (2, 10) left.classification = "SSI" left.attributes = { 'assertion': 'positive', 'temporality': 'current', 'anatomy': ["surgical site"], } right.classification = "SSI" right.attributes = { 'assertion': 'positive', 'temporality': 'future', 'anatomy': [], } self.assertFalse(left.isSimilar(right)) #overlap but attri differs left.span_in_sentence = (1, 10) right.span_in_sentence = (2, 10) left.classification = "SSI" left.attributes = { 'assertion': 'positive', 'temporality': 'current', 'anatomy': ["surgical site"], } right.classification = "SSI" right.attributes = { 'assertion': 'positive', 'temporality': 'current', 'anatomy': [], } self.assertFalse(left.isSimilar(right)) #overlap but attri differs left.span_in_sentence = (1, 10) right.span_in_sentence = (2, 10) left.classification = "SSI" left.attributes = { 'assertion': 'positive', 'temporality': 'current', 'anatomy': ["surgical site"], } right.classification = "SSI" right.attributes = { 'assertion': 'positive', 'temporality': 'current', 'anatomy': ["surgical site"], } self.assertTrue(left.isSimilar(right)) #overlap but attri differs
def _anno(self, span, classy, attri): anno = Annotation() anno.span_in_sentence = span anno.classification = classy anno.attributes = attri return anno