Skip to content

Commit 3e763f6

Browse files
committed
add some more tests:
1 parent 0298fdb commit 3e763f6

File tree

2 files changed

+30
-3
lines changed
  • document-readers/pdf-reader/src

2 files changed

+30
-3
lines changed

document-readers/pdf-reader/src/main/java/org/springframework/ai/reader/pdf/layout/TextLine.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,8 @@ private int computeIndexForCharacter(final Character character) {
7777
}
7878
}
7979

80-
private boolean isSpaceCharacterAtIndex(int index) {
81-
return this.line[index] == SPACE_CHARACTER;
80+
private boolean isNotSpaceCharacterAtIndex(int index) {
81+
return this.line[index] != SPACE_CHARACTER;
8282
}
8383

8484
private boolean isNewIndexGreaterThanLastIndex(int index) {
@@ -90,7 +90,7 @@ private int getNextValidIndex(int index, boolean isCharacterPartOfPreviousWord)
9090
if (!this.isNewIndexGreaterThanLastIndex(index)) {
9191
nextValidIndex = this.lastIndex + 1;
9292
}
93-
if (!isCharacterPartOfPreviousWord && index > 0 && !this.isSpaceCharacterAtIndex(index - 1)) {
93+
if (!isCharacterPartOfPreviousWord && index > 0 && this.isNotSpaceCharacterAtIndex(index - 1)) {
9494
nextValidIndex = nextValidIndex + 1;
9595
}
9696
this.lastIndex = nextValidIndex;

document-readers/pdf-reader/src/test/java/org/springframework/ai/reader/pdf/layout/TextLineTest.java

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import java.util.stream.Stream;
99

1010
import static org.junit.jupiter.api.Assertions.assertEquals;
11+
import static org.junit.jupiter.api.Assertions.assertThrows;
1112

1213

1314
class TextLineTest {
@@ -88,4 +89,30 @@ void testGetLine() {
8889
TextLine textLine = new TextLine(100);
8990
assertEquals(" ".repeat(100 / ForkPDFLayoutTextStripper.OUTPUT_SPACE_CHARACTER_WIDTH_IN_PT), textLine.getLine());
9091
}
92+
93+
@Test
94+
void testNegativeLineLength() {
95+
IllegalArgumentException exception = assertThrows(IllegalArgumentException.class, () -> {
96+
new TextLine(-100);
97+
});
98+
assertEquals("Line length cannot be negative", exception.getMessage());
99+
}
100+
101+
@Test
102+
void testComputeIndexForCharacter_CloseToPreviousWord() {
103+
TextLine textLine = new TextLine(100);
104+
Character character = new Character('A', 10, true, false, true, true);
105+
textLine.writeCharacterAtIndex(character);
106+
assertEquals(" A" + " ".repeat(23), textLine.getLine());
107+
}
108+
109+
@Test
110+
void testComputeIndexForCharacter_CloseToPreviousWord_WriteTwoCharacters() {
111+
TextLine textLine = new TextLine(100);
112+
Character character = new Character('A', 10, true, false, true, true);
113+
Character anotherCharacter = new Character('B', 1, true, false, true, true);
114+
textLine.writeCharacterAtIndex(character);
115+
textLine.writeCharacterAtIndex(anotherCharacter);
116+
assertEquals(" AB" + " ".repeat(22), textLine.getLine());
117+
}
91118
}

0 commit comments

Comments
 (0)