def test_handle_easy_overlapping_conflict(self): # Easy conflict: First Label has higher score rng1 = CommonRange(8, 8, "1" * 8, score=1, field_type="Length") rng1.message_indices = {0, 1, 2} rng2 = CommonRange(8, 8, "1" * 8, score=0.8, field_type="Address") rng2.message_indices = {0, 1, 2} container = CommonRangeContainer([rng1, rng2], message_indices={0, 1, 2}) result = FormatFinder.handle_overlapping_conflict([container]) self.assertEqual(len(result), 1) self.assertEqual(len(result[0]), 1) self.assertIn(rng1, result[0]) self.assertEqual(result[0].message_indices, {0, 1, 2})
def test_handle_medium_overlapping_conflict(self): rng1 = CommonRange(8, 8, "1" * 8, score=1, field_type="Length") rng2 = CommonRange(4, 10, "1" * 8, score=0.8, field_type="Address") rng3 = CommonRange(15, 20, "1" * 8, score=1, field_type="Seq") rng4 = CommonRange(60, 80, "1" * 8, score=0.8, field_type="Type") rng5 = CommonRange(70, 90, "1" * 8, score=0.9, field_type="Data") container = CommonRangeContainer([rng1, rng2, rng3, rng4, rng5]) result = FormatFinder.handle_overlapping_conflict([container]) self.assertEqual(len(result), 1) self.assertEqual(len(result[0]), 3) self.assertIn(rng1, result[0]) self.assertIn(rng3, result[0]) self.assertIn(rng5, result[0])
def test_handle_no_overlapping_conflict(self): rng1 = CommonRange(0, 8, "1" * 8, score=1, field_type="Length") rng1.message_indices = {0, 1, 2} rng2 = CommonRange(8, 8, "1" * 8, score=1, field_type="Address") rng2.message_indices = {0, 1, 2} container = CommonRangeContainer([rng1, rng2], message_indices={0, 1, 2}) # no conflict result = FormatFinder.handle_overlapping_conflict([container]) self.assertEqual(len(result), 1) self.assertEqual(len(result[0]), 2) self.assertIn(rng1, result[0]) self.assertEqual(result[0].message_indices, {0, 1, 2}) self.assertIn(rng2, result[0])