mirror of
https://github.com/infiniflow/ragflow.git
synced 2026-07-07 20:10:14 +08:00
### What problem does this PR solve? Package refactor and PDF post process. ### Type of change - [x] Refactoring --------- Co-authored-by: Claude <noreply@anthropic.com>
76 lines
2.3 KiB
Go
76 lines
2.3 KiB
Go
package table
|
|
|
|
import (
|
|
"testing"
|
|
|
|
pdf "ragflow/internal/deepdoc/parser/pdf/type"
|
|
)
|
|
|
|
func TestCellToPageSpace(t *testing.T) {
|
|
cell := pdf.TSRCell{X0: 100, Y0: 200, X1: 300, Y1: 400, Text: "hello", Label: "table"}
|
|
got := CellToPageSpace(cell, 15, 25, 3.0)
|
|
|
|
// (100+15)/3 = 38.33..., (200+25)/3 = 75
|
|
if got.X0 != 38.333333333333336 || got.Y0 != 75 || got.X1 != 105 || got.Y1 != 141.66666666666666 {
|
|
t.Errorf("cellToPageSpace: got (%f,%f,%f,%f), want (38.33,75,105,141.67)", got.X0, got.Y0, got.X1, got.Y1)
|
|
}
|
|
if got.Text != "hello" || got.Label != "table" {
|
|
t.Error("cellToPageSpace should preserve Text and Label")
|
|
}
|
|
}
|
|
|
|
func TestCellAddOffset(t *testing.T) {
|
|
cell := pdf.TSRCell{X0: 100, Y0: 200, X1: 300, Y1: 400, Text: "hello"}
|
|
got := CellAddOffset(cell, 15, 25)
|
|
if got.X0 != 115 || got.Y0 != 225 || got.X1 != 315 || got.Y1 != 425 {
|
|
t.Errorf("cellAddOffset: got (%f,%f,%f,%f)", got.X0, got.Y0, got.X1, got.Y1)
|
|
}
|
|
if got.Text != "hello" {
|
|
t.Error("cellAddOffset should preserve Text")
|
|
}
|
|
}
|
|
|
|
func TestBoxToCropSpace(t *testing.T) {
|
|
box := pdf.TextBox{X0: 50, X1: 200, Top: 100, Bottom: 300, Text: "text"}
|
|
got := BoxToCropSpace(box, 3.0, 10, 20)
|
|
if got.X0 != 140 || got.Top != 280 || got.X1 != 590 || got.Bottom != 880 {
|
|
t.Errorf("boxToCropSpace: got (%f,%f,%f,%f)", got.X0, got.Top, got.X1, got.Bottom)
|
|
}
|
|
if got.Text != "text" {
|
|
t.Error("boxToCropSpace should preserve Text")
|
|
}
|
|
}
|
|
|
|
func TestCopyBoxAnnotations(t *testing.T) {
|
|
src := &pdf.TextBox{R: 1, C: 2, RTop: 10, RBott: 20, H: 3, HTop: 30, HBott: 40,
|
|
HLeft: 50, HRight: 60, CLeft: 70, CRight: 80, SP: 4}
|
|
dst := &pdf.TextBox{}
|
|
CopyBoxAnnotations(dst, src)
|
|
if dst.R != 1 || dst.C != 2 || dst.RTop != 10 || dst.RBott != 20 {
|
|
t.Error("R/C fields not copied")
|
|
}
|
|
if dst.H != 3 || dst.HTop != 30 || dst.HBott != 40 {
|
|
t.Error("H fields not copied")
|
|
}
|
|
if dst.HLeft != 50 || dst.HRight != 60 || dst.CLeft != 70 || dst.CRight != 80 {
|
|
t.Error("spanning fields not copied")
|
|
}
|
|
if dst.SP != 4 {
|
|
t.Error("SP not copied")
|
|
}
|
|
}
|
|
|
|
func TestCellSliceToPageSpace(t *testing.T) {
|
|
cells := []pdf.TSRCell{
|
|
{X0: 100, Y0: 200, X1: 300, Y1: 400},
|
|
{X0: 400, Y0: 200, X1: 600, Y1: 400},
|
|
}
|
|
got := CellSliceToPageSpace(cells, 15, 25, 3)
|
|
if len(got) != 2 {
|
|
t.Fatal("expected 2 cells")
|
|
}
|
|
if got[0].X0 != 38.333333333333336 || got[1].X0 != 138.33333333333334 {
|
|
t.Error("wrong conversion")
|
|
}
|
|
}
|