From dc63d2924d45e4fe297013480b24d640be03e87e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=82=A8=EB=93=9D=EC=9C=A4?= Date: Sat, 7 Jun 2025 14:14:17 +0900 Subject: [PATCH] Update overlap logic and add tests --- obsidian_support/conversion/util.py | 4 ++-- test/conversion/test_util.py | 17 ++++++++++++++++- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/obsidian_support/conversion/util.py b/obsidian_support/conversion/util.py index 5755bfb..d22d404 100644 --- a/obsidian_support/conversion/util.py +++ b/obsidian_support/conversion/util.py @@ -81,7 +81,7 @@ def get_exclude_indices(markdown: str) -> List[Tuple[int, int]]: def is_overlapped(start: int, end: int, exclude_indices_pairs: List[tuple]) -> bool: - for exclude_indices_pair in exclude_indices_pairs: - if exclude_indices_pair[0] <= start and end <= exclude_indices_pair[1]: + for exclude_start, exclude_end in exclude_indices_pairs: + if exclude_start < end and start < exclude_end: return True return False diff --git a/test/conversion/test_util.py b/test/conversion/test_util.py index 86a9bdf..3d4d0a3 100644 --- a/test/conversion/test_util.py +++ b/test/conversion/test_util.py @@ -3,7 +3,7 @@ from assertpy import assert_that -from obsidian_support.conversion.util import get_exclude_indices +from obsidian_support.conversion.util import get_exclude_indices, is_overlapped def test_get_exclude_indices_1(): @@ -236,3 +236,18 @@ def test_get_exclude_indices_7(): # then assert_that(exclude_indices[0][0]).is_equal_to(markdown.index("") + len("")) + + +def test_is_overlapped_partial_overlap_left(): + pairs = [(10, 20)] + assert_that(is_overlapped(5, 15, pairs)).is_true() + + +def test_is_overlapped_partial_overlap_right(): + pairs = [(10, 20)] + assert_that(is_overlapped(15, 25, pairs)).is_true() + + +def test_is_overlapped_boundary_touching(): + pairs = [(10, 20)] + assert_that(is_overlapped(20, 25, pairs)).is_false()