package com.zilbo.flamingSailor.TE.model;
import com.zilbo.flamingSailor.TE.PDFParser;
import junit.framework.TestCase;
import java.awt.geom.Line2D;
import java.awt.geom.Point2D;
import java.awt.geom.Rectangle2D;
import java.io.File;
import java.io.IOException;
import java.util.List;
/**
* User: ianholsman
* Date: 11/5/12
* Time: 10:43 PM
* <p/>
* <p/>
* COPYRIGHT (c) 2012 Zilbo.com.
* All Rights Reserved.
* <p/>
* PROPRIETARY - INTERNAL Zilbo.com USE ONLY
* This document contains proprietary information that shall be
* distributed, routed, or made available only within Zilbo.com,
* except with written permission of Zilbo.com.
*/
public class TestBoundingBox extends TestCase {
public static final String report = "../test/testBB.pdf";
PDFParser parser;
List<TextPage> pages;
public TestBoundingBox() throws IOException {
parser = new PDFParser();
pages = parser.getTextPages(new File(report), TextPage.MINIMUM_FONT_HEIGHT);
}
public void testFindByArea() {
TextPage page = pages.get(116);
Rectangle2D bottomOfPage = new Rectangle2D.Double(107,168, 342, 317);//new Point2D.Double(107, 168), new Point2D.Double(449, 485));
assertEquals("page should have 2 components", 2, page.getComponents().size());
Component x = page.getComponents().get(1);
assertTrue("The box should contain the footer of the page", x.isContainedBy(bottomOfPage));
List<Component> parts = page.findByGeom(bottomOfPage);
assertEquals("There should be 1 component found", 1, parts.size());
}
public void testBoilerPlateRemoval() {
int testPage = 28;
TextPage page;
page = pages.get(testPage);
assertEquals("Page has 36 lines ", 36, page.getLineSize());
Component header = page.getHeader();
assertEquals("header should have no children", 0, header.getChildren().size());
Component footer = page.getFooter();
assertEquals("footer should have 3", 3, footer.getChildren().size());
assertEquals("top footer line should be: China Coal Corporation 10-4889", "China Coal Corporation 10-4889 ", footer.getChildren().get(0).getText());
}
public void testBoilerPlateRemoval2() throws IOException {
String file2 = "../test/testBoilerplate.pdf";
PDFParser parser2 = new PDFParser();
List<TextPage> pages2 = parser2.getTextPages(new File(file2), TextPage.MINIMUM_FONT_HEIGHT);
assertEquals("145 pages", 145, pages2.size());
TextPage p2 = pages2.get(13);
assertEquals("1 line header", 1, p2.getHeader().getChildren().size());
assertEquals("2 line footer", 2, p2.getFooter().getChildren().size());
p2 = pages2.get(80);
assertEquals("1 line header", 1, p2.getHeader().getChildren().size());
assertEquals("1 line footer", 1, p2.getFooter().getChildren().size());
}
}